繁体   English   中英

根据XSD验证XML并忽略子元素的顺序

[英]Validate XML against XSD and ignore order of child elements

我在C#应用程序中有一个方法,可以针对嵌入式XSD验证用户输入XML文件。 它工作正常,但它要求所有子元素都按照XSD中定义的确切顺序。 但对我而言,只要元素存在,顺序就无关紧要了。

例如,如果我有以下XSD ...

<xs:element maxOccurs="unbounded" name="ParentElement">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="FirstChildElement" type="xs:string" />
      <xs:element name="SecondChildElement" type="xs:string" />
      <xs:element name="ThirdChildElement" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
</xs:element>

像这样的XML ......

<ParentElement>
    <FirstChildElement>someValue</FirstChildElement>        
    <ThirdChildElement>someValue</ThirdChildElement>
    <SecondChildElement>someValue</SecondChildElement>
</ParentElement>

如果我验证它,我会收到一个错误,因为子元素出现故障。

我可以对XSD进行一些更改,因此验证只关注元素是否存在,并且它们是否在正确的父级下,而不是它们所处的顺序?

顺序意味着,元素必须以特定顺序出现。 你可能想要xs:all。 请查看http://www.w3schools.com/xml/schema_complex_indicators.asp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM