Avatar billede bjarke Nybegynder
28. november 2002 - 08:36 Der er 2 kommentarer og
1 løsning

XSD

Hvordan får jeg nedenstående stump lavet om til lovlig XSD (XML Schema)? Jeg tror, at det fremgår, hvad det er jeg gerne vil. En flad complexType kaldet inbook, med en række elementer. Jeg vil også gerne høre om man kan lave det på en smart(ere) måde, når jeg skal bruge mindst en af chapter og pages og evt begge.

--Bjarke


<xs:complexType name="inbook">
  <!-- author or editor -->
  <xs:choice>
    <xs:element name="author" type="author"/>
    <xs:element name="editor" type="editor"/>
  </xs:choice>
  <!-- chapter and/or pages -->
  <xs:choice>
    <xs:complexType>
      <xs:element name="chapter" type="chapter"/>
      <xs:element name="pages" type="pages"/>
    </xs:complexType>
    <xs:element name="chapter" type="chapter"/>
    <xs:element name="pages" type="pages"/>
  </xs:choice>
  <xs:all>
    <!-- required -->
    <xs:element name="title" type="title"/>
    <xs:element name="publisher" type="publisher"/>
    <xs:element name="year" type="year"/>
    <!-- optional -->
    <xs:element name="volume" type="volume" minOccurs="0"/>
    <xs:element name="series" type="series" minOccurs="0"/>
    <xs:element name="address" type="address" minOccurs="0"/>
    <xs:element name="edition" type="edition" minOccurs="0"/>
    <xs:element name="month" type="month" minOccurs="0"/>
    <xs:element name="note" type="note" minOccurs="0"/>
    <xs:element name="key" type="key" minOccurs="0"/>
  </xs:all>
  <xs:attribute name="citationkey" type="citationkey" use="required"/>
</xs:complexType>
Avatar billede janegil Nybegynder
29. november 2002 - 10:28 #1
Det ser i hvert fall ut som om XML SPy vil ha sequence rund dine to sett av choices. Og at typer består av elementer, ikke av andre typer. Men xs:all og xs:attribute kom jeg ingen vei med.

    <xs:complexType name="inbook">
        <xs:sequence>
            <xs:choice>
                <xs:element name="author" type="author"/>
                <xs:element name="editor" type="editor"/>
            </xs:choice>
            <xs:choice>
                <xs:sequence>
                    <xs:element name="chapter" type="chapter"/>
                    <xs:element name="pages" type="pages"/>
                </xs:sequence>
                <xs:element name="chapter" type="chapter"/>
                <xs:element name="pages" type="pages"/>
            </xs:choice>
            <!-- author or editor -->
            <!-- chapter and/or pages -->
        </xs:sequence>
    </xs:complexType>
Avatar billede _darkstar_ Nybegynder
10. januar 2003 - 20:12 #2
Der er en masse gode eksempler på w3.org.
Avatar billede bjarke Nybegynder
16. januar 2003 - 15:11 #3
Tak for kommentarerne. <xs:all> kan ikke nestes med hverken <xs:choice> eller <xs:sequence> så "x and/or y" må (kan) udtrykkes som noget i retning af:

<xs:choice>
  <xs:sequence>
    <x>
    <y minOccurs="0">
  </xs:sequence>
  <xs:sequence>
    <y>
    <x ... minOccurs="0">
  </xs:sequence>
</xs:choice>
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