從基於年份的演變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