DTD - Свойство


В DTD атрибуты объявляются через объявления ATTLIST.


объявление свойства

Объявления атрибутов используют следующий синтаксис:

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

Пример 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" />

在上面的示例中,"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 />

如果你没有默认值选项,但仍想强制作者提交该属性,请使用关键字 #REQUIRED.


#IMPLIED

Синтаксис

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

Пример

DTD:
<!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" />

Если вы хотите, чтобы атрибут имел фиксированное значение и авторы не могли его изменить, используйте ключевое слово #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" />

Если вы хотите, чтобы значение атрибута было одним из ряда фиксированных допустимых значений, используйте перечислимые значения атрибутов.

Другие расширения