Xml xsd-将类型限制为三种自定义类型之一

Xml xsd-将类型限制为三种自定义类型之一,xml,xsd,restriction,Xml,Xsd,Restriction,也许我的词汇有点错误: 我想创建一个xsd,它为元素定义了许多“自定义类型”中的一种。 我的xml的根也应该是相同的“someInfo”,然后是一个元素,它是一种 自定义类型A或自定义类型B XML应该如下所示: <xml> <someInfo>whatever is important</someInfo> <info type="CustomTypeA"> <CustomTypeA-1>F1</CustomTy

也许我的词汇有点错误:

我想创建一个xsd,它为元素定义了许多“自定义类型”中的一种。
我的xml的根也应该是相同的“someInfo”,然后是一个元素,它是一种 自定义类型A或自定义类型B

XML应该如下所示:

<xml>
  <someInfo>whatever is important</someInfo>
  <info type="CustomTypeA">
    <CustomTypeA-1>F1</CustomTypeA-1>
    <CustomTypeA-2>F2</CustomTypeA-2>
  </info>
</xml>

重要的事
一层楼
地上二层
或者在其他情况下,如果其他CustomType:

<xml>
  <someInfo>whatever is important in an other case</someInfo>
  <info type="CustomTypeB">
    <CustomTypeB-1 attr1="someAttribute">F1</CustomTypeB-1>
  </info>
</xml>

在其他情况下重要的是什么
一层楼

如果希望元素的类型取决于其某个属性的值,则有两个选项:

(a) 使用“xsi:type”作为属性名,其值是模式中类型的名称


(b) 将XSD1.1与条件类型赋值的新特性一起使用。如果您能够使用XSD 1.1,这是最好的解决方案,但并非所有人都支持它。

我昨天做了一些条件类型赋值。关于条件类型分配的更多信息可以阅读。

我现在用内容的正常
xs:extension
解决了这个问题,但这很有帮助。