DTD - Atrybuty
- Poprzednia strona Elementy DTD
- Następna strona Porównanie elementów DTD z atrybutami
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.
- Poprzednia strona Elementy DTD
- Następna strona Porównanie elementów DTD z atrybutami