使用 Notepad++ 在 XSD 验证中出现错误

Getting error in XSD validation using Notepad++

我使用 Visual Studio 2017 从 DTD 生成了一个 XSD 模式,当我在记事本++中验证它时出现以下错误:

"ERROR: Element 'rutas': No matching global declaration available for the validation root."

我试过更改编码,因为我的 XML 是 UTF-8,而 Visual Studio 的编码是 Windows-1252。我还用之前的 DTD 验证了 HTML,一切正常。

XSD:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://tempuri.org/rutas" elementFormDefault="qualified" targetNamespace="http://tempuri.org/rutas" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="rutas">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="1" maxOccurs="unbounded" ref="ruta" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ruta">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="tipo" />
        <xs:element ref="transporte" />
        <xs:element ref="duracion" />
        <xs:element ref="agencia" />
        <xs:element ref="descripcion" />
        <xs:element ref="personas" />
        <xs:element ref="inicio" />
        <xs:element minOccurs="1" maxOccurs="unbounded" ref="bibliografia" />
        <xs:element ref="recomendacion" />
        <xs:element minOccurs="1" maxOccurs="unbounded" ref="hito" />
      </xs:sequence>
      <xs:attribute name="nombre" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
  <xs:element name="tipo" type="xs:string" />
  <xs:element name="transporte" type="xs:string" />
  <xs:element name="duracion" type="xs:string" />
  <xs:element name="agencia" type="xs:string" />
  <xs:element name="descripcion" type="xs:string" />
  <xs:element name="personas" type="xs:string" />
  <xs:element name="inicio">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="1" ref="fecha" />
        <xs:element minOccurs="0" maxOccurs="1" ref="hora" />
        <xs:element ref="lugar" />
        <xs:element ref="direccion" />
        <xs:element ref="coordenadas" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="fecha" type="xs:string" />
  <xs:element name="hora" type="xs:string" />
  <xs:element name="lugar" type="xs:string" />
  <xs:element name="direccion" type="xs:string" />
  <xs:element name="coordenadas">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">
          <xs:attribute name="longitud" type="xs:string" use="required" />
          <xs:attribute name="latitud" type="xs:string" use="required" />
          <xs:attribute name="altitud" type="xs:string" use="required" />
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="bibliografia" type="xs:string" />
  <xs:element name="recomendacion" type="xs:string" />
  <xs:element name="hito">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="descripcion" />
        <xs:element ref="coordenadas" />
        <xs:element ref="distancia" />
        <xs:element minOccurs="1" maxOccurs="unbounded" ref="fotografia" />
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="video" />
      </xs:sequence>
      <xs:attribute name="nombre" type="xs:string" use="required" />
    </xs:complexType>
  </xs:element>
  <xs:element name="distancia">
    <xs:complexType>
      <xs:simpleContent>
        <xs:extension base="xs:string">`enter code here`
          <xs:attribute name="unidades" type="xs:string" use="required" />
        </xs:extension>
      </xs:simpleContent>
    </xs:complexType>
  </xs:element>
  <xs:element name="fotografia" type="xs:string" />
  <xs:element name="video" type="xs:string" />
</xs:schema>

XML

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>

