Avatar billede p_r Nybegynder
09. maj 2004 - 22:34 Der er 9 kommentarer og
1 løsning

DTD eller SCHEMA?

Hej!

Hvad er fordelene ved at bruge Schema frem for DTD?

Har f.eks. lavet en DTD her:

<!ELEMENT VAREINFORMATION (VARE+)>
<!ELEMENT VARE (NAVN, VARENUMMER, BESKRIVELSE, ENHED, PRIS, BILLEDE, LEVERANDØR)>
<!ELEMENT NAVN (#PCDATA)>
<!ELEMENT VARENUMMER (#PCDATA)>
<!ELEMENT BESKRIVELSE (FARVE, MATERIALE, ANVENDELSE, ANDET)>
<!ELEMENT FARVE (#PCDATA)>
<!ELEMENT MATERIALE (#PCDATA)>
<!ELEMENT ANVENDELSE (#PCDATA)>
<!ELEMENT ANDET (#PCDATA)>
<!ELEMENT ENHED (#PCDATA)>
<!ELEMENT PRIS (PRIS_MED_MOMS, PRIS_UDEN_MOMS)>
<!ELEMENT PRIS_MED_MOMS (#PCDATA)>
    <!ELEMENT PRIS_UDEN_MOMS (#PCDATA)>
<!ELEMENT BILLEDE EMPTY>
<!ELEMENT LEVERANDØR (#PCDATA)>


Hvordan ville den se ud i Schema?
Avatar billede arne_v Ekspert
09. maj 2004 - 22:38 #1
Purister vil hævde at det er en fordel at et schema selv er XML.

Fra en rent praktisk synsvinkel vil jeg sige at den store fordel ved
schema er at du udover at definere elementernes rækkefølge m.v.
og kan definere indholdet af elementerne.

Du kan f.eks. definere at PRIS_MED_MOMS og PRIS_UDEN_MOMS skal være
et tal.
Avatar billede p_r Nybegynder
09. maj 2004 - 22:42 #2
ok...så man kan have det hele i ét dokument? Er det det der er det smarte? Ville det være et stort arbejde at omskrive ovenstående til et schema?
Avatar billede arne_v Ekspert
09. maj 2004 - 22:43 #3
Nej -  man vil stadigvæk have schemaet ved siden af.

(DTD er iøvrigt nemt at embedded i XML dokument !)
Avatar billede arne_v Ekspert
09. maj 2004 - 22:46 #4
Jeg er ikek skrap til schemaer, men dte må være noget a la:

<?xml version="1.0"?>
<xsd:schema version="1.0" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:element name="VAREINFORMATION">
      <xsd:complexType>
        <xsd:sequence>
            <xsd:element name="VARE">
              <xsd:complexType>
                    <xsd:element name="NAVN" type="xsd:string"/>
                    <xsd:element name="VARENUMMER" type="xsd:integer"/>
                    <xsd:element name="BESKRIVELSE" type="xsd:string"/>
                    ...
              </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
      </xsd:complexType>
  </xsd:element>
</xsd:schema>
Avatar billede arne_v Ekspert
09. maj 2004 - 22:48 #5
<xsd:element name="VARE">

skal vist være

<xsd:element name="VARE" minOccurs="1">
Avatar billede p_r Nybegynder
09. maj 2004 - 22:53 #6
Tak skal du have! Har aldrig brugt schemas før, men man læser overalt at DTD er forældet, så jeg har overvejet at vedlægge et bilag i opgaven med et schema, så jeg må hellere forsøge at sætte mig ind i det.
Avatar billede arne_v Ekspert
09. maj 2004 - 22:58 #7
Avatar billede arne_v Ekspert
09. maj 2004 - 23:00 #8
Den yderste <xsd:sequence></xsd:sequence> er vist også overflødig.
Avatar billede arne_v Ekspert
09. maj 2004 - 23:01 #9
Og ja - det er schema man satser på idag.

Men DTD har en stor fordel - den er altid nem at læse.

Schemas kan blive meget komplekse og kryptiske.
Avatar billede arne_v Ekspert
09. maj 2004 - 23:03 #10
nu vil jeg ligge et svar
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