我正在尝试使用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>
答案 0 :(得分:2)
您尚未在maxOccurs
, and maxOccurs
defaults to 1 上指定xs:any
,这意味着第二个元素Name
不是允许,因此错误消息,
元素'row'具有无效的子元素'Name'。
将maxOccurs="unbounded"
添加到xs:any
:
<xs:any processContents="lax" macOccurs="unbounded"/>