2011-09-21 27 views
8

me gustaría validar que un elemento 'Test' deberestricción de contenido y de atributos de validación en el mismo elemento en XSD

  • han restringido su contenido (por ejemplo, usando un patrón de restricción), y
  • Contienen ciertos atributos (por ejemplo, 'id', 'clase' y 'nombre').

El XSD que estoy escribiendo el siguiente aspecto:

<xsd:element name="Test" minOccurs="0" maxOccurs="unbounded"> 
    <xsd:complexType mixed="true"> 
    <xsd:simpleContent> 
     <xsd:restriction> 
     <xsd:pattern value="xyz"/> 
     </xsd:restriction> 
    </xsd:simpleContent> 
    <xsd:attribute name="id" type="xsd:string"></xsd:attribute> 
    <xsd:attribute name="class" type="xsd:string"></xsd:attribute> 
    <xsd:attribute name="name" type="xsd:string"></xsd:attribute> 
    </xsd:complexType> 
</xsd:element> 

Sin embargo, cuando codificar esta en Visual Studio, me sale el siguiente error en el 'atributo xsd:' elementos:

y modelo de contenido 'atributo' son mutuamente excluyentes

¿hay una manera de validar tanto una restricción de contenido y atributos en el mismo elemento?

Respuesta

13

Debe separar su restricción y darle un nombre, luego refiérase a ella como un tipo de base para una extensión. De esta manera:

<xsd:simpleType name="RestrictedString"> 
    <xsd:restriction base="xsd:string"> 
     <xsd:pattern value="xyz" /> 
    </xsd:restriction> 
    </xsd:simpleType> 
    <xsd:element name="Test"> 
    <xsd:complexType> 
     <xsd:simpleContent> 
     <xsd:extension base="RestrictedString"> 
      <xsd:attribute name="id" type="xsd:string" /> 
      <xsd:attribute name="class" type="xsd:string" /> 
      <xsd:attribute name="name" type="xsd:string" /> 
     </xsd:extension> 
     </xsd:simpleContent> 
    </xsd:complexType> 
    </xsd:element> 
+0

Thanks! Esto funcionó perfectamente. También es conveniente, ya que quiero reutilizar la restricción en otro lugar. Por cierto, tuve problemas con el contenido de varias líneas, pero los resolví agregando '' después del patrón. – Jonathan

Cuestiones relacionadas