0
我是xml中的新手,並且我已經分配了一個任務來使xml文件在C++程序中加載配置。 因爲我從來沒有這樣做過,所以我用xml copy editor來創建下面的xml,然後選擇create schema選項來爲xml創建一個xsd,但是當我試圖驗證它是給出錯誤時。 有人可以告訴我我做錯了什麼。xml和xsd不驗證錯誤
我還沒有編寫C++代碼,因爲我的第一要務是創建一個有效的xml和xsd。
XML:
<?xml version="1.0" encoding="UTF-8"?>
<part_id>
<class_id>
<head>
<defect />
<dim>
<dia>
<unit />
<tolrence />
</dia>
<rad>
<unit />
<tolrence />
</rad>
<height>
<unit />
<tolrence />
</height>
</dim>
</head>
<stamp>
<defect />
<dim>
<depth>
<unit />
<tolrence />
</depth>
<width>
<unit />
<tolrence />
</width>
</dim>
</stamp>
<prethread>
<defect />
<dim>
<dia>
<unit />
<tolrence />
</dia>
<length>
<unit />
<tolrence />
</length>
</dim>
</prethread>
<thread_seg>
<defect />
<dim>
<dia_major>
<unit />
<tolrence />
</dia_major>
<length>
<unit />
<tolrence />
</length>
</dim>
</thread_seg>
<terminal>
<defect />
<dim>
<height>
<unit />
<tolrence />
</height>
<length>
<unit />
<tolrence />
</length>
</dim>
</terminal>
</class_id>
</part_id>
XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="part_id">
<xs:complexType>
<xs:sequence>
<xs:element ref="class_id" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="class_id">
<xs:complexType>
<xs:sequence>
<xs:element ref="head" />
<xs:element ref="stamp" />
<xs:element ref="prethread" />
<xs:element ref="thread_seg" />
<xs:element ref="terminal" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="head">
<xs:complexType>
<xs:sequence>
<xs:element name="defect" type="xs:string" />
<xs:element ref="dim" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="dim">
<xs:complexType>
<xs:sequence>
<xs:element ref="depth" minOccurs="0" />
<xs:element ref="width" minOccurs="0" />
<xs:element ref="dia_major" minOccurs="0" />
<xs:element ref="dia" minOccurs="0" />
<xs:element ref="rad" minOccurs="0" />
<xs:element ref="height" minOccurs="0" />
<xs:element ref="length" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="dia" type="xs:">
<xs:complexType>
<xs:sequence>
<xs:element name="unit" type="xs:decimal" />
<xs:element name="tolrence" type="xs:decimal" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="rad">
<xs:complexType>
<xs:sequence>
<xs:element name="unit" type="xs:decimal" />
<xs:element name="tolrence" type="xs:decimal" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="height">
<xs:complexType>
<xs:sequence>
<xs:element name="unit" type="xs:decimal" />
<xs:element name="tolrence" type="xs:decimal" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="stamp">
<xs:complexType>
<xs:sequence>
<xs:element name="defect" type="xs:string" />
<xs:element ref="dim" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="depth">
<xs:complexType>
<xs:sequence>
<xs:element name="unit" type="xs:decimal" />
<xs:element name="tolrence" type="xs:decimal" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="width">
<xs:complexType>
<xs:sequence>
<xs:element name="unit" type="xs:decimal" />
<xs:element name="tolrence" type="xs:decimal" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="prethread">
<xs:complexType>
<xs:sequence>
<xs:element name="defect" type="xs:string" />
<xs:element ref="dim" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="length">
<xs:complexType>
<xs:sequence>
<xs:element name="unit" type="xs:decimal" />
<xs:element name="tolrence" type="xsdecimal" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="thread_seg">
<xs:complexType>
<xs:sequence>
<xs:element name="defect" type="xs:string" />
<xs:element ref="dim" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="dia_major">
<xs:complexType>
<xs:sequence>
<xs:element name="unit" type="xs:decimal" />
<xs:element name="tolrence" type="xs:decimal" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="terminal">
<xs:complexType>
<xs:sequence>
<xs:element name="defect" type="xs:string" />
<xs:element ref="dim" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
進行驗證我去:https://www.freeformatter.com/xml-validator-xsd.html
錯誤:S4S-ATT-無效值:無效的屬性值爲 '類型'元素'元素'。記錄的原因:Cvc-datatype-valid.1.2.1:'xs:'對'QName'不是有效值。
什麼是錯誤,請分享你寫的代碼 –
在XSD (a'e'和':'缺失)中更正你的錯別字。在XML中,你應該有容忍作爲元素的名稱。 –