В этой главе мы обсудим о атрибутах DTD. Атрибут дает больше информации о элементе или более точно он определяет свойство элемента. Атрибут XML всегда в форме пары им-значения. Элемент может иметь любое число уникально атрибутов.
Объявление атрибута очень много подобно к объявлениям элемента в много путей за исключением одного; вместо объявлять позволяемое содержание для элементов, вы объявляете список позволяемых атрибутов для каждого элемента. Эти списки вызваны объявлением ATTLIST.
Основной синтаксис объявления атрибутов DTD следующим образом:
<!ATTLIST element-name attribute-name attribute-type attribute-value>
В вышеуказанном синтаксисе
Старт атрибутов DTD с <! Ключевое слово ATTLIST если элемент содержит атрибут.
элемент-имя определяет имя элемента к которому атрибут применяется.
атрибут-имя определяет имя атрибута который включен с элемент-именем.
атрибут-тип определяет тип атрибутов. Мы обсудим больше на этом в следующих разделах.
атрибут со значением принимает фикчированное значение которое атрибуты должны определить. Мы обсудим больше на этом в следующих разделах.
Ниже простой пример для объявления атрибута в DTD:
<?xml version = "1.0"?> <!DOCTYPE address [ <!ELEMENT address ( name )> <!ELEMENT name ( #PCDATA )> <!ATTLIST name id CDATA #REQUIRED> ]> <address> <name id="123">Tanmay Patil</name> </address>
Препятствуйте нам пойти через вышеуказанный Код:
Начните с объявлением XML с следующим заявлением:
<?xml version = "1.0"?>
Немедленно после коллектора XML тип объявление документа, обыкновенно называемое DOCTYPE:
<!DOCTYPE address [
DOCTYPE сообщает парсер что DTD связан с этим документом XML. Объявление DOCTYPE имеет восклицательный знак (!) в начале имени элемента.
Следование тело DTD. Здесь мы объявляли элемент и атрибут:
<!ELEMENT address ( name )> <!ELEMENT name ( #PCDATA )>
Удостоверение личности атрибута для имени элемента определено как:
<!ATTLIST name id CDATA #REQUIRED>
Здесь тип атрибута CDATA и свое значение #REQUIRED.
Все атрибуты используемые в документе XML необходимо объявить в определении типа документа (DTD) используя объявление Атрибут-Списка
Атрибуты могут только появиться в старт или пустые бирки.
Ключевое слово ATTLIST должно находиться в верхушке - случае
Никакие двойные имена атрибута не будут позволены внутри список атрибута для, котор дали элемента.
Объявляя атрибуты, вы можете определить как обработчик должен отрегулировать данные которые появляются в значение. Мы можем классифицировать атрибут печатаем внутри 3 главным образом категории на машинке:
Тип строки
Типы Tokenized
Перечисленные типы
Следовать таблица обеспечивает сводку различных типов атрибута:
Тип | Описание |
---|---|
CDATA | CDATA данные по характера (текст и не повышение цены). Тип атрибута строки. |
Удостоверение личности | Это уникально обозначение атрибута. Оно не должен появиться больше чем раз. Тип атрибута Tokenized. |
IDREF | Оно использован для того чтобы снабдить ссылками удостоверение личности другого элемента. Оно использован для того чтобы установить элементы связь между. Тип атрибута Tokenized. |
IDREFS | Оно использован для того чтобы снабдить ссылками множественное удостоверение личности. Тип атрибута Tokenized. |
РЕАЛЬНОСТЬ | Она представляет внешнюю реальность в документе. Тип атрибута Tokenized. |
РЕАЛЬНОСТИ | Оно представляет список внешних реальностей в документе. Тип атрибута Tokenized. |
NMTOKEN | Оно подобен к CDATA и атрибут со значением состоит из действительного имени XML. Тип атрибута Tokenized. |
NMTOKENS | Оно подобен к CDATA и атрибут со значением состоит список действительного имени XML. Тип атрибута Tokenized. |
НОТАЦИЯ | Элемент будет снабжен ссылками к объявленной нотации в документе DTD. Перечисленный тип атрибута. |
Обозначение | Оно позволяет определить специфический список значений где одно из значений должно соответствовать. Перечисленный тип атрибута. |
В пределах каждого объявления атрибута, вы должны определить как значение появится в документ. Вы можете определить если атрибут:, то
смогите иметь автоматически принимаемое значение
смогите иметь фикчированное значение
требует
подразумевает
Он содержит автоматически принимаемое значение. Значения могут быть заключили в одиночные кавычки (') или двойные цитаты (")
СинтаксисСледование синтаксис значения:
<!ATTLIST element-name attribute-name attribute-type "default-value">
где значени по умолчанию-значение определенный атрибут со значением.
ПримерСледование простой пример объявления атрибута с автоматически принимаемым значением:
<?xml version = "1.0"?> <!DOCTYPE address [ <!ELEMENT address ( name )> <!ELEMENT name ( #PCDATA )> <!ATTLIST name id CDATA "0"> ]> <address> <name id="123"> Tanmay Patil </name> </address>
В этом примере мы имеем элемент имени с удостоверением личности атрибута которого автоматически принимаемое значение 0. Автоматически принимаемое значение заключено в пределах двойных цитат.
ключевое слово #FIXED следовать фикчированным значением использовано когда вы хотите определить что атрибут со значением постоянн и не может быть изменен. Общяя польза фикчированных атрибутов определяет номера версии.
СинтаксисСледование синтаксис фикчированных значений:
<!ATTLIST element-name attribute-name attribute-type #FIXED "value" >
где #FIXED определенный атрибут со значением.
ПримерСледование простой пример объявления атрибута с ФИКЧИРОВАННЫМ значением:
<?xml version="1.0"?> <!DOCTYPE address [ <!ELEMENT address (company)*> <!ELEMENT company (#PCDATA)> <!ATTLIST company name NMTOKEN #FIXED "howcodex"> ]> <address> <company name="howcodex">we are a free online teaching faculty</company> </address>
В этом примере мы использовали #FIXED ключевого слова где оно показывает что значение «howcodex» единственное значение для имени атрибута <company> элемента. Если мы пробуем изменить атрибут со значением после этого, то он дает ошибку.
Следование инвалидный DTD:
<?xml version="1.0"?> <!DOCTYPE address [ <!ELEMENT address (company)*> <!ELEMENT company (#PCDATA)> <!ATTLIST company name NMTOKEN #FIXED "howcodex"> ]> <address> <company name="abc">we are a free online teaching faculty</company> </address>
Когда вы хотите определите что атрибут необходим, используйте ключевое слово #REQUIRED.
СинтаксисСледование синтаксис #REQUIRED:
<!ATTLIST element-name attribute-name attribute-type #REQUIRED>
где #REQUIRED определенный тип атрибута.
ПримерСледование простой пример объявления атрибута DTD с ключевым словом #REQUIRED:
<?xml version = "1.0"?> <!DOCTYPE address [ <!ELEMENT address ( name )> <!ELEMENT name ( #PCDATA )> <!ATTLIST name id CDATA #REQUIRED> ]> <address> <name id="123"> Tanmay Patil </name> </address>
В этом примере мы использовали ключевое слово #REQUIRED для того чтобы определить что удостоверение личности атрибута необходимо предусмотреть для имени элемент-имени
Объявляя атрибуты вы должны всегда определять объявление значения. Если атрибут вы объявляете не имеет никакое автоматически принимаемое значение, то не имеет никакое фикчированное значение, и не требует, тогда вы должны объявить что атрибут как подразумевали. #IMPLIED ключевого слова использовано для того чтобы определить атрибут как подразумевали.
СинтаксисСледование синтаксис #IMPLIED:
<!ATTLIST element-name attribute-name attribute-type #IMPLIED>
где #IMPLIED определенный тип атрибута.
ПримерСледование простой пример #IMPLIED
<?xml version = "1.0"?> <!DOCTYPE address [ <!ELEMENT address ( name )> <!ELEMENT name ( #PCDATA )> <!ATTLIST name id CDATA #IMPLIED> ]> <address> <name /> </address>
В этом примере мы использовали #IMPLIED ключевого слова по мере того как мы не хотим определить любые атрибуты, котор нужно включить в имени элемента. Оно опционный.