DTD - Атрибуты


Advertisements

В этой главе мы обсудим о атрибутах 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 ключевого слова по мере того как мы не хотим определить любые атрибуты, котор нужно включить в имени элемента. Оно опционный.

    Advertisements