<rutas
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation='rutas.xsd'>

    <ruta nombre = "Senda del oso"> 
    <tipo> Paisajística </tipo>
    <transporte> Bicicleta </transporte>
    <duracion> 3 horas </duracion>
    <agencia> Sin agencia </agencia>
    <descripcion> Constituye una ruta idónea para amantes del senderismo y cicloturistas. </descripcion>
    <personas> Forma física media/niños </personas>
    <inicio>
        <lugar> Tuñón </lugar>
        <direccion> AS-228 Km. 7 </direccion>
        <coordenadas longitud = "5º 58" latitud = "43º 17" altitud = "148m" />
    </inicio>
    <bibliografia> https://es.wikiloc.com/rutas-mountain-bike/asturias-senda-del-oso-via-verde-para-deporte-naturaleza-y-aventura-14435403 </bibliografia>
    <bibliografia> https://yendoporlavida.com/2017/03/13/senda-del-oso-en-bicicleta-por-asturias/ </bibliografia>
    <bibliografia> https://www.vallesdeloso.es/senda_del_oso.php </bibliografia>
    <recomendacion> 10 </recomendacion>
    <hito nombre = "Villanueva">
        <descripcion> Villanueva es una parroquia del concejo asturiano de Santo Adriano </descripcion>
        <coordenadas longitud = "6º" latitud = "43º 16" altitud = "170m" />
        <distancia unidades = "km"> 3 </distancia>
        <fotografia> "Foto.jpg" </fotografia>
        <video> "Video.mp3" </video>
    </hito>
    <hito nombre = "Proaza">
        <descripcion> Pueblo de Asturias situado en el concejo de Proaza </descripcion>
        <coordenadas longitud = "6º" latitud = "43º 15" altitud = "259m" />
        <distancia unidades = "km"> 3 </distancia>
        <fotografia> "Foto.jpg" </fotografia>
        <fotografia> "Foto.jpg" </fotografia>
    </hito>
    <hito nombre = "Entrago">
        <descripcion> Final de la ruta </descripcion>
        <coordenadas longitud = "6º 5" latitud = "43º 10" altitud = "494m" />
        <distancia unidades = "km"> 3 </distancia>
        <fotografia> "Foto.jpg" </fotografia>
        <fotografia> "Foto.jpg" </fotografia>
    </hito>
    </ruta>

    <ruta nombre = "Senda del oso"> 
    <tipo> Paisajística </tipo>
    <transporte> Bicicleta </transporte>
    <duracion> 3 horas </duracion>
    <agencia> Sin agencia </agencia>
    <descripcion> Constituye una ruta idónea para amantes del senderismo y cicloturistas. </descripcion>
    <personas> Forma física media/niños </personas>
    <inicio>  
        <fecha> 19-10-2019 </fecha>
        <hora> 17:00 </hora>
        <lugar> Tuñón </lugar>
        <direccion> AS-228 Km. 7 </direccion>
        <coordenadas longitud = "5º 58" latitud = "43º 17" altitud = "148m" />
    </inicio>
    <bibliografia> https://es.wikiloc.com/rutas-mountain-bike/asturias-senda-del-oso-via-verde-para-deporte-naturaleza-y-aventura-14435403 </bibliografia>
    <bibliografia> https://yendoporlavida.com/2017/03/13/senda-del-oso-en-bicicleta-por-asturias/ </bibliografia>
    <bibliografia> https://www.vallesdeloso.es/senda_del_oso.php </bibliografia>
    <recomendacion> 10 </recomendacion>
    <hito nombre = "Villanueva">
        <descripcion> Villanueva es una parroquia del concejo asturiano de Santo Adriano </descripcion>
        <coordenadas longitud = "6º" latitud = "43º 16" altitud = "170m" />
        <distancia unidades = "km"> 3 </distancia>
        <fotografia> "Foto.jpg" </fotografia>
        <video> "Video.mp3" </video>
    </hito>
    <hito nombre = "Proaza">
        <descripcion> Pueblo de Asturias situado en el concejo de Proaza </descripcion>
        <coordenadas longitud = "6º" latitud = "43º 15" altitud = "259m" />
        <distancia unidades = "km"> 3 </distancia>
        <fotografia> "Foto.jpg" </fotografia>
        <fotografia> "Foto.jpg" </fotografia>
    </hito>
    <hito nombre = "Entrago">
        <descripcion> Final de la ruta </descripcion>
        <coordenadas longitud = "6º 5" latitud = "43º 10" altitud = "494m" />
        <distancia unidades = "km"> 3 </distancia>
        <fotografia> "Foto.jpg" </fotografia>
        <fotografia> "Foto.jpg" </fotografia>
    </hito>
    </ruta>

    <ruta nombre = "Senda del oso"> 
    <tipo> Paisajística </tipo>
    <transporte> Bicicleta </transporte>
    <duracion> 3 horas </duracion>
    <agencia> Sin agencia </agencia>
    <descripcion> Constituye una ruta idónea para amantes del senderismo y cicloturistas. </descripcion>
    <personas> Forma física media/niños </personas>
    <inicio>  
        <fecha> 19-10-2019 </fecha>
        <hora> 17:00 </hora>
        <lugar> Tuñón </lugar>
        <direccion> AS-228 Km. 7 </direccion>
        <coordenadas longitud = "5º 58" latitud = "43º 17" altitud = "148m" />
    </inicio>
    <bibliografia> https://es.wikiloc.com/rutas-mountain-bike/asturias-senda-del-oso-via-verde-para-deporte-naturaleza-y-aventura-14435403 </bibliografia>
    <bibliografia> https://yendoporlavida.com/2017/03/13/senda-del-oso-en-bicicleta-por-asturias/ </bibliografia>
    <bibliografia> https://www.vallesdeloso.es/senda_del_oso.php </bibliografia>
    <recomendacion> 10 </recomendacion>
    <hito nombre = "Villanueva">
        <descripcion> Villanueva es una parroquia del concejo asturiano de Santo Adriano </descripcion>
        <coordenadas longitud = "6º" latitud = "43º 16" altitud = "170m" />
        <distancia unidades = "km"> 3 </distancia>
        <fotografia> "Foto.jpg" </fotografia>
        <video> "Video.mp3" </video>
    </hito>
    <hito nombre = "Proaza">
        <descripcion> Pueblo de Asturias situado en el concejo de Proaza </descripcion>
        <coordenadas longitud = "6º" latitud = "43º 15" altitud = "259m" />
        <distancia unidades = "km"> 3 </distancia>
        <fotografia> "Foto.jpg" </fotografia>
        <fotografia> "Foto.jpg" </fotografia>
    </hito>
    <hito nombre = "Entrago">
        <descripcion> Final de la ruta </descripcion>
        <coordenadas longitud = "6º 5" latitud = "43º 10" altitud = "494m" />
        <distancia unidades = "km"> 3 </distancia>
        <fotografia> "Foto.jpg" </fotografia>
        <fotografia> "Foto.jpg" </fotografia>
    </hito>
    </ruta>

    <ruta nombre = "Senda del oso"> 
    <tipo> Paisajística </tipo>
    <transporte> Bicicleta </transporte>
    <duracion> 3 horas </duracion>
    <agencia> Sin agencia </agencia>
    <descripcion> Constituye una ruta idónea para amantes del senderismo y cicloturistas. </descripcion>
    <personas> Forma física media/niños </personas>
    <inicio>  
        <fecha> 19-10-2019 </fecha>
        <hora> 17:00 </hora>
        <lugar> Tuñón </lugar>
        <direccion> AS-228 Km. 7 </direccion>
        <coordenadas longitud = "5º 58" latitud = "43º 17" altitud = "148m" />
    </inicio>
    <bibliografia> https://es.wikiloc.com/rutas-mountain-bike/asturias-senda-del-oso-via-verde-para-deporte-naturaleza-y-aventura-14435403 </bibliografia>
    <bibliografia> https://yendoporlavida.com/2017/03/13/senda-del-oso-en-bicicleta-por-asturias/ </bibliografia>
    <bibliografia> https://www.vallesdeloso.es/senda_del_oso.php </bibliografia>
    <recomendacion> 10 </recomendacion>
    <hito nombre = "Villanueva">
        <descripcion> Villanueva es una parroquia del concejo asturiano de Santo Adriano </descripcion>
        <coordenadas longitud = "6º" latitud = "43º 16" altitud = "170m" />
        <distancia unidades = "km"> 3 </distancia>
        <fotografia> "Foto.jpg" </fotografia>
        <video> "Video.mp3" </video>
    </hito>
    <hito nombre = "Proaza">
        <descripcion> Pueblo de Asturias situado en el concejo de Proaza </descripcion>
        <coordenadas longitud = "6º" latitud = "43º 15" altitud = "259m" />
        <distancia unidades = "km"> 3 </distancia>
        <fotografia> "Foto.jpg" </fotografia>
        <fotografia> "Foto.jpg" </fotografia>
    </hito>
    <hito nombre = "Entrago">
        <descripcion> Final de la ruta </descripcion>
        <coordenadas longitud = "6º 5" latitud = "43º 10" altitud = "494m" />
        <distancia unidades = "km"> 3 </distancia>
        <fotografia> "Foto.jpg" </fotografia>
        <fotografia> "Foto.jpg" </fotografia>
    </hito>
    </ruta>

    <ruta nombre = "Senda del oso"> 
    <tipo> Paisajística </tipo>
    <transporte> Bicicleta </transporte>
    <duracion> 3 horas </duracion>
    <agencia> Sin agencia </agencia>
    <descripcion> Constituye una ruta idónea para amantes del senderismo y cicloturistas. </descripcion>
    <personas> Forma física media/niños </personas>
    <inicio>  
        <fecha> 19-10-2019 </fecha>
        <hora> 17:00 </hora>
        <lugar> Tuñón </lugar>
        <direccion> AS-228 Km. 7 </direccion>
        <coordenadas longitud = "5º 58" latitud = "43º 17" altitud = "148m" />
    </inicio>
    <bibliografia> https://es.wikiloc.com/rutas-mountain-bike/asturias-senda-del-oso-via-verde-para-deporte-naturaleza-y-aventura-14435403 </bibliografia>
    <bibliografia> https://yendoporlavida.com/2017/03/13/senda-del-oso-en-bicicleta-por-asturias/ </bibliografia>
    <bibliografia> https://www.vallesdeloso.es/senda_del_oso.php </bibliografia>
    <recomendacion> 10 </recomendacion>
    <hito nombre = "Villanueva">
        <descripcion> Villanueva es una parroquia del concejo asturiano de Santo Adriano </descripcion>
        <coordenadas longitud = "6º" latitud = "43º 16" altitud = "170m" />
        <distancia unidades = "km"> 3 </distancia>
        <fotografia> "Foto.jpg" </fotografia>
        <video> "Video.mp3" </video>
    </hito>
    <hito nombre = "Proaza">
        <descripcion> Pueblo de Asturias situado en el concejo de Proaza </descripcion>
        <coordenadas longitud = "6º" latitud = "43º 15" altitud = "259m" />
        <distancia unidades = "km"> 3 </distancia>
        <fotografia> "Foto.jpg" </fotografia>
        <fotografia> "Foto.jpg" </fotografia>
    </hito>
    <hito nombre = "Entrago">
        <descripcion> Final de la ruta </descripcion>
        <coordenadas longitud = "6º 5" latitud = "43º 10" altitud = "494m" />
        <distancia unidades = "km"> 3 </distancia>
        <fotografia> "Foto.jpg" </fotografia>
        <fotografia> "Foto.jpg" </fotografia>
    </hito>
    </ruta>
