我在xml中有错误,该元素未声明xml错误

时间:2012-10-25 16:39:33

标签: xml xsd

II在xml中有错误,该元素未声明xml错误。为什么我有这个错误? xsd文件 我有xds文件,当我写另一个属性ha错误

<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" `

   xmlns:xsd="http://www.w3.org/2001/XMLSchema">`
     <xsd:element name="TWM_SAD">
       <xsd:complexType>
          <xsd:sequence>
            <xsd:element name="Export_release">
              <xsd:complexType>
                <xsd:sequence>
              <xsd:element type="xsd:string" name="Date_of_exit"/>
              <xsd:element type="xsd:string" name="Time_of_exit"/>
              <xsd:element type="xsd:string" name="Actual_office_of_exit_code"/>
              <xsd:element type="xsd:string" name="Actual_office_of_exit_name"/>
              <xsd:element type="xsd:string" name="Exit_reference"/>
              <xsd:element type="xsd:string" name="Comments"/>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="Assessment_notice">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element type="xsd:short" name="Registration_year"/>
              <xsd:element type="xsd:string" name="Assessment_year"/>
              <xsd:element type="xsd:float" name="Total_item_taxes"/>
              <xsd:element type="xsd:string" name="Statement_number"/>
              <xsd:element type="xsd:string" name="Statement_date"/>
              <xsd:element type="xsd:string" name="Statement_serial"/>


            label      <xsd:element ref="Item"  maxOccurs="unbounded" minOccurs="0"/>


            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
        <xsd:element name="Item">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element type="xsd:string" name="Tax_code"/>
              <xsd:element type="xsd:string" name="Tax_description"/>
              <xsd:element type="xsd:string" name="Tax_amount"/>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>

      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
</xsd:schema>

错误是Item元素未声明?在标签中我有这个错误

1 个答案:

答案 0 :(得分:3)

为了能够引用一个元素,你必须使它成为全局元素。换句话说,您必须直接在Item下移动xsd:schema element的声明。在您的情况下,与TWM_SAD

处于同一级别

这是您更正且语法上有效的XSD:

<?xml version="1.0" encoding="utf-8"?>
<!--XML Schema generated by QTAssistant/XML Schema Refactoring (XSR) Module (http://www.paschidev.com)-->
<xsd:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="TWM_SAD">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element name="Export_release">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element type="xsd:string" name="Date_of_exit"/>
                            <xsd:element type="xsd:string" name="Time_of_exit"/>
                            <xsd:element type="xsd:string" name="Actual_office_of_exit_code"/>
                            <xsd:element type="xsd:string" name="Actual_office_of_exit_name"/>
                            <xsd:element type="xsd:string" name="Exit_reference"/>
                            <xsd:element type="xsd:string" name="Comments"/>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
                <xsd:element name="Assessment_notice">
                    <xsd:complexType>
                        <xsd:sequence>
                            <xsd:element type="xsd:short" name="Registration_year"/>
                            <xsd:element type="xsd:string" name="Assessment_year"/>
                            <xsd:element type="xsd:float" name="Total_item_taxes"/>
                            <xsd:element type="xsd:string" name="Statement_number"/>
                            <xsd:element type="xsd:string" name="Statement_date"/>
                            <xsd:element type="xsd:string" name="Statement_serial"/>
                            <xsd:element ref="Item" maxOccurs="unbounded" minOccurs="0"/>
                        </xsd:sequence>
                    </xsd:complexType>
                </xsd:element>
            <!--
            <xsd:element ref="Item" />
            -->
            <!--
        <xsd:element name="Item">
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element type="xsd:string" name="Tax_code"/>
              <xsd:element type="xsd:string" name="Tax_description"/>
              <xsd:element type="xsd:string" name="Tax_amount"/>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
            -->
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="Item">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:element type="xsd:string" name="Tax_code"/>
                <xsd:element type="xsd:string" name="Tax_description"/>
                <xsd:element type="xsd:string" name="Tax_amount"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
</xsd:schema>