Avatar billede Slettet bruger
04. august 2003 - 11:02 Der er 2 kommentarer

Schemavalidering (.xsd) fri rækkefølge men med bounds

Kan man på nogen måde lave en .xsd hvor felterne kan stå i en vilkårlig rækkefølge men hvor der stadig er mulighed for at angive maxoccurs > 1?

Uddybning

Denne XSD er korrekt:

<xs:complexType>
  <xs:all>
    <xs:element name="Felt1"
    type="xs:string"
    minOccurs="0" maxOccurs="1" />
    <xs:element name="Felt2"
    type="xs:string"
    minOccurs="0" maxOccurs="1" />
  </xs:all>
</xs:complexType>

Men den validerer ikke min XML korrekt, idet Felt2 kan forekomme mere end 1 gang.
Jeg prøver så at angive maxOccurs > 1, men det giver fejl:

<xs:complexType>
  <xs:all>
    <xs:element name="Felt1"
    type="xs:string"
    minOccurs="0" maxOccurs="1" />
    <xs:element name="Felt2"
    type="xs:string"
    minOccurs="0" maxOccurs="2" />
  </xs:all>
</xs:complexType>

Den eneste måde jeg kan overkomme dette problem er at bruge xs:sequence, med den hage at rækkefølgen på mine felter bliver fast, og det ønsker jeg ikke:

<xs:complexType>
  <xs:sequence>
    <xs:element name="Felt1"
    type="xs:string"
    minOccurs="0" maxOccurs="1" />
    <xs:element name="Felt2"
    type="xs:string"
    minOccurs="0" maxOccurs="2" />
  </xs:sequence>
</xs:complexType>

Hvad kan man så gøre?
Avatar billede awolffdk Nybegynder
04. august 2003 - 16:03 #1
Jeg mener at kunne huske at man skal sætte maxoccurs="unbound"
Avatar billede Slettet bruger
26. august 2003 - 15:55 #2
Der er ingen måde at komme ud over dette problem. Sådan er det bare.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester