【发布时间】:2021-12-16 22:22:58
【问题描述】:
我正在尝试根据 XSD 文档验证 XML 文档。
这是我的 XML:
<?xml version="1.0" encoding="utf-8"?>
<ArrayOfProduct xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Product IdProduct="1" NameProduct="1" PriceProduct="1" availability="1" IdSup="1" />
</ArrayOfProduct>
这是我的 XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" targetNamespace="http://www.contoso.com/Products">
<xs:element name="ArrayOfProduct">
<xs:complexType>
<xs:sequence>
<xs:element ref="Product"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Product">
<xs:complexType>
<xs:attribute name="PriceProduct" use="required" type="xs:integer"/>
<xs:attribute name="IdSup" use="required" type="xs:integer"/>
<xs:attribute name="IdProduct" use="required" type="xs:integer"/>
<xs:attribute name="NameProduct" use="required" type="xs:integer"/>
<xs:attribute name="availability" use="required" type="xs:integer"/>
</xs:complexType>
</xs:element>
</xs:schema>
这是我的 C# 代码:
XmlReaderSettings ProductSettings = new XmlReaderSettings();
ProductSettings.Schemas.Add("http://www.contoso.com/Products", "XmlSchema.xsd");
ProductSettings.ValidationType = ValidationType.Schema;
ProductSettings.ValidationEventHandler += new ValidationEventHandler(ProductSettingsValidationEventHandler);
XmlReader Products = XmlReader.Create(doc + ".xml", ProductSettings);
while (Products.Read()) { }
每次我尝试根据我的 XSD 文档验证我的 XML 文档时都会收到错误:
未声明 Product 元素。
【问题讨论】:
标签: xml xsd xml-namespaces xsd-validation xml-validation