DTD - Свойство
В DTD атрибуты объявляются через объявления ATTLIST.
объявление свойства
Объявления атрибутов используют следующий синтаксис:
<!ATTLIST element-name attribute-name attribute-type attribute-value>
Пример DTD:
<!ATTLIST payment type CDATA "check">
Пример XML:
<payment type="check" />
Пример DTD:
<!ATTLIST payment type CDATA "check">
Пример XML:
<payment type="check" />
Ниже приведеныварианты типа свойствадля:
| Type | Описание |
|---|---|
| CDATA | Значение — символьные данные |
| (en1|en2|..) | Это значение — одно из значений в перечисляемом списке |
| ID | Значение — уникальный идентификатор |
| IDREF | Значение — идентификатор другого элемента |
| IDREFS | Значение — список других идентификаторов |
| NMTOKEN | Значение — допустимое имя XML |
| NMTOKENS | Список допустимых XML-имён. |
| ENTITY | Значение является сущностью |
| ENTITIES | Значение является списком сущностей |
| NOTATION | Это значение — имя символа |
| xml: | Значение является предопределённым значением XML |
По умолчаниюЗначение свойстваМожно использовать следующие значения:
| Значение | Объяснение |
|---|---|
| Значение | Значение атрибута по умолчанию |
| #REQUIRED | Значение атрибута обязательно |
| #IMPLIED | Атрибут необязателен |
| #FIXED значение | Значение атрибута фиксировано |
Значение атрибута по умолчанию
DTD:
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">
Корректный XML:
<square width="100" />
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">
Корректный XML:
<square width="100" />
在上面的示例中,"square" 被定义为一个元素,其 "width" 属性为 CDATA。如果未设置 width,则其默认值为 0.
#REQUIRED
Синтаксис
<!ATTLIST element-name attribute-name attribute-type #REQUIRED>
Пример
DTD:
<!ATTLIST person number CDATA #REQUIRED>
Корректный XML:
<person number="5677" />
无效的 XML:
<person />
<!ATTLIST person number CDATA #REQUIRED>
Корректный XML:
<person number="5677" />
无效的 XML:
<person />
如果你没有默认值选项,但仍想强制作者提交该属性,请使用关键字 #REQUIRED.
#IMPLIED
Синтаксис
<!ATTLIST element-name attribute-name attribute-type #IMPLIED>
Пример
DTD:
<!ATTLIST contact fax CDATA #IMPLIED>
Корректный XML:
<contact fax="555-667788" />
Корректный XML:
<contact />
<!ATTLIST contact fax CDATA #IMPLIED>
Корректный XML:
<contact fax="555-667788" />
Корректный XML:
<contact />
如果你不想强制作者包含该属性,并且没有默认值选项,请使用关键字 #IMPLIED.
#FIXED
Синтаксис
<!ATTLIST element-name attribute-name attribute-type #FIXED "value">
Пример
DTD:
<!ATTLIST sender company CDATA #FIXED "Microsoft">
Корректный XML:
<sender company="Microsoft" />
无效的 XML:
<sender company="W3Schools" />
<!ATTLIST sender company CDATA #FIXED "Microsoft">
Корректный XML:
<sender company="Microsoft" />
无效的 XML:
<sender company="W3Schools" />
Если вы хотите, чтобы атрибут имел фиксированное значение и авторы не могли его изменить, используйте ключевое слово #FIXED. Если автор использует другое значение, XML-парсер вернёт ошибку.
Перечислимые значения атрибутов
Синтаксис
<!ATTLIST element-name attribute-name (en1|en2|..) default-value>
Пример
DTD:
<!ATTLIST payment type (check|cash) "cash">
Пример XML:
<payment type="check" />
или
<payment type="cash" />
<!ATTLIST payment type (check|cash) "cash">
Пример XML:
<payment type="check" />
или
<payment type="cash" />
Если вы хотите, чтобы значение атрибута было одним из ряда фиксированных допустимых значений, используйте перечислимые значения атрибутов.
Другие расширения