Реальности использованы для того чтобы определить кратчайшие пути к специальным символам внутри документы XML. Реальности могут быть главным образом 4 типов:
Встроенные реальности
Реальности характера
Общие реальности
Реальности параметра
Вообще, реальности могут быть можно объявить внутренне или внешне. Препятствуйте нам понять каждый из этих и их синтаксиса следующим образом:
Если реальность объявлена внутри DTD, то она вызвана как внутренняя реальность.
СинтаксисСледование синтаксис для внутреннего объявления реальности:
<!ENTITY entity_name "entity_value">
В вышеуказанном синтаксисе:
entity_name имя реальности следовать своим значением в пределах двойных цитат или одиночных кавычек.
entity_value держит значение для имени реальности.
Значение реальности внутренней реальности de-снабжено ссылками путем добавлять приставку & к &entity_name имени реальности т.е.
Следование простой пример для внутреннего объявления реальности:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE address [ <!ELEMENT address (#PCDATA)> <!ENTITY name "Tanmay patil"> <!ENTITY company "Howcodex"> <!ENTITY phone_no "(011) 123-4567"> ]> <address> &name; &company; &phone_no; </address>
В вышеуказанном примере, соответственно имена реальности имя, компания и phone_no заменены их значениями в документе XML. Значения реальности de-снабжены ссылками путем добавлять приставку & к имени реальности.
Сохраньте этот архив как sample.xml и раскройте его в любом браузере, вас заметит что значения реальности для имени, компании, phone_no заменены соответственно.
Если реальность объявлена вне DTD, то она вызвана как внешняя реальность. Вы можете сослаться к внешней реальности или использованием обозначений системы или общественных обозначений.
СинтаксисСледование синтаксис для объявления внешней реальности:
<!ENTITY name SYSTEM "URI/URL">
В вышеуказанном синтаксисе:
имя имя реальности.
СИСТЕМА ключевое слово.
URI/URL адрес внешнего источника заключенного в пределах двойных или одиночных кавычек.
Вы можете сослаться к внешнему DTD тем используя:
Обозначения системы - обозначение системы позволяет вы определить положение внешнего архива содержа объявления DTD. Синтаксис следующим образом:
<!DOCTYPE name SYSTEM "address.dtd" [...]>
По мере того как вы можете увидеть оно содержит СИСТЕМУ ключевого слова и справку URI указывая к положению документа.
Общественные обозначения - Общественные обозначения обеспечивают механизм для того чтобы обнаружить местонахождение ресурсы DTD и написаны как ниже:
<!DOCTYPE name PUBLIC "-//Beginning XML//DTD Address Example//EN">
По мере того как вы можете увидеть, оно начинает при ПУБЛИКА ключевого слова, следовать специализированным обозначением. Общественные обозначения использованы для того чтобы определить вход в каталог. Общественные обозначения могут следовать любым форматом; однако, обыкновенно используемый формат вызван официально общественными обозначениями, или FPIs.
Препятствуйте нам понять внешнюю реальность с следующим примером:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE address SYSTEM "address.dtd"> <address> <name>Tanmay Patil</name> <company>Howcodex</company> <phone>(011) 123-4567</phone> </address>
Ниже содержание архива address.dtd DTD:
<!ELEMENT address (name, company, phone)> <!ELEMENT name (#PCDATA)> <!ELEMENT company (#PCDATA)> <!ELEMENT phone (#PCDATA)>
Все парсеры XML должны поддержать встроенные реальности. Вообще, вы можете использовать эти справки реальности везде. Вы можете также использовать нормальный текст внутри документ XML, как в содержание элемента и атрибуты со значением.
5 встроенных реальностей которые играют их роль в хорошо-сформированном XML, они являются следующими:
амперсанд: &
Одиночные кавычки: '
Больш чем: >
Чем: <
Двойная цитата: "
Следовать пример демонстрирует встроенное объявление реальности:
<?xml version="1.0"?> <note> <description>I'm a technical writer & programmer</description> <note>
По мере того как вы можете увидеть здесь & характер заменен мимо & когда обработчик сталкивается это.
Реальности характера использованы для того чтобы назвать некоторые из реальностей которые символическое представление характеров информации т.е. которые трудны или невозможно для того чтобы напечатать на машинке может быть заменен реальностями характера.
Следовать пример демонстрирует объявление реальности характера:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <!DOCTYPE author[ <!ELEMENT author (#PCDATA)> <!ENTITY writer "Tanmay patil"> <!ENTITY copyright "©"> ]> <author>&writer;©right;</author>
Вы заметите что здесь мы использовали © как значение для характера авторского права. Сохраньте этот архив как sample.xml и раскройте его в вашем браузере и вы увидите что авторское право заменено © характера.
Общие реальности необходимо объявить внутри DTD прежде чем их можно использовать внутри документ XML. Вместо представлять только одиночный характер, общие реальности могут представить характеры, параграфы, и даже все документы.
Для того чтобы объявить общую реальность, используйте объявление этой общей формы в вашем DTD:
<!ENTITY ename "text">
Следовать пример демонстрирует объявление общей реальности:
<?xml version="1.0"?> <!DOCTYPE note [ <!ENTITY source-text "howcodex"> ]> <note> &source-text; </note>
Когда парсер XML сталкивается справка к реальности исходного текста, он поставит текст замены к применению с точки зрения справки.
Цель реальности параметра позволить вы создать многоразовые разделы текста замены.
Следование синтаксис для объявления реальности параметра:
<!ENTITY % ename "entity_value">
entity_value любой характер который нет «&», «%» или «»».
Следовать пример демонстрирует объявление реальности параметра. Предположите что вы имеет объявления элемента как ниже:
<!ELEMENT residence (name, street, pincode, city, phone)> <!ELEMENT apartment (name, street, pincode, city, phone)> <!ELEMENT office (name, street, pincode, city, phone)> <!ELEMENT shop (name, street, pincode, city, phone)>
Теперь предположите что вы хочет добавить дополнительные страну eleement, тогда после этого вас потребность добавить его к всем 4 объявлениям. Следовательно мы можем пойти для справки реальности параметра. Теперь используя справку реальности параметра вышеуказанный пример будет:
<!ENTITY % area "name, street, pincode, city"> <!ENTITY % contact "phone">
Реальности параметра dereferenced тем же самым способом, что справка общей реальности, только с знаком процентов вместо амперсанда:
<!ELEMENT residence (%area;, %contact;)> <!ELEMENT apartment (%area;, %contact;)> <!ELEMENT office (%area;, %contact;)> <!ELEMENT shop (%area;, %contact;)>
Когда парсер читает эти объявления, он заменяет текст замены реальности для справки реальности.