未知元素的XML模式验证

时间:2015-12-13 16:42:36

标签: c# xml xsd xml-validation

我正在尝试使用C#中的模式验证XML。我将在row元素下面有一个未知元素。我正在使用xs:any,我收到以下错误

  

元素'row'具有无效的子元素'Name'。

架构 -

<xs:element name="table">
  <xs:complexType>
    <xs:sequence>
      <xs:element maxOccurs="unbounded" name="row">
        <xs:complexType>
          <xs:sequence>
            <xs:any processContents="lax"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

XML -

<table>
  <row>
    <ProductID>994</ProductID>
    <Name>LL Bottom Bracket</Name>
    <ProductModel>LL Bottom Bracket</ProductModel>
    <CultureID>en    </CultureID>
    <Description>Chromoly steel.</Description>
  </row> 
</table>

1 个答案:

答案 0 :(得分:2)

您尚未在maxOccurs and maxOccurs defaults to 1 上指定xs:any,这意味着第二个元素Name不是允许,因此错误消息,

  

元素'row'具有无效的子元素'Name'。

maxOccurs="unbounded"添加到xs:any

以更正
        <xs:any processContents="lax" macOccurs="unbounded"/>