簡體   English   中英

元素類型“標簽”必須以匹配的結束標簽“</tag> ”

[英]The element type "tag" must be terminated by the matching end-tag "</tag>"

下面的代碼包含一個錯誤。

元素類型"xs:sequence"必須由匹配的結束標記""終止,在 37:5,即第 35 行第 5 列。

我認為它指的是這個:

 </xs:element>

但我不知道出了什么問題。

<xs:schema xmlns:xs="http://www.joe.bloggs.org/2020/XMLSchema" >

 

<xs:element name="Employee_Data" type="EmployeeDataType" />

<xs:complexType name="EmployeeDataType">

  <xs:sequence>

   <xs:element ref="Employee" minOccurs="0" maxOccurs="unbounded" />

  </xs:sequence>

</xs:complexType>

 

<xs:element name="Employee" type="EmployeeType" />

<xs:complexType name="EmployeeType">

  <xs:sequence >

   <xs:element ref="Name" />

   <xs:element ref="Age" />

   <xs:simpleType>
   <xs:restriction base="xs:integer">
   <xs:minInclusive value="0"/>
   <xs:maxInclusive value="120"/>
   </xs:restriction>
   </xs:simpleType>
   </xs:element>

  

   <xs:element ref="Start Date" />

   <xs:element ref="Annual Income” />

         <xs:complexType>

            <xs:simpleContent>

                <xs:extension base="xs:double">

                    <xs:attribute name="currency">

                        <xs:simpleType>

                            <xs:restriction base="xs:string">

                                <xs:enumeration value="Pounds" />

                                <xs:enumeration value="Euros" />

                                <xs:enumeration value="USdollars" />

                            </xs:restriction>

                        </xs:simpleType>

                    </xs:attribute>

                </xs:extension>

            </xs:simpleContent>

        </xs:complexType>

    </xs:element>

   <xs:element ref="Department" />

   <xs:simpleType>
   <xs:restriction base="xs:string">
   <xs:enumeration value="Sales"/>
   <xs:enumeration value="Marketing"/>
   <xs:enumeration value="IT"/>
   </xs:restriction>
   </xs:simpleType>
   </xs:element>

 

<xs:element name="Name" type="xs:string" />

<xs:element name="Start Date" type="xs:date" />

 

</xs:schema>

一般來說,錯誤,

元素類型"tag"必須以匹配的結束標簽"</tag>"結尾

是 XSD 級別下的基本 XML 格式錯誤。 每當 XML 解析器遇到一個結束tag而它以前沒有遇到過匹配的開始tag時,就會發生這種情況。 (在您的情況下, tag = xs:sequence ,並且錯誤消息似乎丟失了結束tag ,可能是由於復制和粘貼標記錯誤造成的。)

要解決此問題,請掃描回似乎打算與有問題的結束標簽配對的開始標簽。 解決方法可能涉及添加、重新定位或修復開始標記,或者移除、重新定位或修復結束標記。 在您的情況下,必須修復預期的開始標簽才能不自動關閉。

改變

  <xs:element ref="Age" />

  <xs:element ref="Age" >

您會發現還有許多進一步的問題需要解決,包括上述問題的其他實例進一步向下文檔,需要使用 where " ,以及對 XSD 元素使用錯誤的命名空間,使用元素名稱中的空格,使用xs:element/@ref其中應該使用xs:element/@name ,並且必須關閉其他 XSD 元素。

完全修復的 XSD

為了最大限度地學習,我強烈建議您獨立解決上述問題。 如果您發現自己又陷入了僵局,這里有一個完全修復的 XSD 供您參考:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" >
  <xs:element name="Employee_Data" type="EmployeeDataType" />
  <xs:complexType name="EmployeeDataType">
    <xs:sequence>
      <xs:element ref="Employee" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Employee" type="EmployeeType" />
  <xs:complexType name="EmployeeType">
    <xs:sequence >
      <xs:element name="Name" />
      <xs:element name="Age" >
        <xs:simpleType>
          <xs:restriction base="xs:integer">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="120"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
      <xs:element name="StartDate" />
      <xs:element name="AnnualIncome">
        <xs:complexType>
          <xs:simpleContent>
            <xs:extension base="xs:double">
              <xs:attribute name="currency">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:enumeration value="Pounds" />
                    <xs:enumeration value="Euros" />
                    <xs:enumeration value="USdollars" />
                  </xs:restriction>
                </xs:simpleType>
              </xs:attribute>
            </xs:extension>
          </xs:simpleContent>
        </xs:complexType>
      </xs:element>
      <xs:element name="Department">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Sales"/>
            <xs:enumeration value="Marketing"/>
            <xs:enumeration value="IT"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM