DTD - Eigenschappen

In de DTD worden eigenschappen gedeclareerd via de ATTLIST-verklaring.

Verklaren eigenschappen

De syntaxis voor eigenschapsverklaringen is als volgt:

<!ATTLIST element-name attribute-name attribute-type default-value>

DTD-instantie:

<!ATTLIST payment type CDATA "check">

XML-instantie:

<payment type="check" />

Hier zijnEigenschapstypeOpties:

Type Beschrijving
CDATA De waarde is karaktersdata (character data)
(en1|en2|..) Deze waarde is een waarde uit een lijst van enumeraties
ID De waarde is een unieke id
IDREF De waarde is de id van een ander element
IDREFS De waarde is een lijst van andere id's
NMTOKEN De waarde is een geldige XML-naam
NMTOKENS De waarde is een lijst van geldige XML-namen
ENTITY De waarde is een entiteit
ENTITIES De waarde is een lijst van entiteiten
NOTATION Deze waarde is de naam van het symbool
xml: De waarde is een voorgedefinieerde XML-waarde

De standaardwaardeparameter kan de volgende waarden gebruiken:

Waarde Uitleg
Waarde De standaardwaarde van de eigenschap
#REQUIRED De waarde van de eigenschap is vereist
#IMPLIED De eigenschap is niet vereist
#FIXED value De waarde van de eigenschap is vast

Definieer een standaard eigenschapswaarde

DTD:

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

Geldige XML:

<square width="100" />

In het bovenstaande voorbeeld is "square" gedefinieerd als een lege element met de eigenschap "width" van het type CDATA. Als de breedte niet is ingesteld, is de standaardwaarde 0.

#IMPLIED

Syntax

<!ATTLIST element-name attribute-name attribute-type #IMPLIED>

Voorbeeld

DTD:

<!ATTLIST contact fax CDATA #IMPLIED>

Geldige XML:

<contact fax="555-667788" />

Geldige XML:

<contact />

Als u niet wilt dat de auteur de eigenschap verplicht opneemt en u heeft geen standaardwaardeoptie, gebruik dan het trefwoord #IMPLIED.

#REQUIRED

Syntax

<!ATTLIST element-name attribute-name attribute-type #REQUIRED>

Voorbeeld

DTD:

<!ATTLIST person number CDATA #REQUIRED>

Geldige XML:

<person number="5677" />

Ongeldige XML:

<person />

Als je geen standaardwaardeoptie hebt, maar je wilt de auteur nog steeds verplichten om de eigenschap in te dienen, gebruik dan het keyword #REQUIRED.

#FIXED

Syntax

<!ATTLIST ElementNaam EigenschapsNaam Eigenschapstype #FIXED "waarde">

Voorbeeld

DTD:

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

Geldige XML:

<sender company="Microsoft" />

Ongeldige XML:

<sender company="W3School" />

Als je de waarde van de eigenschap wilt hebben die vast staat en niet mag worden gewijzigd door de auteur, gebruik dan het woord #FIXED. Als de auteur een andere waarde gebruikt, zal de XML-parser een fout retourneren.

Opsommingseigenschappen

Syntax:

<!ATTLIST ElementNaam EigenschapsNaam (en1|en2|..) Standaardwaarde>

DTD Voorbeeld:

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

XML Voorbeeld:

<payment type="check" />

Of

<payment type="cash" />

Als je de waarde van de eigenschap een van een reeks vaste geldige waarden wilt hebben, gebruik dan de opsommingseigenschappen.