我需要帮助通过使用substitutionGroup或Choice更改xsd文件,下面是我在代码中使用的xsd文件,现在我开始接收带有标记"组织"的XML数据。而不是" INDIVIDUAL",除了改变之外,所有其他标签都是相同的。我如何能够容纳我的xsd文件中的更改。 我尝试像下面一样更改xsd,但是我的xml没有得到针对模式的验证。
答案 0 :(得分:0)
替换组使用声明为全局元素的元素(它们不是在类型中定义,而是在模式的顶层定义)。
如果您的Individual元素和Organization元素是全局定义的:
<xs:element name="INDIVIDUAL">
<!-- ind. element content -->
</xs:element>
<xs:element name="ORGANIZATION" substitutionGroup="INDIVIDUAL">
<!-- org. element content -->
</xs:element>
然后,您只需要使用对substitutionGroup的head的引用有效:
<xs:element name="TEST">
<xs:complexType>
<xs:sequence>
<xs:element ref="INDIVIDUAL">
个人或任何可替代个人的元素在此处有效。 所以你主要需要在使用替换之前使你的元素全局化。