从基于年份的演变XSD/XML开始,我想写一个更简单的XSD,只定位不会被修改或删除的元素,它可以验证XML来自完整的XSD。XSD名称 - 具有已知名称的可选元素的未知可选元素
为了使简单:
有了这个XML:
<root>
<unknown1/>
<known2/>
<unknown2/>
<known1/>
<unknown3/>
<unknown4/>
</root>
这XSD:
<xsd:schema>
<xsd:element name="root">
<xsd:all>
<xsd:element name="unknown1" minOccurs="0"/>
<xsd:element name="unknown2" minOccurs="0"/>
<xsd:element name="unknown3" minOccurs="0"/>
<xsd:element name="unknown4" minOccurs="0"/>
<xsd:element name="known1" minOccurs="0"/>
<xsd:element name="known2" minOccurs="0"/>
</xsd:all>
</xsd:element name="root">
</xsd:schema>
我想要的东西,如:
<xsd:schema>
<xsd:all>
<xsd:any processControl="skip" />
<xsd:element name="known1" />
<xsd:element name="known2" />
</xsd:schema>
这XSD无效为xsd:any
只能出现在xsd:sequence
或xsd:choice
我不知道如何可以验证原始XML文件具有类似的简单XSD
以及如果我没有知识1和/或知识2的XML?这将验证,这将是错误的 – shubakk 2011-05-26 12:57:12
so known1,known2是必需的,但其余是可选的?标题说“名称未知的可选元素与名称已知的可选元素”,所以我很困惑。 – 2011-05-26 13:54:31
我的歉意,他们是可选的。你会用非可选元素推荐什么? 即使使用可选元素,如果我知道了1&known2加上额外的元素(例如unknown1),那么它也不会做正确的事情 – shubakk 2011-05-26 14:02:38