未知元素的XML架构验证
本文关键字:验证 XML 元素 未知 | 更新日期: 2023-09-27 18:26:40
我正在尝试用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>
您没有在xs:any
上指定maxOccurs
,并且maxOccurs
默认为1,这意味着不允许使用第二个元素Name
,因此错误消息
元素"row"具有无效的子元素"Name"。
通过将maxOccurs="unbounded"
添加到xs:any
:进行更正
<xs:any processContents="lax" macOccurs="unbounded"/>