¿Cómo se especifica una lista de elementos secundarios necesarios xml que no necesitas ser en secuencia?

StackOverflow https://stackoverflow.com/questions/4304866

  •  29-09-2019
  •  | 
  •  

Pregunta

Los siguientes valida XML con el documento xsd suministrado. Sin embargo cuando inicio la eliminación de elementos como desde el XML que valida TODAVÍA!?

¿Cómo escribo un XSD que las fuerzas de la inclusión de elementos?

<?xml version="1.0" encoding="UTF-8"?>
<Video>
  <Title>
  </Title>
  <Description>
  </Description>
  <Contributor>
  </Contributor>
  <Subject>
  </Subject>
</Video>

A continuación, tengo el xsd:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="UploadXSD"
    targetNamespace="http://tempuri.org/UploadXSD.xsd"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/UploadXSD.xsd"
    xmlns:mstns="http://tempuri.org/UploadXSD.xsd"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="Video">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Title" minOccurs="1" type="xs:string"></xs:element>
        <xs:element name="Description" minOccurs="1" type="xs:string"></xs:element>
        <xs:element name="Contributor" minOccurs="1" type="xs:string"></xs:element>
        <xs:element name="Subject" minOccurs="1" type="xs:string"></xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

</xs:schema>
¿Fue útil?

Solución

Su targetNamespace en el xsd debe coincidir con el espacio de nombres del xml que está tratando de validar, es decir.

<Video xmlns="http://tempuri.org/UploadXSD.xsd">
  <Title>
  </Title>
  <Description>
  </Description>
  <Contributor>
  </Contributor>
  <Subject>
  </Subject>
</Video>

Otros consejos

Si utiliza xs:all en contraposición a xs:sequence, los elementos pueden aparecer en cualquier orden. Hay algunas restricciones adicionales - (. No estoy seguro de si tiene la intención de que el uso, el esquema permitiría que actualmente), por ejemplo, los elementos no se pueden especificar varias veces usando all

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