【问题标题】:Error: Must refer to an existing simple or complex type错误:必须引用现有的简单或复杂类型
【发布时间】:2016-03-23 13:34:45
【问题描述】:

我在 Altova 工作,我正在为我的 XML 文件创建一个 XSD 文件,但我的代码无法验证。我得到了错误:

必须引用现有的简单或复杂类型

我不知道为什么,因为我给元素名称titel 赋予了一个简单类型。

有谁知道我做错了什么?

附:不要介意标签中的值。

这是 XSD 文件:

   <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3schools.com CDS.xsd" xmlns:ns1="http://www.w3schools.com" targetNamespace="http://www.w3schools.com" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="catalogus" type="alles"/>
    <xs:complexType name="alles">
        <xs:sequence>
            <xs:element name="CD">
                <xs:complexType>
                    <xs:sequence>       

                        <!-- Elements -->
                        <xs:element name="titel" type="titelnaam"/>
                        <xs:element name="uitvoerder"/>
                        <xs:element name="uitgever"/>
                        <xs:element name="genre"/>
                        <xs:element name="prijs"/>
                        <xs:element name="jaar"/>
                        <xs:element name="behuizing"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>           
        </xs:sequence>
    </xs:complexType>

<!-- simpleTypes -->
<xs:simpleType name="titelnaam">
    <xs:restriction base="xs:string">
        <xs:pattern value="\d{3}-\d{1}-\d{3}-\d{5}-\d{1}"/>
    </xs:restriction>
</xs:simpleType>    
</xs:schema>

这是 XML 文件:

<?xml version="1.0"?>
<!DOCTYPE catalogus SYSTEM "CDS.dtd">
<catalogus>
<CD>
    <titel>Until Dawn</titel>
    <uitvoerder>Nirvana</uitvoerder>
    <uitgever>No Clue Music</uitgever>
    <genre>Jazz</genre>
    <prijs valuta="EU">19,95</prijs>
    <jaar>2002</jaar>
    <behuizing>double</behuizing>
    <tracks>
        <track>
            <nummer>Break away</nummer>
            <componist>Nirvana</componist>
            <tekstschrijver>Nirvana</tekstschrijver>
            <tijdsduur tijd="mm.ss">02.55</tijdsduur>
            <uitvoerder>Nirvana</uitvoerder>
        </track>
        <track>
            <nummer>Bananas</nummer>
            <componist>Nirvana</componist>
            <tekstschrijver>Nirvana</tekstschrijver>
            <tijdsduur tijd="mm.ss">03.55</tijdsduur>
            <uitvoerder>Nirvana</uitvoerder>
        </track>
    </tracks>
</CD>
</catalogus>

【问题讨论】:

    标签: xml xsd complextype simpletype


    【解决方案1】:

    为了消除这个错误,

    必须引用现有的简单或复杂类型

    正确定义命名空间前缀(ns1),

               xmlns:ns1="http://www.w3schools.com/CDS.xsd"
    

    覆盖目标命名空间

               targetNamespace="http://www.w3schools.com/CDS.xsd"
    

    并使用它来引用类型:

      <xs:element name="catalogus" type="ns1:alles"/>
    

    总之……

    XSD

    <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
               xmlns:ns1="http://www.w3schools.com/CDS.xsd"
               targetNamespace="http://www.w3schools.com/CDS.xsd"
               elementFormDefault="qualified"
               attributeFormDefault="unqualified">
      <xs:element name="catalogus" type="ns1:alles"/>
      <xs:complexType name="alles">
        <xs:sequence>
          <xs:element name="CD">
            <xs:complexType>
              <xs:sequence>       
    
                <!-- Elements -->
                <xs:element name="titel" type="ns1:titelnaam"/>
                <xs:element name="uitvoerder"/>
                <xs:element name="uitgever"/>
                <xs:element name="genre"/>
                <xs:element name="prijs"/>
                <xs:element name="jaar"/>
                <xs:element name="behuizing"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>           
        </xs:sequence>
      </xs:complexType>
    
      <!-- simpleTypes -->
      <xs:simpleType name="titelnaam">
        <xs:restriction base="xs:string">
          <xs:pattern value="\d{3}-\d{1}-\d{3}-\d{5}-\d{1}"/>
        </xs:restriction>
      </xs:simpleType>    
    </xs:schema>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-24
      • 2022-07-14
      • 2017-07-28
      • 1970-01-01
      • 2018-06-05
      • 2019-09-17
      • 1970-01-01
      相关资源
      最近更新 更多