Электронный магазин на Java и XML

         

Документ XML, содержащий информацию о товарах



Листинг 1.2.  Документ XML, содержащий информацию о товарах

<?xml version="l.0" standalone="no"?>
<!DOCTYPE ABC_Lighting: catalog SYSTEM "catalog.dtd">
<ABC_Ughting: catalog xmlns:ABC_Lighting =  "http://www.abclighting.com">
<ABC_Lighting:product>
<ABC_Lighting:name>
Фонарик</ABC_Lighting:name>
<ABC_Lighting:description>
Cвeт, который всегда с вами! </ABC_Lighting:description>
<ABC_Lighting:price>
$9.95</ABC_Lighting:price>
</ABC_Lighting:product>
<ABC_Lighting:product>
<АВС_Lighting:name>
Неоновая лампа</ABC_Lighting:name>
<ABC_Lighting:description>
Ничто не скажет слово "класс" так, как неоновая лампа!</ABC_Lighfmg:description>
 <ABC_lighting:price>
$14.75</ABC_Lighting:price>


</ABC_Lighting:product>
</ABC_Lighting:catalog>

Первая строка этого документа — объявление XML, которое содержит информацию, предназначенную для анализатора XML. Объявление XML (XML declaration) идентифицирует тип документа и версию XML, которая использовалась при создании документа. Эта строка не является обязательной, но, как правило, именно с нее начинается документ XML. Атрибут standalone = "no" означает, что данный документ снабжен DTD. Следующая строка — это объявление типа документа (document type declaration), которое указывает, какому DTD соответствует этот документ. В данном случае используется определение DTD, называемое catalog.dtd. Обратите внимание на то, что, хотя аббревиатуры совпадают, имеется большая разница между определением типа документа (сокращенно DTD — Document Type Definition) и объявлением типа документа. Объявление типа документа используется, чтобы указать, какому определению типа документа соответствует данный документ XML.

В объявлении типа документа также указывается корневой элемент документа. Корневой элемент (root element) — это элемент, который включает в себя все остальные элементы документа. В данном случае корневым является элемент ABC_Lightening:catalog. Часть имени элемента, расположенная перед двоеточием, идентифицирует пространство имен тега. Пространства имен не являются обязательными, но их можно использовать для того, чтобы гарантировать уникальность тегов. Если фирма ABC_Lightening начнет продавать товары других производителей, то пространства имен помогут избежать возможной путаницы, связанной с тем, что появятся элементы данных, внешние по отношению к этой фирме, с теми же названиями, но иначе структурированные.

Ниже показано, как может выглядеть определение catalog.dtd для гипотетического каталога товаров:

<!ELEMENT ABC_Lightening:catalog (product)>
<!ELEMENT ABC_Lightening:product (name, description?, price+)>
<!ELEMENT ABC_Lightening:name (#PCDATA)>
<!ELEMENT ABC_Lightening:description (#PCDATA)>
<!ELEMENT ABC_Lightening:price (#PCDATA)>

Это DTD показывает, какие элементы могут появиться в каталоге, а также определяет порядок их следования и число появлений. С использованием данных XML и DTD автоматическая идентификация и извлечение полезных данных из документа XML становятся довольно простым делом, в чем вы убедитесь, прочитав эту книгу.

WEB-РЕСУРСЫ XML

Следующие web-ресурсы содержат информацию о последних разработках в области XML, планах на будущее и инструментальных средствах, полезных при работе с XML:

консорциум W3C (www.w3.org);

O'Reilly&Associates, Inc.'s XML.com (www.xml.com) — один из лучших сайтов в Сети, посвященных коммерческому применению XML;

XML Industry Portal, (www.xml.org);

xmlhack (www.xmlhack.com) — новости для web-разработчиков;

Enhydra (www.enhydra.org) — домашняя страница сервера Enhydra, посвященного приложениям Java/XML;

консорциум Unicode (www.unicode.org).



Содержание раздела