Siguiendo los consejos de un compañero, abro aquí un post sobre mi problema con un XSD, y ya vosotreos lo movéis al lugar más oportuno si aquí no está bien.
Aclarar que estoy usando el STYLUS STUDIO 2007
Pues tengo un XML:
Código XML:
Ver original
<?xml version="1.0"?> <libreria xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esquema.xsd"> <libro categoria="biografia"> <titulo> Diabulus In Musica </titulo> <autor> Espido Freire </autor> <editorial> Planeta </editorial> <isbn>48-239-4152-9</isbn> </libro> </libreria>
Y su correspondiente esquema:
Código XML:
Ver original
<?xml version="1.0"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:element name="libreria" type="t_libreria"/><!--*complejo--> <!--definimos la libreria--> <xsd:complexType name="t_libreria"> <xsd:sequence> <xsd:element name="libro" type="t_lib" maxOccurs="unbounded"/><!--*complejo--> </xsd:sequence> </xsd:complexType> <!--definimos el libro--> <xsd:complexType name="t_lib"> <xsd:sequence> <xsd:element name="titulo" type="t_tit"/><!--simple*--> <xsd:element name="autor" type="xsd:string" minOccurs="1" maxOccurs="2"/><!--estandard*--> <xsd:element name="editorial" type="xsd:string"/><!--estandard*--> <xsd:element name="isbn" type="t_is"/><!--simple*--> </xsd:sequence> <xsd:attribute name="categoria" type="t_cat" use="required"/> </xsd:complexType> <!--definimos el elemento simple titulo. Es simple porque tiene restrcciones, entonces hay q darle un tipo--> <xsd:simpleType name="t_tit"> <xsd:restriction base="xsd:string"> <xsd:maxLength value="32"/> </xsd:restriction> </xsd:simpleType> <!--definimos el elemento simple isbn--> <xsd:simpleType name="t_is"> <xsd:restriction base="xsd:string"> <xsd:length value = "13"/> <xsd:pattern value = "dd-ddd-dddd-d"/> </xsd:restriction> </xsd:simpleType> <xsd:simpleType name="t_cat"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="biografia"/> <xsd:enumeration value="ensayo"/> <xsd:enumeration value="ficcion"/> </xsd:restriction> </xsd:simpleType> </xsd:schema>
El XML está bien formado, el XSD es válido, pero al validar el XML con el SXD, me dice lo siguiente:
Código XML:
Ver original
Datatype error: Type:InvalidDatatypeValueException, Message:Value '48-239-4152-9' does not match regular expression facet 'dd-ddd-dddd-d'. The XML document libreria.xml is NOT valid (1 errors)
Es decir, la máscara da algún error, pero no entiendo por qué.
Muchas gracias a todos.