</rutas>

DTD:

<!ELEMENT rutas (ruta+)>

<!ELEMENT ruta (tipo, transporte, duracion, agencia, descripcion, personas, inicio, bibliografia+, recomendacion, hito+)>
<!ELEMENT tipo (#PCDATA)>
<!ELEMENT transporte (#PCDATA)>
<!ELEMENT duracion (#PCDATA)>
<!ELEMENT agencia (#PCDATA)>
<!ELEMENT descripcion (#PCDATA)>
<!ELEMENT personas (#PCDATA)>
<!ELEMENT inicio (fecha?, hora?, lugar, direccion, coordenadas)>
    <!ELEMENT fecha (#PCDATA)>
    <!ELEMENT hora (#PCDATA)>
    <!ELEMENT lugar (#PCDATA)>
    <!ELEMENT direccion (#PCDATA)>
    <!ELEMENT coordenadas (#PCDATA)>
<!ELEMENT bibliografia (#PCDATA)>
<!ELEMENT recomendacion (#PCDATA)>
<!ELEMENT hito (descripcion, coordenadas, distancia, fotografia+, video*)>
    <!ELEMENT distancia (#PCDATA)>
    <!ELEMENT fotografia (#PCDATA)>
    <!ELEMENT video (#PCDATA)>
<!ATTLIST ruta nombre CDATA #REQUIRED>
<!ATTLIST coordenadas longitud CDATA #REQUIRED>
<!ATTLIST coordenadas latitud CDATA #REQUIRED>
<!ATTLIST coordenadas altitud CDATA #REQUIRED>
<!ATTLIST hito nombre CDATA #REQUIRED>
<!ATTLIST distancia unidades CDATA #REQUIRED>

有了 DTD,DTD 验证:XML 有效。

您的实例文档和 DTD 在无命名空间中,但您的架构适用于命名空间 http://tempuri.org/rutas