我有以下想要扩展的 XML 格式。根标签“A”有几个不同类型的可选和必填字段 (Ax)(xs:string 或自定义),可以按任何顺序出现。下面的架构对我有用:
<xs:element name="A">
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="A1" minOccurs="1" maxOccurs="1"/>
<xs:element name="A2" type="xs:string" minOccurs="0" maxOccurs="1"/>
<!-- AND MANY MORE -->
</xs:choice>
</xs:sequence>
</xs:complexType>
</xs:element>
现在,我想确保此 XML 的较新版本仍可针对模式进行验证。更新我的意思是:有更多 XML 模式未知的标签。这些新标签与旧标签一样,可以在 XML 文件中以任何顺序出现。我尝试添加
<xs:any />
在不同位置的架构中(在选择和序列块的底部),但我总是收到架构无效错误。我了解这如何导致我的架构模棱两可,但我不知道如何解决我的问题(可能是通过一些额外的限制,例如“新标签只能位于底部”或其他东西)。