Pregunta

Estoy tratando de hacer que la lista no ordenada de variables en var1 var2 se produce dos veces y se produce infinitas veces (Caso de uso en mi proyecto es diferente). El elemento no me permite utilizar maxOcurrencias.

¿Hay alguna forma de solucionar lo que estoy tratando de hacer?

<?xml version="1.0" encoding="ISO-8859-1"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="testcomment">
    <xs:complexType>
      <xs:all>
        <xs:element name="var1" type="xs:string" maxOccurs="2" />
        <xs:element name="var2" type="xs:integer" maxOccurs="unbounded" />
      </xs:all>
    </xs:complexType>
  </xs:element>
</xs:schema>
¿Fue útil?

Solución

Lo que estamos tratando de hacer sonidos como el tipo de un elemento en la lista podría ser ambiguo sin la lectura de la ventaja, en cuyo caso no hay trabajo en torno a XSD a causa de las clases de idiomas se puede describir.

Se puede publicar una parte relevante de su XSD?


Actualización: No, no se puede hacer eso con XSD. Las reglas sobre lo que se puede poner en un elemento <xs:all> se enumeran, por ejemplo, aquí . Esta restricción tiene un nombre - la UPA, o UNIQUE partículas Atribución. Todo tiene que ver con la ambigüedad y el sitio web de Microsoft tiene una buena explicación de por qué es que existe aquí.

o bien puede cambiar su diseño del documento para eliminar la necesidad de este tipo de declaración, o una mirada a un esquema de lenguaje más expresivo como RelaxNG .

Otros consejos

Me encontré con el mismo problema y no hay una solución! Echa un vistazo a esta respuesta:

https://stackoverflow.com/a/3827606/637142

<xs:element name="A">
  <xs:complexType>
    <xs:choice maxOccurs="unbounded">
      <xs:element ref="B"/>
      <xs:element ref="C"/>
    </xs:choice>
  </xs:complexType>
</xs:element>

fácil, simplemente use<xs:choice maxOccurs="unbounded"> en lugar de <xs:all>. Esto le dará el efecto que busca.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top