Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/03/2016, 10:14
Avatar de BramSt
BramSt
 
Fecha de Ingreso: abril-2015
Mensajes: 117
Antigüedad: 9 años, 8 meses
Puntos: 5
Máscara de un XSD que me da error

Buenas!





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
  1. <?xml version="1.0"?>
  2.  
  3. <libreria xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esquema.xsd">
  4.  
  5.     <libro categoria="biografia">
  6.  
  7.         <titulo>
  8.             Diabulus In Musica
  9.         </titulo>
  10.         <autor>
  11.             Espido Freire
  12.         </autor>
  13.         <editorial>
  14.             Planeta
  15.         </editorial>
  16.         <isbn>48-239-4152-9</isbn>
  17.  
  18.     </libro>
  19.  
  20. </libreria>

Y su correspondiente esquema:

Código XML:
Ver original
  1. <?xml version="1.0"?>
  2. <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  3.  
  4.  
  5.     <xsd:element name="libreria" type="t_libreria"/><!--*complejo-->
  6.  
  7.    
  8. <!--definimos la libreria-->
  9.     <xsd:complexType name="t_libreria">
  10.        
  11.        
  12.             <xsd:sequence>
  13.  
  14.                 <xsd:element name="libro" type="t_lib" maxOccurs="unbounded"/><!--*complejo-->
  15.                
  16.  
  17.             </xsd:sequence>
  18.        
  19.  
  20.     </xsd:complexType>
  21.    
  22. <!--definimos el libro-->
  23.     <xsd:complexType name="t_lib">
  24.        
  25.            
  26.  
  27.             <xsd:sequence>
  28.  
  29.                 <xsd:element name="titulo" type="t_tit"/><!--simple*-->
  30.                 <xsd:element name="autor" type="xsd:string" minOccurs="1" maxOccurs="2"/><!--estandard*-->
  31.                 <xsd:element name="editorial" type="xsd:string"/><!--estandard*-->
  32.                 <xsd:element name="isbn" type="t_is"/><!--simple*-->
  33.                
  34.  
  35.             </xsd:sequence>
  36.        
  37.     <xsd:attribute name="categoria" type="t_cat" use="required"/>
  38.     </xsd:complexType>
  39.    
  40.    
  41. <!--definimos el elemento simple titulo. Es simple porque tiene restrcciones, entonces hay q darle un tipo-->
  42.     <xsd:simpleType name="t_tit">
  43.  
  44.         <xsd:restriction base="xsd:string">
  45.  
  46.             <xsd:maxLength value="32"/>
  47.  
  48.  
  49.         </xsd:restriction>
  50.     </xsd:simpleType>
  51.  
  52. <!--definimos el elemento simple isbn-->
  53.  
  54.     <xsd:simpleType name="t_is">
  55.  
  56.         <xsd:restriction base="xsd:string">
  57.             <xsd:length value = "13"/>
  58.             <xsd:pattern value = "dd-ddd-dddd-d"/>
  59.         </xsd:restriction>
  60.     </xsd:simpleType>
  61.  
  62.    
  63.     <xsd:simpleType name="t_cat">
  64.        
  65.         <xsd:restriction base="xsd:string">
  66.             <xsd:enumeration value="biografia"/>
  67.             <xsd:enumeration value="ensayo"/>
  68.             <xsd:enumeration value="ficcion"/>
  69.         </xsd:restriction>
  70.  
  71.     </xsd:simpleType>
  72.    
  73.  
  74. </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
  1. Datatype error: Type:InvalidDatatypeValueException, Message:Value '48-239-4152-9' does not match regular expression facet 'dd-ddd-dddd-d'.
  2.  
  3. 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.

Última edición por BramSt; 07/03/2016 a las 09:04