DTD - Egenskab

I DTD'en deklareres egenskaber gennem ATTLIST-deklarationer.

Deklarer egenskab

Egenskabsdeklaration bruger følgende syntaks:

<!ATTLIST 元素名称 属性名称 属性类型 Standardværdi>

DTD-instans:

<!ATTLIST payment type CDATA "check">

XML-instans:

<payment type="check" />

Her erEgenskabstypemulighederne for:

Type Beskrivelse
CDATA Værdien er tegndata (character data)
(en1|en2|..) Denne værdi er en værdi i en enum-liste
ID Værdien er en unik id
IDREF Værdien er id'en for et andet element
IDREFS Værdien er en liste over andre id'er
NMTOKEN Værdien er et gyldigt XML-navn
NMTOKENS Værdien er en liste over gyldige XML-navne
ENTITY Værdien er en enkelt entitet
ENTITIES Værdien er en entitetsliste
NOTATION Denne værdi er symbolnavnet
xml: Værdien er en prædefineret XML-værdi

Standardværdiparametrene kan bruge følgende værdier:

Værdi Forklaring
Værdi Egenskabets standardværdi
#REQUIRED Egenskabsværdien er påkrævet
#IMPLIED Egenskaben er ikke påkrævet
#FIXED value Egenskabsværdien er fast

Fastlæg en standard egenskabsværdi

DTD:

<ELEMENT square EMPTY>
<ATTLIST square width CDATA "0">

Gyldig XML:

<square width="100" />

I det ovennævnte eksempel er "square" defineret som en tom element med en CDATA-type "width"-egenskab. Hvis bredden ikke er indstillet, er standardværdien 0.

#IMPLIED

Syntaks

<ATTLIST 元素名称 属性名称 属性类型 #IMPLIED>

Eksempel

DTD:

<ATTLIST contact fax CDATA #IMPLIED>

Gyldig XML:

<contact fax="555-667788" />

Gyldig XML:

<contact />

Hvis du ikke ønsker at tvinge forfatteren til at inkludere egenskaber, og du ikke har en standardværdi, skal du bruge nøgleordet #IMPLIED.

#REQUIRED

Syntaks

<ATTLIST 元素名称 属性名称 属性类型 #REQUIRED>

Eksempel

DTD:

<!ATTLIST person number CDATA #REQUIRED>

Gyldig XML:

<person number="5677" />

Ugyldig XML:

<person />

Hvis du ikke har et standardværdi-valg, men stadig ønsker at tvinge forfatteren til at indsende egenskaben, skal du bruge nøglen #REQUIRED.

#FIXED

Syntaks

<!ATTLIST elementnavn egenskabsnavn egenskabstype #FIXED "value">

Eksempel

DTD:

<!ATTLIST sender company CDATA #FIXED "Microsoft">

Gyldig XML:

<sender company="Microsoft" />

Ugyldig XML:

<sender company="W3School" />

Hvis du ønsker, at egenskaben skal have en fast værdi, som forfatteren ikke må ændre, skal du bruge #FIXED-nøglen. Hvis forfatteren bruger en anden værdi, vil XML-parseren returnere en fejl.

Listet egenskabsværdi

Syntaks:

<!ATTLIST elementnavn egenskabsnavn (en1|en2|..) standardværdi>

DTD eksempel:

<!ATTLIST payment type (check|cash) "cash">

XML eksempel:

<payment type="check" />

eller

<payment type="cash" />

Hvis du ønsker, at egenskabsværdien skal være en af en række faste gyldige værdier, skal du bruge listet egenskabsværdi.