次の方法に従って、いくつかのxml Xsd検証を行いました: XSDスキーマを使用したXml検証
.......................................................
XmlReaderSettings settings = new XmlReaderSettings();
settings.Schemas.Add(null, xsdFilePath);
settings.ValidationType = ValidationType.Schema;
settings.ValidationEventHandler += new System.Xml.Schema.ValidationEventHandler(settings_ValidationEventHandler);
XmlDocument document = new XmlDocument();
document.Load(xmlFilePath);
XmlReader rdr = XmlReader.Create(new StringReader(document.InnerXml), settings);
while (rdr.Read())
{
}
...........................................................
そして、「「ref」属性は存在できません」というエラーが表示されます
私のXSDは次のようになります:
...........
<xs:element name="totals" minOccurs="0" ref="DocTotal"/>
..................................
<xs:element name="DocTotal">
<xs:complexType>
<xs:sequence>
<xs:element name="totalQty" minOccurs="0" type="xs:decimal"/>
<xs:element name="totalTax" minOccurs="0" type="xs:decimal"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
そして私のxmlは次のようになります:
<totals>
<totalQty>800</totalQty>
<totalTax>0.00<totalTax>
</totals>
このエラーは、「name」と「ref」の両方が原因で発生すると思います: 属性が同じ要素に存在します: ただし、これは XSD では間違っていないと思います (これについてのコメントに感謝します): この場合、これを検証する方法はありますか? XML を使用した XSD: