首页 > 解决方案 > 元素类型“xsd:schema”必须由匹配的结束标记“</xsd:schema>”终止

问题描述

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://xml.netbeans.org/schema/books"
    xmlns:tns="http://xml.netbeans.org/schema/books"
    elementFormDefault="qualified">
    
    <xsd:complexType name="Mcdonalds">
        <xsd:sequence>
            <xsd:element name="Apple pie" type="xsd:date"/>
            <xsd:element name="Mcflurry" type="xsd:string"/>
            <xsd:element name="Fries" type="xsd:double"/>
        </xsd:sequence>
    </xsd:complexType>
    
      <xsd:complexType name="Five guys">
        <xsd:sequence>
            <xsd:element name="Large fries" type="xsd:string"/>
            <xsd:element name="small burger" type="xsd:string"/>
            <xsd:element name="hotdog" type="xsd:int"/>
            <xsd:element name="cost" type="xsd:double"/>
        </xsd:sequence>
      </xsd:complexType>
</xsd:schema>

我正在尝试绑定我的 XSD 文件,但我一直收到此错误并且我没有看到任何问题。

错误:

元素类型:

"[ERROR] 元素类型 "xsd:schema" 必须由匹配的结束标记 "</xsd:schema>" 终止

标签: xmlnetbeansxsdxsd-validationxml-validation

解决方案


您没有在您发布的同一个 XSD 上运行验证器(或者您的 XSD 处理器严重损坏)。

您发布的 XSD 不应导致发布的关于缺少xsd:schema.

为元素使用正确的 NCNames - 没有空格,正如@YitzhakKhabinsky 已经提到的(+1):

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            targetNamespace="http://xml.netbeans.org/schema/books"
            xmlns:tns="http://xml.netbeans.org/schema/books"
            elementFormDefault="qualified">
  
  <xsd:complexType name="Mcdonalds">
    <xsd:sequence>
      <xsd:element name="ApplePie" type="xsd:date"/>
      <xsd:element name="Mcflurry" type="xsd:string"/>
      <xsd:element name="Fries" type="xsd:double"/>
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:complexType name="FiveGuys">
    <xsd:sequence>
      <xsd:element name="LargeFries" type="xsd:string"/>
      <xsd:element name="SmallBurger" type="xsd:string"/>
      <xsd:element name="hotdog" type="xsd:int"/>
      <xsd:element name="cost" type="xsd:double"/>
    </xsd:sequence>
  </xsd:complexType>
</xsd:schema>

上面的 XSD 在语法上是正确的。将它完全用于您的下一次测试。但是,请注意以下几点:

  1. cost将元素与每个菜单项相关联FiveGuys而不是与每个菜单项相关联(可能是作为属性而不是元素)的语义是值得怀疑的。

  2. 您目前没有定义根级元素,只有类型。


推荐阅读