2011-10-13 20 views
6

estoy recibiendo un error de validación de la siguiente XSD:XSD: contenido de caracteres no está permitido, ya que el tipo de contenido está vacío

<?xml version="1.0" ?> 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsd:element name="People"> 
     <xsd:complexType> 
     <xsd:sequence> 
      <xsd:element name="Person" maxOccurs="unbounded"> 
       <xsd:complexType> 
        <xsd:attribute name="name" type="xsd:string" use="required" /> 
       </xsd:complexType> 
      </xsd:element> 
     </xsd:sequence> 
     </xsd:complexType> 
    </xsd:element> 
</xsd:schema> 

cuando se utiliza el siguiente código XML para validar:

<?xml version="1.0" ?> 
<People> 
    <Person name='john'> 
     a nice person 
    </Person> 
    <Person name='sarah'> 
     a very nice person 
    </Person> 
    <Person name='chris'> 
     the nicest person in the world 
    </Person> 
</People> 

devuelve el error siguiente:

lxml.etree.XMLSyntaxError: Element 'Person': Character content is not allowed, because the content type is empty. 

Qué me falta?

Respuesta

13

Se dice que la "Persona" no puede incluir una cadena. Para el XML para validar con ese uso xsd esto:

<?xml version="1.0" ?> 
<People> 
    <Person name='john'> 
    </Person> 
    <Person name='sarah'> 
    </Person> 
    <Person name='chris'> 
    </Person> 
</People> 

probar esto por el XSD para la validación:

<?xml version="1.0" ?> 
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <xsd:element name="People"> 
     <xsd:complexType> 
     <xsd:sequence> 
     <xsd:element name="Person" type="Person" maxOccurs="unbounded"/> 
     </xsd:sequence> 
     </xsd:complexType> 
    </xsd:element> 

    <xsd:complexType name="Person"> 
    <xsd:simpleContent> 
     <xsd:extension base="xsd:string"> 
      <xsd:attribute name="name" type="xsd:string" use="required" /> 
     </xsd:extension> 
    </xsd:simpleContent> 
    </xsd:complexType> 
</xsd:schema> 
+0

¿Qué necesito para añadir a la XSD para agregar cadenas en el XML (bajo la Elemento de persona)? – Russell

+0

Edité mi publicación. Por favor, compruebe. –

Cuestiones relacionadas