none
Validación de atributos XML mediante elementos enumerados en el XSD RRS feed

  • Pregunta

  • Hola a Todos,

    Tengo la siguiente duda:
    Os pongo en materia, dispongo de un fichero XML en el dipongo de la siguiente seccion :
    <USUARIOS>
            <Atributo Clave="TIPO1"      Valor="66666"/>
            <Atributo Clave="TIPO2"      Valor="NOMBRE USUARIO" />
            <Atributo Clave="TIPO3"      Valor="01.03.2009"/>       
        </USUARIOS>   

    Los atributos se pueden informar tantos como se desee siempre y cuando el "tipo" no se repita.
    Para validar este Xml dispongo de un XSD con la siguiente seccion:

     <xs:element name="Atributo" id="idAtributo">
        <xs:complexType>
          <xs:attribute name="Clave" form="qualified" id="idClave">
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:minLength value="1"/>
                <xs:enumeration value="TIPO1"/>
                <xs:enumeration value="TIPO2"/>
                <xs:enumeration value="TIPO3"/>
                <xs:enumeration value="TIPO4"/>
              </xs:restriction>
            </xs:simpleType>
          </xs:attribute>
          <xs:attribute name="Valor" type="xs:string" use="required" form="qualified"/>
        </xs:complexType>
      </xs:element>

    Como podeis comprobar se trata de un tipo enumerado, y el atributo "Valor" esta definido como xs:string.

    Aqui viene la duda, ¿como puedo validar cada "tipo" o elemento del enumerado con un formato independiente? Me explico, cada valor del enumerado es de un tipo distinto que debo validar, por ejemplo TIPO1 debe de ser un integer positivo, TIPO2 una cadena, etc...
    El problema es que no puedo modificar el formato del XML generado, aunque tengo libertad absoluta en el XSD. ¿Alguna sugerencia o idea?

    ¡Gracias a todos!
    miércoles, 16 de septiembre de 2009 9:40