XSL - problema con xsd

 
Vista:

problema con xsd

Publicado por Ivan (1 intervención) el 24/01/2006 16:16:30
Pues lo dicho, haber si alguien me puede decir donde falla este archivo xsd. Creo que el codigo esta bien pero me da un error del tipo "atributo xmlns no declarado en schema o DTD". Os pongo el codigo:

<!--archivo catologo.xsd-->

<?xml version="1.0" encoding="windows-1252"?>
<xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.example.com"
targetNamespace="http://www.example.com"
elementFormDefault="qualified">
<xsd:simpleType name="generoT">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="MISTERIO">
</xsd:enumeration>
<xsd:enumeration value="COMEDIA">
</xsd:enumeration>
<xsd:enumeration value="ACCION">
</xsd:enumeration>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="añoT">
<xsd:restriction base="xsd:integer">
<xsd:minInclusive value="1800"/>
<xsd:maxExclusive value="2006"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:complexType name="peliculaT">
<xsd:attribute name="GENERO" type="generoT"/>
<xsd:attribute name="AÑO" type="añoT"/>
<xsd:sequence>
<xsd:element name="TITULO" type="xsd:string"/>
<xsd:element name="DIRECTOR" type="xsd:string" maxOccurs="1"/>
<xsd:element name="GUIONISTA" type="xsd:string"/>
<xsd:element name="PRODUCTOR" type="xsd:string"/>
<xsd:element name="ACTORES" type="xsd:string"/>
<xsd:element name="COMENTARIOS" type="xsd:string" maxOccurs="1"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="CATALOGO">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="PELICULA" type="peliculaT" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>

Este es el comienzo del codigo XML:

<!--archivo catologo.xml->

<?xml version="1.0" encoding="windows-1252"?>
<!DOCTYPE CATALOGO SYSTEM "Catalogo.dtd">
<CATALOGO xmlns="http://www.example.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.example.com Catalogo.xsd">
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Corrección de errores en archivo XSD y XML para validación de catálogo

Publicado por Alejandro (227 intervenciones) el 05/07/2023 20:07:44
El problema que estás experimentando se debe a un error en los nombres de los archivos y la declaración de espacios de nombres en el archivo XML. A continuación, te proporcionaré la corrección necesaria para solucionar el problema:

Archivo XSD (catologo.xsd):

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="windows-1252"?>
<xsd:schema
    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
    xmlns="http://www.example.com"
    targetNamespace="http://www.example.com"
    elementFormDefault="qualified">
 
    <!-- Definiciones de tipos y elementos -->
 
</xsd:schema>

Archivo XML (catologo.xml):

1
2
3
4
<?xml version="1.0" encoding="windows-1252"?>
<CATALOGO xmlns="http://www.example.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="catologo.xsd">
    <!-- Contenido del catálogo -->
</CATALOGO>

A continuación, se explican las correcciones realizadas:

1. Archivo XSD (catologo.xsd):
- El atributo `elementFormDefault` se establece en "qualified" para indicar que los elementos deben estar en el namespace por defecto.
- Se han eliminado las definiciones de tipos y elementos para simplificar el código. Puedes agregar tus propias definiciones según tus necesidades.

2. Archivo XML (catologo.xml):
- Se ha corregido el valor de `xsi:noNamespaceSchemaLocation` para que coincida con el nombre del archivo XSD, es decir, "catologo.xsd" en lugar de "Catalogo.xsd".
- El atributo `xmlns` en el elemento `<CATALOGO>` se establece en "http://www.example.com" para que coincida con el targetNamespace definido en el archivo XSD.

Recuerda que el nombre de los archivos (tanto el XSD como el XML) debe ser consistente y coincidir exactamente, incluyendo mayúsculas y minúsculas.

Espero que esta corrección resuelva el problema que estabas enfrentando. ¡Buena suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar