Wie gebe ich eine Liste der benötigten xml geordneten Elemente brauchen nicht in Folge zu sein?

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

  •  29-09-2019
  •  | 
  •  

Frage

Das folgende XML-validates gegen das mitgelieferte XSD-Dokument. Allerdings, wenn ich anfangen Elemente wie aus der XML entfernt es bestätigt noch!?

Wie schreibe ich eine XSD, dass Kräfte die Einbeziehung von Elementen?

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

Dann habe ich das 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>
War es hilfreich?

Lösung

Ihre target im XSD sollte den Namespace des XML entsprechen, die Sie versuchen, zu validieren, d.

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

Andere Tipps

Wenn Sie xs:all verwenden zu xs:sequence Gegensatz können die Elemente in beliebiger Reihenfolge erscheinen. Es gibt einige zusätzliche Einschränkungen - (. Ich bin mir nicht sicher, ob Sie, dass die Nutzung beabsichtigt, würde Ihr Schema zur Zeit das erlauben) können beispielsweise Elemente nicht mehrfach mit all angegeben werden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top