DTD - Atrybuty

w DTD, atrybuty są deklarowane za pomocą deklaracji ATTLIST.

deklaracja atrybutów

deklaracja atrybutów używa następującego języka语法:

<!ATTLIST nazwa_elementu nazwa_atrybutu typ_atrybutu wartość_domyślna>

przykład DTD:

<!ATTLIST payment type CDATA "check">

przykład instancji XML:

<payment type="check" />

poniżej znajduje siętyp atrybutuopcje:

typ opis
CDATA wartość jest danymi znakowymi (character data)
(en1|en2|..) ta wartość jest jedną z wartości listy węzłów
ID wartość jest unikalnym id
IDREF wartość jest id innego elementu
IDREFS wartość jest listą innych identyfikatorów id
NMTOKEN wartość jest poprawną nazwą XML
NMTOKENS Wartość jest listą legalnych nazw XML
ENTITY Wartość jest encją
ENTITIES Wartość jest listą encji
NOTATION Ta wartość jest nazwą symbolu
xml: Wartość jest zdefiniowaną wartością XML

Parametry wartości domyślnej mogą przyjmować następujące wartości:

Wartość Wyjaśnienie
Wartość Domyślna wartość atrybutu
#REQUIRED Wartość atrybutu jest wymagana
#IMPLIED Atrybut nie jest wymagany
#FIXED wartość Wartość atrybutu jest stała

Określenie wartości domyślnej atrybutu

DTD:

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

Prawidłowy XML:

<square width="100" />

W powyższym przykładzie, "square" jest zdefiniowany jako pusty element z atrybutem "width" o typie CDATA. Jeśli szerokość nie jest ustawiona, jej wartość domyślna wynosi 0.

#IMPLIED

Gramatyka

!ATTLIST element_name attribute_name attribute_type #IMPLIED>

Przykład

DTD:

!ATTLIST contact fax CDATA #IMPLIED>

Prawidłowy XML:

<contact fax="555-667788" />

Prawidłowy XML:

<contact />

Jeśli nie chcesz wymuszać, aby autor zawarł atrybut, i nie masz opcji wartości domyślnej, użyj słowa kluczowego #IMPLIED.

#REQUIRED

Gramatyka

!ATTLIST element_name attribute_name attribute_type #REQUIRED>

Przykład

DTD:

!ATTLIST person number CDATA #REQUIRED>

Prawidłowy XML:

<person number="5677" />

Nieprawidłowy XML:

<person />

Jeśli nie masz opcji wartości domyślnej, ale wciąż chcesz wymusić, aby autor wprowadził atrybut, użyj słowa kluczowego #REQUIRED.

#FIXED

Gramatyka

!ATTLIST element_name attribute_name attribute_type #FIXED "value">

Przykład

DTD:

!ATTLIST sender company CDATA #FIXED "Microsoft">

Prawidłowy XML:

<sender company="Microsoft" />

Nieprawidłowy XML:

<sender company="W3School" />

Jeśli chcesz, aby wartość atrybutu była stała i nie pozwalała autorowi zmienić jej wartości, użyj słowa kluczowego #FIXED. Jeśli autor użyje innej wartości, parser XML zwróci błąd.

Wymien wartości atrybutów

Gramatyka:

!ATTLIST element_name attribute_name (en1|en2|..) default_value>

Przykład DTD:

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

Przykład XML:

<payment type="check" />

lub

<payment type="cash" />

Jeśli wartość atrybutu ma być jedną z szeregu określonych legalnych wartości, użyj wartości wypisanych.