Содержание

XML DTD

XML документ с корректной синтаксической структурой является «синтаксически верным».

XML документ, прошедший проверку по DTD, является «синтаксически верным» и «валидным».

Что такое DTD?

DTD это аббревиатура обозначающая Определение типов документа (англ. Document Type Definition).

DTD определяет структуру XML документа, а также допустимые элементы и атрибуты.

Валидные XML документы

«Валидный» XML документ — это «синтаксически верный» XML документ, который также соответствует правилам DTD (определениям типов документов):

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note SYSTEM "Note.dtd">
<note>
   <to>Tove</to>
   <from>Jani</from>
   <heading>Напоминание</heading>
   <body>Не забудь обо мне в эти выходные!</body>
</note>

В приведенном примере, декларация DOCTYPE является ссылкой на внешний файл определений типов документа (DTD). Содержимое этого файла показано ниже.

XML DTD

Цель DTD состоит в том, чтобы определить структуру XML документа. Это делается путем определения списка допустимых элементов:

Note.dtd

<!DOCTYPE note
[
<!ELEMENT note (to,from,heading,body)>
<!ELEMENT to (#PCDATA)>
<!ELEMENT from (#PCDATA)>
<!ELEMENT heading (#PCDATA)>
<!ELEMENT body (#PCDATA)>
]>

Приведенное выше DTD интерпретируется следующим образом:

  • !DOCTYPE note определяет, что корневым элементом документа является note
  • !ELEMENT note определяет, что элемент note содержит четыре элемента: to, from, heading, body
  • !ELEMENT to определяет, что элемент to должен быть типа «#PCDATA»
  • !ELEMENT from определяет, что элемент from должен быть типа «#PCDATA»
  • !ELEMENT heading определяет, что элемент heading должен быть типа «#PCDATA»
  • !ELEMENT body определяет, что элемент body должен быть типа «#PCDATA»

Примечание: #PCDATA означает разбираемые текстовые данные.

Использование DTD для определения сущностей

Определения типов документа (DTD) также можно использовать для декларации специальных символов и символьных строк, используемых в XML документе:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE note [
<!ENTITY nbsp "&#xA0;">
<!ENTITY writer "Writer: Donald Duck.">
<!ENTITY copyright "Copyright: MSiter.RU.">
]>
<note>
   <to>Tove</to>
   <from>Jani</from>
   <heading>Напоминание</heading>
   <body>Не забудь обо мне в эти выходные!</body>
   <footer>&writer;&nbsp;&copyright;</footer>
</note>

Сущность состоит из трех частей: амперсанда (&), имени сущности и точки с запятой (;).

Зачем нужно использовать DTD?

С DTD ваш XML файл может нести собственный формат.

С DTD различные, не связанные друг с другом группы людей могут приходить к соглашению о стандартах пересекающихся данных.

С DTD вы можете быть уверены, что получаемые из внешних источников данные будут корректными.

Когда не стоит использовать DTD?

Вообще-то для работы XML не требуется DTD.

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

Если вы разрабатываете приложения, то стоит подождать, пока спецификации не станут стабильными, и только тогда добавлять определения. В обратном случае ваше приложение может перестать работать из-за ошибок валидации.

Что такое XML / Хабр

Если вы тестируете API, то должны знать про два основных формата передачи данных:

  • XML — используется в SOAP (всегда) и REST-запросах (реже);
  • JSON — используется в REST-запросах.

Сегодня я расскажу вам про XML.

XML, в переводе с англ eXtensible Markup Language

— расширяемый язык разметки. Используется для хранения и передачи данных. Так что увидеть его можно не только в API, но и в коде.

Этот формат рекомендован Консорциумом Всемирной паутины (W3C), поэтому он часто используется для передачи данных по API. В SOAP API это вообще единственно возможный формат входных и выходных данных!

См также:
Что такое API — общее знакомство с API
Что такое JSON — второй популярный формат
Введение в SOAP и REST: что это и с чем едят — видео про разницу между SOAP и REST.

Так что давайте разберемся, как он выглядит, как его читать, и как ломать! Да-да, а куда же без этого? Надо ведь выяснить, как отреагирует система на кривой формат присланных данных.



Содержание


  • Как устроен XML
    • Теги
    • Корневой элемент
    • Значение элемента
    • Атрибуты элемента
    • XML пролог
    • XSD-схема
    • Практика: составляем свой запрос
  • Well Formed XML
    • 1. Есть корневой элемент
    • 2. У каждого элемента есть закрывающийся тег
    • 3. Теги регистрозависимы
    • 4. Правильная вложенность элементов
    • 5. Атрибуты оформлены в кавычках
  • Итого

Как устроен XML

Возьмем пример из документации подсказок Дадаты по ФИО:

<req>
<query>Виктор Иван</query>
<count>7</count>
</req>

И разберемся, что означает эта запись.

Теги

В XML каждый элемент должен быть заключен в теги. Тег — это некий текст, обернутый в угловые скобки:

<tag>

Текст внутри угловых скобок — название тега.

Тега всегда два:

  • Открывающий — текст внутри угловых скобок
    <tag>
  • Закрывающий — тот же текст (это важно!), но добавляется символ «/»
    </tag>

Ой, ну ладно, подловили! Не всегда. Бывают еще пустые элементы, у них один тег и открывающий, и закрывающий одновременно. Но об этом чуть позже!

С помощью тегов мы показываем системе «вот тут начинается элемент, а вот тут заканчивается». Это как дорожные знаки:

— На въезде в город написано его название: Москва
— На выезде написано то же самое название, но перечеркнутое:

Москва*

* Пример с дорожными знаками я когда-то давно прочитала в статье Яндекса, только ссылку уже не помню. А пример отличный!

Корневой элемент

В любом XML-документе есть корневой элемент. Это тег, с которого документ начинается, и которым заканчивается. В случае REST API документ — это запрос, который отправляет система. Или ответ, который она получает.

Чтобы обозначить этот запрос, нам нужен корневой элемент. В подсказках корневой элемент — «req».

Он мог бы называться по другому:

<main>
<sugg>

Да как угодно. Он показывает начало и конец нашего запроса, не более того. А вот внутри уже идет тело документа — сам запрос. Те параметры, которые мы передаем внешней системе. Разумеется, они тоже будут в тегах, но уже в обычных, а не корневых.

Значение элемента

Значение элемента хранится между открывающим и закрывающим тегами. Это может быть число, строка, или даже вложенные теги!

Вот у нас есть тег «query». Он обозначает запрос, который мы отправляем в подсказки.

Внутри — значение запроса.

Это как если бы мы вбили строку «Виктор Иван» в GUI (графическом интерфейсе пользователя):

Пользователю лишняя обвязка не нужна, ему нужна красивая формочка. А вот системе надо как-то передать, что «пользователь ввел именно это». Как показать ей, где начинается и заканчивается переданное значение? Для этого и используются теги.

Система видит тег «query» и понимает, что внутри него «строка, по которой нужно вернуть подсказки».

Параметр count = 7 обозначает, сколько подсказок вернуть в ответе. Если тыкать подсказки на демо-форме Дадаты, нам вернется 7 подсказок. Это потому, что туда вшито как раз значение count = 7

. А вот если обратиться к документации метода, count можно выбрать от 1 до 20.

Откройте консоль разработчика через f12, вкладку Network, и посмотрите, какой запрос отправляется на сервер. Там будет значение count = 7.

См также:
Что тестировщику надо знать про панель разработчика — подробнее о том, как использовать консоль.

Обратите внимание:

  • Виктор Иван — строка
  • 7 — число

Но оба значения идут

без

кавычек. В XML нам нет нужды брать строковое значение в кавычки (а вот в JSON это сделать придется).

Атрибуты элемента

У элемента могут быть атрибуты — один или несколько. Их мы указываем внутри отрывающегося тега после названия тега через пробел в виде

название_атрибута = «значение атрибута»

Например:

<query attr1=“value 1”>Виктор Иван</query>
<query attr1=“value 1” attr2=“value 2”>Виктор Иван</query>

Зачем это нужно? Из атрибутов принимающая API-запрос система понимает, что такое ей вообще пришло.

Например, мы делаем поиск по системе, ищем клиентов с именем Олег. Отправляем простой запрос:

<query>Олег</query>

А в ответ получаем целую пачку Олегов! С разными датами рождения, номерами телефонов и другими данными. Допустим, что один из результатов поиска выглядит так:

<party type="PHYSICAL" sourceSystem="AL" rawId="2">
    <field name=“name">Олег </field>
    <field name="birthdate">02.01.1980</field>
    <attribute type="PHONE" rawId="AL.2.PH.1">
        <field name="type">MOBILE</field>
        <field name="number">+7 916 1234567</field>
    </attribute>
</party>

Давайте разберем эту запись. У нас есть основной элемент party.

У него есть 3 атрибута:

  • type = «PHYSICAL» — тип возвращаемых данных. Нужен, если система умеет работать с разными типами: ФЛ, ЮЛ, ИП. Тогда благодаря этому атрибуту мы понимаем, с чем именно имеем дело и какие поля у нас будут внутри. А они будут отличаться! У физика это может быть ФИО, дата рождения ИНН, а у юр лица — название компании, ОГРН и КПП
  • sourceSystem = «AL» — исходная система. Возможно, нас интересуют только физ лица из одной системы, будем делать отсев по этому атрибуту.
  • rawId = «2» — идентификатор в исходной системе. Он нужен, если мы шлем запрос на обновление клиента, а не на поиск. Как понять, кого обновлять? По связке sourceSystem + rawId!

Внутри party есть элементы field.

У элементов field есть атрибут name. Значение атрибута — название поля: имя, дата рождения, тип или номер телефона. Так мы понимаем, что скрывается под конкретным field.

Это удобно с точки зрения поддержки, когда у вас коробочный продукт и 10+ заказчиков. У каждого заказчика будет свой набор полей: у кого-то в системе есть ИНН, у кого-то нету, одному важна дата рождения, другому нет, и т.д.

Но, несмотря на разницу моделей, у всех заказчиков будет одна XSD-схема (которая описывает запрос и ответ):

— есть элемент party;
— у него есть элементы field;
— у каждого элемента field есть атрибут name, в котором хранится название поля.

А вот конкретные названия полей уже можно не описывать в XSD. Их уже «смотрите в ТЗ». Конечно, когда заказчик один или вы делаете ПО для себя или «вообще для всех», удобнее использовать именованные поля — то есть «говорящие» теги. Какие плюшки у этого подхода:

— При чтении XSD сразу видны реальные поля. ТЗ может устареть, а код будет актуален.
— Запрос легко дернуть вручную в SOAP Ui — он сразу создаст все нужные поля, нужно только значениями заполнить. Это удобно тестировщику + заказчик иногда так тестирует, ему тоже хорошо.

В общем, любой подход имеет право на существование. Надо смотреть по проекту, что будет удобнее именно вам. У меня в примере неговорящие названия элементов — все как один будут field. А вот по атрибутам уже можно понять, что это такое.

Помимо элементов field в party есть элемент attribute. Не путайте xml-нотацию и бизнес-прочтение:

  • с точки зрения бизнеса это атрибут физ лица, отсюда и название элемента — attribute.
  • с точки зрения xml — это элемент (не атрибут!), просто его назвали attribute. XML все равно (почти), как вы будете называть элементы, так что это допустимо.

У элемента attribute есть атрибуты:

  • type = «PHONE» — тип атрибута. Они ведь разные могут быть: телефон, адрес, емейл…
  • rawId = «AL.2.PH.1» — идентификатор в исходной системе. Он нужен для обновления. Ведь у одного клиента может быть несколько телефонов, как без ID понять, какой именно обновляется?

Такая вот XML-ка получилась. Причем упрощенная. В реальных системах, где хранятся физ лица, данных сильно больше: штук 20 полей самого физ лица, несколько адресов, телефонов, емейл-адресов…

Но прочитать даже огромную XML не составит труда, если вы знаете, что где. И если она отформатирована — вложенные элементы сдвинуты вправо, остальные на одном уровне. Без форматирования будет тяжеловато…

А так всё просто — у нас есть элементы, заключенные в теги. Внутри тегов — название элемента. Если после названия идет что-то через пробел: это атрибуты элемента.

XML пролог

Иногда вверху XML документа можно увидеть что-то похожее:

<?xml version="1.0" encoding="UTF-8"?>

Эта строка называется XML прологом. Она показывает версию XML, который используется в документе, а также кодировку. Пролог необязателен, если его нет — это ок. Но если он есть, то это должна быть первая строка XML документа.

UTF-8 — кодировка XML документов по умолчанию.

XSD-схема

XSD (XML Schema Definition) — это описание вашего XML. Как он должен выглядеть, что в нем должно быть? Это ТЗ, написанное на языке машины — ведь схему мы пишем… Тоже в формате XML! Получается XML, который описывает другой XML.

Фишка в том, что проверку по схеме можно делегировать машине. И разработчику даже не надо расписывать каждую проверку. Достаточно сказать «вот схема, проверяй по ней».

Если мы создаем SOAP-метод, то указываем в схеме:

  • какие поля будут в запросе;
  • какие поля будут в ответе;
  • какие типы данных у каждого поля;
  • какие поля обязательны для заполнения, а какие нет;
  • есть ли у поля значение по умолчанию, и какое оно;
  • есть ли у поля ограничение по длине;
  • есть ли у поля другие параметры;
  • какая у запроса структура по вложенности элементов;

Теперь, когда к нам приходит какой-то запрос, он сперва проверяется на корректность по схеме. Если запрос правильный, запускаем метод, отрабатываем бизнес-логику. А она может быть сложной и ресурсоемкой! Например, сделать выборку из многомиллионной базы. Или провести с десяток проверок по разным таблицам базы данных…

Поэтому зачем запускать сложную процедуру, если запрос заведом «плохой»? И выдавать ошибку через 5 минут, а не сразу? Валидация по схеме помогает быстро отсеять явно невалидные запросы, не нагружая систему.

Более того, похожую защиту ставят и некоторые программы-клиенты для отправки запросов. Например, SOAP Ui умеет проверять ваш запрос на well formed xml, и он просто не отправит его на сервер, если вы облажались. Экономит время на передачу данных, молодец!

А простому пользователю вашего SOAP API схема помогает понять, как составить запрос. Кто такой «простой пользователь»?

  1. Разработчик системы, использующей ваше API — ему надо прописать в коде, что именно отправлять из его системы в вашу.
  2. Тестировщик, которому надо это самое API проверить — ему надо понимать, как формируется запрос.

Да-да, в идеале у нас есть подробное ТЗ, где всё хорошо описано. Но увы и ах, такое есть не всегда. Иногда ТЗ просто нет, а иногда оно устарело. А вот схема не устареет, потому что обновляется при обновлении кода. И она как раз помогает понять, как запрос должен выглядеть.

Итого, как используется схема при разработке SOAP API:

  • Наш разработчик пишет XSD-схему для API запроса: нужно передать элемент такой-то, у которого будут такие-то дочерние, с такими-то типами данных. Эти обязательные, те нет.
  • Разработчик системы-заказчика, которая интегрируется с нашей, читает эту схему и строит свои запросы по ней.
  • Система-заказчик отправляет запросы нам.
  • Наша система проверяет запросы по XSD — если что-то не так, сразу отлуп.
  • Если по XSD запрос проверку прошел — включаем бизнес-логику!

А теперь давайте посмотрим, как схема может выглядеть! Возьмем для примера метод doRegister в Users. Чтобы отправить запрос, мы должны передать email, name и password. Есть куча способов написать запрос правильно и неправильно:

Попробуем написать для него схему. В запросе должны быть 3 элемента (email, name, password) с типом «string» (строка). Пишем:

<xs:element name="doRegister ">
   <xs:complexType>
   <xs:sequence>
     <xs:element name="email" type="xs:string"/>
     <xs:element name="name" type="xs:string"/>
     <xs:element name="password" type="xs:string"/>
   </xs:sequence>
   </xs:complexType>
</xs:element>

А в WSDl сервиса она записана еще проще:

<message name="doRegisterRequest">
   <part name="email" type="xsd:string"/>
   <part name="name" type="xsd:string"/>
   <part name="password" type="xsd:string"/>
</message>

Конечно, в схеме могут быть не только строковые элементы. Это могут быть числа, даты, boolean-значения и даже какие-то свои типы:

<xsd:complexType name="Test">
   <xsd:sequence>
     <xsd:element name="value"   type="xsd:string"/>
     <xsd:element name="include" type="xsd:boolean" minOccurs="0" default="true"/>
     <xsd:element name="count" type="xsd:int" minOccurs="0" length="20"/>
     <xsd:element name="user" type="USER" minOccurs="0"/>
   </xsd:sequence>
</xsd:complexType>

А еще в схеме можно ссылаться на другую схему, что упрощает написание кода — можно переиспользовать схемы для разных задач.

См также:
XSD — умный XML — полезная статья с хабра
Язык определения схем XSD — тут удобные таблички со значениями, которые можно использовать
Язык описания схем XSD (XML-Schema)
Пример XML схемы в учебнике
Официальный сайт w3.org

Практика: составляем свой запрос

Ок, теперь мы знаем, как «прочитать» запрос для API-метода в формате XML. Но как его составить по ТЗ? Давайте попробуем. Смотрим в документацию. И вот почему я даю пример из Дадаты — там классная документация!

Что, если я хочу, чтобы мне вернулись только женские ФИО, начинающиеся на «Ан»? Берем наш исходный пример:

<req>
  <query>Виктор Иван</query>
  <count>7</count>
</req>

В первую очередь меняем сам запрос. Теперь это уже не «Виктор Иван», а «Ан»:

<req>
  <query>Ан</query>
  <count>7</count>
</req>

Далее смотрим в ТЗ. Как вернуть только женские подсказки? Есть специальный параметр — gender. Название параметра — это название тегов. А внутри уже ставим пол. «Женский» по английски будет FEMALE, в документации также. Итого получили:

<req>
  <query>Ан</query>
  <count>7</count>
  <gender>FEMALE</gender>
</req>

Ненужное можно удалить. Если нас не волнует количество подсказок, параметр count выкидываем. Ведь, согласно документации, он необязательный. Получили запрос:

<req>
  <query>Ан</query>
  <gender>FEMALE</gender>
</req>

Вот и все! Взяли за основу пример, поменяли одно значение, один параметр добавили, один удалили. Не так уж и сложно. Особенно, когда есть подробное ТЗ и пример )))

Попробуй сам!
Напишите запрос для метода MagicSearch в Users. Мы хотим найти всех Ивановых по полному совпадению, на которых висят актуальные задачи.

Well Formed XML

Разработчик сам решает, какой XML будет считаться правильным, а какой нет. Но есть общие правила, которые нельзя нарушать. XML должен быть well formed, то есть синтаксически корректный.

Чтобы проверить XML на синтаксис, можно использовать любой XML Validator (так и гуглите). Я рекомендую сайт w3schools. Там есть сам валидатор + описание типичных ошибок с примерами.

В готовый валидатор вы просто вставляете свой XML (например, запрос для сервера) и смотрите, всё ли с ним хорошо. Но можете проверить его и сами. Пройдитесь по правилам синтаксиса и посмотрите, следует ли им ваш запрос.

Правила well formed XML:

  1. Есть корневой элемент.
  2. У каждого элемента есть закрывающийся тег.
  3. Теги регистрозависимы!
  4. Соблюдается правильная вложенность элементов.
  5. Атрибуты оформлены в кавычках.

Давайте пройдемся по каждому правилу и обсудим, как нам применять их в тестировании. То есть как правильно «ломать» запрос, проверяя его на well-formed xml. Зачем это нужно? Посмотреть на фидбек от системы. Сможете ли вы по тексту ошибки понять, где именно облажались?

См также:
Сообщения об ошибках — тоже документация, тестируйте их! — зачем тестировать сообщения об ошибках

1. Есть корневой элемент

Нельзя просто положить рядышком 2 XML и полагать, что «система сама разберется, что это два запроса, а не один». Не разберется. Потому что не должна.

И если у вас будет лежать несколько тегов подряд без общего родителя — это плохой xml, не well formed. Всегда должен быть корневой элемент:

Что мы делаем для тестирования этого условия? Правильно, удаляем из нашего запроса корневые теги!

2. У каждого элемента есть закрывающийся тег

Тут все просто — если тег где-то открылся, он должен где-то закрыться. Хотите сломать? Удалите закрывающийся тег любого элемента.

Но тут стоит заметить, что тег может быть один. Если элемент пустой, мы можем обойтись одним тегом, закрыв его в конце:

<name/>

Это тоже самое, что передать в нем пустое значение

<name></name>

Аналогично сервер может вернуть нам пустое значение тега. Можно попробовать послать пустые поля в Users в методе FullUpdateUser. И в запросе это допустимо (я отправила пустым поле name1), и в ответе SOAP Ui нам именно так и отрисовывает пустые поля.

Итого — если есть открывающийся тег, должен быть закрывающийся. Либо это будет один тег со слешом в конце.

Для тестирования удаляем в запросе любой закрывающийся тег.



3. Теги регистрозависимы

Как написали открывающий — также пишем и закрывающий. ТОЧНО ТАК ЖЕ! А не так, как захотелось.

А вот для тестирования меняем регистр одной из частей. Такой XML будет невалидным

4. Правильная вложенность элементов

Элементы могут идти друг за другом

Один элемент может быть вложен в другой

Но накладываться друг на друга элементы НЕ могут!

5. Атрибуты оформлены в кавычках

Даже если вы считаете атрибут числом, он будет в кавычках:

<query attr1=“123”>Виктор Иван</query>
<query attr1=“атрибутик” attr2=“123” >Виктор Иван</query>

Для тестирования пробуем передать его без кавычек:

<query attr1=123>Виктор Иван</query>

Итого

XML (eXtensible Markup Language) используется для хранения и передачи данных.

Передача данных — это запросы и ответы в API-методах. Если вы отправляете SOAP-запрос, вы априори работаете именно с этим форматом. Потому что SOAP передает данные только в XML. Если вы используете REST, то там возможны варианты — или XML, или JSON.

Хранение данных — это когда XML встречается внутри кода. Его легко понимает как машина, так и человек. В формате XML можно описывать какие-то правила, которые будут применяться к данным, или что-то еще.

Вот пример использования XML в коде open-source проекта folks. Я не знаю, что именно делает JacksonJsonProvider, но могу «прочитать» этот код — есть функционал, который мы будем использовать (featuresToEnable), и есть тот, что нам не нужен(featuresToDisable).

Формат XML подчиняется стандартам. Синтаксически некорректный запрос даже на сервер не уйдет, его еще клиент порежет. Сначала проверка на well formed, потом уже бизнес-логика.

Правила well formed XML:

  1. Есть корневой элемент.
  2. У каждого элемента есть закрывающийся тег.
  3. Теги регистрозависимы!
  4. Соблюдается правильная вложенность элементов.
  5. Атрибуты оформлены в кавычках.

Если вы тестировщик, то при тестировании запросов в формате XML обязательно попробуйте нарушить каждое правило! Да, система должна уметь обрабатывать такие ошибки и возвращать адекватное сообщение об ошибке. Но далеко не всегда она это делает.

А если система публичная и возвращает пустой ответ на некорректный запрос — это плохо. Потому что разработчик другой системы налажает в запросе, а по пустому ответу даже не поймет, где именно. И будет приставать к поддержке: «Что же у меня не так?», кидая информацию по кусочкам и в виде скринов исходного кода. Оно вам надо? Нет? Тогда убедитесь, что система выдает понятное сообщение об ошибке!

См также:

Что такое XML
Учебник по XML
Изучаем XML. Эрик Рэй (книга по XML)
Заметки о XML и XLST

Что такое JSON — второй популярный формат

PS — больше полезных статей ищите в моем блоге по метке «полезное». А полезные видео — на моем youtube-канале

XML For Dummies Люсинда Дайкс, Эд Титтел — электронная книга

электронная книга609 страниц6 часов

Рейтинг: 2,5 из 5 звезд

2,5/5

()

1

Посмотрите, как XML работает для нужд бизнеса и RSS-каналы

Обеспечьте согласованность в Интернете или пометьте свои данные тегами для различных целей

Тег — это XML! Теги XML позволяют вам делиться своим форматом, а также вашими данными, и это удобное руководство покажет вам, как это сделать. Скоро вы будете использовать этот язык разметки для создания чего угодно, от веб-сайтов до бизнес-форм, для поиска схем и DOCTYPES, блуждания по Xpath, объединения XML с Office 2003 и многого другого.

Узнайте, как
* Сделать информацию портативной
* Использовать XML с Word 2003
* Хранить различные типы данных
* Преобразование документов HTML в XHTML
* Добавить CSS в XML
* Понять и использовать DTDS

Skip Carousel

9002 LanguageN.

PublisherWiley

Дата выпуска 9 мая 2011 г.

ISBN9781118085530

Связанные категории 0041

Рейтинг: 2.3333333333333335 из 5 звезд 9

XML для чайников — Люсинда Дайкс 058

В этой части . . .

Здесь вы получите мягкое, но формальное введение в расширяемый язык разметки, также известный как XML. Начиная с главы 1, вы знакомитесь с возможностями, преимуществами и универсальностью XML. Вы получите советы о том, как наилучшим образом использовать XML, и оцените другие элементы, которые могут понадобиться для XML-решения. В главе 2 мы познакомим вас с вариантами вывода XML, включая веб-страницы, документы для печати, формы, электронные таблицы и базы данных. Затем выявляется большое разнообразие языков XML. Наконец, глава 3 завершает ваш базовый набор инструментов, подробно рассказывая о том, как разработать и протестировать схему классификации ваших данных.

Глава 1

Знакомство с XML
В этой главе

пуля Знакомство с XML

пуля Изучение различных способов применения XML 90 003

bullet Расшифровка того, что такое XML, а что нет

bullet Создание XML-документа

Вам когда-нибудь понадобился формат документа, который можно было бы использовать для обмена данными — либо через Интернет, либо через интрасеть? Что ж, расширяемый язык разметки (XML) может быть как раз решением. На самом деле многие отрасли открыли для себя чудеса XML и активно используют его для организации и классификации своих данных.

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

И это еще не все! С помощью XML вы можете отправлять одну и ту же информацию в разные места — скажем, человеку, использующему мобильный телефон, и человеку, использующему веб-браузер, — одновременно. Кроме того, вы можете настроить отправляемую информацию, чтобы она правильно отображалась на различных устройствах.

Начать работу с XML несложно. Просто прочтите эту главу, и вы узнаете, что такое языки разметки, что такое XML и для чего можно использовать XML.

XML (НЕВЕРОЯТНО КРУТО)

Если вы внимательно посмотрите на использование XML в современном деловом мире, вы вскоре поймете, что определить единственное, окончательное использование XML практически невозможно. На самом деле, именно открытая природа XML делает его таким полезным для многих разных целей — и его так трудно поместить в одну маленькую коробку. Читайте дальше, чтобы понять, что мы имеем в виду.

Моделирование собственной разметки

Возможно, вы знакомы с H год t ext M arkup L язык (HTML), язык разметки, используемый для отображения информации на веб-страницах. И XML, и HTML произошли от родоначальника всех языков разметки , стандартного обобщенного языка разметки (SGML), но на этом сходство заканчивается.

HTML включает набор предопределенных тегов, которые форматируют информацию для отображения в Интернете. XML не имеет предопределенных тегов — вместо этого вы можете создавать свои собственные XML-теги, чтобы структурировать ваш XML-документ, чтобы его содержимое имело форму, соответствующую вашим потребностям. По сути, вы разрабатываете свой собственный язык разметки (фактически XML-приложение) для обмена данными удобным для вас способом.

Хотя XML не включает предопределенных тегов, он включает очень специфические правила синтаксиса XML-документа. У вас будет возможность изучить эти правила (и использовать их для создания собственного XML-документа) в главе 5.

X HT ML — еще один язык разметки, разработанный как переходный язык между HTML и XML. Короче говоря, XHTML — это версия HTML, которая следует строгим правилам синтаксиса XML. После того, как вы использовали его некоторое время, вы хорошо подготовлены к использованию XML. (Мы раскрываем тайны XHTML в главе 4, где у вас также есть возможность создать XHTML-файл для просмотра в Интернете. )

Разделение данных и контекста

Одним из многих преимуществ использования XML является то, что он автоматически отделяет данные от контекста (представления). XML-документ сам по себе не содержит инструкций о том, как отображать содержимое, содержащееся в документе, — он только определяет структуру документа. Затем вы можете добавить стилей — инструкции по форматированию для отображения содержимого — в отдельный документ, называемый таблицей стилей . Это разделение на самом деле очень удобно; вы можете изменить отображаемые инструкции, не внося никаких изменений в XML-документ. Если одна и та же таблица стилей используется более чем в одном документе, вы можете внести единые изменения стиля во все эти документы, просто внеся изменения в таблицу стилей. Все связанные XML-документы следуют порядку таблицы стилей.

XML можно комбинировать с двумя разными типами таблиц стилей — каскадными таблицами стилей (CSS) и/или расширяемыми преобразованиями языка таблиц стилей (XSLT) — для дополнительной универсальности. Это позволяет просматривать XML-документы в Интернете как нечто большее, чем просто разметку необработанных документов, и вы можете легко изменить это отображение, чтобы оно соответствовало различным устройствам вывода. Например, вы можете использовать одну таблицу стилей для отображения на КПК и отдельную для распечатки.

Мы расскажем больше о мире форматирования CSS в главе 7, где (к счастью для вас) мы даже покажем вам, как создать таблицу стилей CSS и связать ее с XML-документом. XSLT получает то же самое в главе 12, где у вас есть возможность изучить мощь таблиц стилей XSLT для форматирования отображения XML-документа.

Обеспечение переносимости информации

XML предназначен для управления вашими данными — с использованием наилучшего из доступных вам форматов. Говоря о том, как XML может обрабатывать ваши данные как отдельные биты информации, какой формат может быть лучше, чем маркированный список? Ознакомьтесь со следующими элементами:

bullet XML позволяет собрать информацию один раз и повторно использовать ее различными способами.

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

Например, предположим, что ваша компания собирает информацию о продажах группы продуктов, используя XML-документ для хранения данных. Те же XML-данные можно использовать для создания записей о покупках клиентов, отчетов о комиссионных и графиков продаж продуктов.

bullet Для переноса информации требуется планирование и проектирование, прежде чем информация будет собрана. (У вас есть возможность изучить искусство разработки стратегий сбора данных в главе 3.)

XML означает бизнес

XML предоставляет предприятиям простой способ управления информацией и обмена ею. Хотя XML изначально был создан Консорциумом World Wide Web (W3C) как способ распространения сложных структурированных данных и документов через Интернет, его использование расширилось. XML больше не является форматом только для Интернета, он идеально подходит для рабочих столов.

Microsoft Office 2003 — один из примечательных пакетов приложений, который включает инструменты XML для офисных приложений. С помощью Office 2003 можно создавать офисные документы в формате XML, а информацию помечать и собирать для повторного использования в других офисных приложениях, а также в Интернете. В этой книге мы выделяем некоторые варианты использования XML в Office 2003.

Выяснение того, чем хорош XML

Тематические исследования XML постоянно упоминают о новых и захватывающих возможностях, когда XML повышает ценность существующих сред или решает ранее неразрешимые проблемы. Вероятно, поэтому XML-приложения широко используются для всего: от отображения химических формул до создания генеалогического древа. Итак, как вы можете использовать возможности XML?

Классификация информации

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

Книги можно классифицировать по-разному, но нам нравится следующая схема классификации:

bullet Название

bullet Автор

bullet Издатель

bullet Цена

bullet Тип контента (художественная литература, документальная литература)

9000 2 пули Формат (Мягкая обложка, Твердый переплет)

bullet ISBN

С помощью XML можно создавать теги для классификации этой информации. В следующем коде показан возможный формат XML для одной книги:

Night Fall 9.0002 Демиль, Нельсон

Warner

26,95 $

Художественная литература

Твердый переплет

0446576638

Совет

Присвоение вашим тегам осмысленных имен, которые действительно отражают содержимое, упрощает работу с информацией.

Классификация информации, как показано здесь, позволяет вам легко искать и извлекать любой элемент. Например, после того, как информация обо всех книгах для вашего воображаемого книжного бизнеса будет собрана и спрятана в формате XML, вы можете создать список всех авторов — или авторов и заголовков, или заголовков и ISBN, любой информации, к которой вы хотите получить доступ. . (Поговорим о власти на кончиках ваших пальцев!)

Вспомните

Мы пройдемся по всем кровавым подробностям классификации информации в главе 3, но не забывайте об этом воображаемом книжном бизнесе, когда будете читать другие главы этой книги: стать следующей гигантской (воображаемой) сетью книжных магазинов. Мы расширим пример книжного бизнеса в последующих главах, чтобы продемонстрировать, как вы можете использовать XML для сбора и использования информации о запасах, клиентах, магазинах и продажах, какого бы огромного успеха вы ни добились.

Применение правил к вашим данным

XML позволяет вам создавать правила для формата ваших данных. Использование определений типов документов (DTD) или XML-схем для проверки данных дает вам два непосредственных преимущества:

bullet Это помогает обеспечить точность собираемой информации.

bullet Помогает убедиться, что собранная информация представлена ​​в наиболее удобном для вашего бизнеса формате.

Не знаете, что такое DTD? Проверьте Знакомство с жаргоном языка разметки боковая панель, далее в этой главе.

Еще раз взглянув на XML, который мы придумали в предыдущем разделе для вашего воображаемого книжного бизнеса, вы увидите несколько элементов, для которых вы можете включить правила, управляющие форматированием данных, например,

маркер Валюта формат цены

маркер Числовой формат для ISBN

маркер Ограниченный выбор для типа контента (художественная или документальная литература)

bullet Ограниченный выбор формата (мягкая или твердая обложка)

Подробное описание создания и использования DTD и XML-схем вы найдете в части III этой книги.

Знакомство с жаргоном языка разметки

Вам не нужно быть профессионалом в области разметки, чтобы читать эту книгу или использовать XML. Если вы новичок в мире разметки (или вам нужно освежить свой словарный запас), следующий список должен вам помочь.

Эти термины наиболее часто встречаются в мире XML. По мере знакомства с ними вы также получаете представление о языках разметки в целом (включая XML):

bullet Атрибут: . В XML — свойство, связанное с элементом XML, которое также является именованной характеристикой элемента. Атрибут также предоставляет дополнительные данные об элементе, независимо от содержимого элемента. Например:

GatewayMall>Whiteout  location=

В этом случае содержание элемента (книги) — Whiteout, но атрибут (местоположение) предоставляет дополнительные данные (GatewayMall).

пуля Определение типа документа (DTD): Это свод правил для XML-документа, основанный на SGML (предке XML), в котором указывается, какие элементы (теги разметки) и атрибуты (имена и значения, связанные с определенными элементами) разрешены в ваших документах. . DTD также определяет порядок, в котором могут появляться элементы и атрибуты — или (если быть строгим) должны появляться.

bullet Элемент: Раздел документа, определяемый начальным и конечным тегами (или пустым тегом), включая любое связанное содержимое.

bullet Метаязык: Язык, используемый для передачи информации о самом языке; многие эксперты считают и SGML, и XML метаязыками, поскольку их можно использовать для определения других языков разметки.

bullet Вложенность: Порядок элементов, который открывает и закрывает дочерний элемент перед закрытием его родительского элемента. ( Дочерние элементы вложены в родительских элементов .)

пуля Схема: Формулировка правил на основе XML, которая представляет, как документ XML моделирует свои данные и определяет свои элементы (или объекты), их атрибуты (или свойства). ) и связи между элементами.

bullet Синтаксис: Правила, управляющие правильным построением понятных выражений на языке разметки.

пуля Бирка; пустой тег: Разметка, используемая для заключения содержимого элемента. Пустой элемент использует один тег; обычный элемент (который не пуст) имеет открывающий и закрывающий теги.

bullet Действителен: Говорится о документе, если он соответствует правилам, изложенным в связанном документе DTD или схеме.

bullet Правильный формат: Говорится о документе на языке разметки, который придерживается правил синтаксиса для XML, которые специально разработаны для облегчения интерпретации документов компьютером.

Вывод информации различными способами

Вывод ваших данных означает освобождение их из хранилища — предположительно где-то в недрах вашего компьютера — и перенос их в какое-то другое место, где они могут быть более полезными. Самое замечательное в XML-документах то, что они не ограничены какой-либо конкретной формой вывода; они могут оказаться в самых разных местах в любой подходящей форме — например, в базе данных, мониторе компьютера, принтере или КПК.

XML-документы прекрасно подходят для самых разных процессов. Фраза постобработка была практически адаптирована для XML; это означает получение информации из документа и использование ее в каком-либо другом процессе или программе. Например, предположим, что вы получили заказ на покупку в виде XML-документа. Приложение, которое понимает заказы на покупку в формате XML, может использовать эти данные для определения того, какие товары (и в каких количествах) были заказаны, и даже может отправлять инструкции другому программному обеспечению для создания списка выбора, чтобы заказ можно было собрать, упаковать и выполнить. отгружено со склада. (сейчас это наша разновидность постобработки!)

Во многих случаях XML-документы используются с таблицами стилей для обеспечения высококачественного вывода на экран. Однако вы можете использовать те же данные для отправки информации в программу синтеза речи, которая читает текст человеку с нарушениями зрения. В качестве альтернативы те же самые данные могут также создавать вывод на считывателе Брайля. Тот же документ с программой верстки и таблицей стилей также можно использовать для высококачественных распечаток. (Рис. 1.1 дает вам представление о бесконечном разнообразии вариантов вывода, которые предоставляет вам XML.)

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

Использование одних и тех же данных на разных платформах

Хорошие новости на первый взгляд выглядят как отсутствие новостей: XML-документы не привязаны к какой-либо конкретной платформе или языку программирования. Хорошо, почему это что-то, о чем можно написать домой по электронной почте? Подумайте об универсальности. Предположим, вы хотите обмениваться информацией из базы данных через Интернет — скажем, использовать веб-браузер для отправки информации из анкеты пользователя обратно на веб-сервер. Для выполнения этой задачи (и многих других) вам нужен формат документа

bullet Расширяемый: Расширяемый формат — это формат, который можно адаптировать или настроить для конкретных приложений.

bullet Открыто: Хорошо задокументировано и широко доступно.

bullet Непатентованное: Выражается в принятой или стандартной форме записи, которая не является исключительной собственностью какого-либо лица, компании или организации.

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

Угадай что? XML отвечает всем трем требованиям к формату документа для обмена данными — он открыт, расширяем и не является собственностью. Поэтому неудивительно, что XML — лучший выбор для обмена данными; Эти три волшебные характеристики делают его удобным и согласованным способом передачи данных между несколькими приложениями и несколькими платформами с максимальной эффективностью и минимальными трудностями.

Прочтите главу 2 для получения дополнительной информации и примеров многих применений XML, а также введения в мир XML-технологий.

За пределами шумихи: чем не является XML

В предыдущем разделе разъяснялось, что такое XML — расширяемый язык разметки, позволяющий создавать собственные теги для разработки XML-приложений. Теперь пришло время уточнить, чем XML не является .

Это больше не только для веб-страниц

Хотя Консорциум World Wide Web (W3C) разработал XML, он предназначен не только для веб-страниц. На самом деле, если вы отображаете XML-документ в Интернете в необработанном виде (без добавления стилей для форматирования отображения), вы увидите только саму XML-разметку. На рис. 1-2 показан XML-файл в Internet Explorer — особо не на что смотреть! И еще меньше можно увидеть, когда этот же файл отображается в Netscape Navigator, как показано на рис. 1-3.

Так что выкиньте из головы эту идею только для Интернета. XML — это язык разметки, позволяющий упорядочивать информацию путем создания тегов для создания определенной структуры документа. Документы XML можно просматривать в Интернете, но, в отличие от документов HTML, они не ограничены Интернетом.

Браузерная поддержка XML ограничена и варьируется. Надеюсь, это изменится в следующем поколении браузеров, но сейчас XML хорошо работает на веб-страницах только в сочетании с другим языком (CSS) или технологией XML (XSLT) для форматирования отображения информации XML. На рис. 1-4 показан наш XML-файл в сочетании с простыми инструкциями в стиле CSS — теперь это больше похоже на то!

Это не база данных

Является ли XML базой данных, зависит от вашего определения базы данных . Если вы определяете базу данных как набор данных, тогда да, XML квалифицируется как база данных. Если вы определяете базу данных как программу системы управления базами данных (СУБД), такую ​​как Microsoft Access, XML имеет некоторые функции СУБД (хранилище, запросы, программные интерфейсы), но не имеет других (запросы по нескольким документам, безопасность, индексы). ). Ну ладно тебе может использовать XML в качестве базы данных для небольшого объема данных, но было бы неэффективно использовать XML в качестве базы данных для больших объемов данных. (Зачем вам это нужно, если программы СУБД предназначены именно для этого?)

Это не означает, что XML каким-либо образом недружественен к базам данных. XML-документы хорошо подходят как для ввода, так и для вывода, при переходе в базу данных и из нее, и вы также можете использовать их для отображения информации из базы данных в печати или в Интернете. (Более подробно о том, как эффективно использовать XML с базами данных, вы узнаете из главы 17.)

Это не язык программирования

Одно из самых распространенных заблуждений относительно XML состоит в том, что это язык программирования. Хотя XML можно использовать с языками программирования для определенных типов разработки приложений, это язык разметки, а не язык программирования. Язык разметки по существу является описательным; язык программирования предназначен для выдачи логических команд. Языки программирования включают (например) переменные, типы данных, операторы, циклы, функции и условные операторы. XML не включает ни одну из этих функций, поэтому это не язык программирования.

TechnicalStuff

Частично путаница здесь заключается в том, что некоторые типы XML-документов действительно включают некоторые функции , найденные в языках программирования. Например, XML-схемы (которые сами по себе являются XML-документами) включают несколько встроенных типов данных, а также допускают пользовательские типы данных. Но постойте: хотя документы XML-схемы могут включать типы данных — одно из свойств языков программирования — это не делает их полноценными языками программирования со всеми только что перечисленными функциями. Они остаются XML-документами — со структурой XML-документа, созданной с помощью языка разметки (XML). Вы можете получить XML для описания того, как будет выглядеть документ; вы не можете заставить его приглушить свет в доме или завести машину — по крайней мере, без помощи реального языка программирования.

Создание XML-документов

Когда дело доходит до того, чтобы на самом деле упорядочить ваши XML-теги, обычные старомодные текстовые редакторы (например, Блокнот) могут справиться с этой работой, если вы только начинаете работать с XML. . Если вы используете Windows, вы можете получить доступ к Блокноту, выбрав Пуск⇒Программы⇒Стандартные⇒Блокнот. Откроется новое окно Блокнота. Вы можете сохранять файлы так же, как в текстовом процессоре, и выполнять простые функции, такие как копирование и вставка. Помимо этого, Блокнот — довольно простая программа — вы должны вставлять всю разметку самостоятельно, когда используете текстовый редактор, такой как Блокнот.

Совет

Не используйте текстовый редактор WordPad для создания XML-документа; он не позволит вам сохранить файл с расширением .xml.

Если простого подхода недостаточно, вы можете попробовать текстовые редакторы, созданные специально для XML. (Мы думаем, что они определенно подойдут, если вы планируете регулярно использовать XML.) Эти редакторы часто выглядят как смесь традиционных текстовых процессоров и HTML-редакторов. На самом деле, большинство XML-редакторов работают так же, как текстовые процессоры, так что вы легко можете забыть, что работаете с XML.

XML-редакторы облегчат вашу работу и помогут сохранить творческий потенциал! (Отслеживание тегов и очистка структур могут прервать и даже полностью разрушить творческий ход мысли.) XML-редакторы имеют две отличительные особенности, необходимые для создания хороших документов XML:

bullet Простота разметки: XML-редакторы, такие как XMLSpy, Turbo XML и XML Pro могут добавлять разметку к тексту так же просто, как вы можете сделать текст жирным шрифтом в современных текстовых процессорах. Все редакторы XML предоставляют возможность выделять текст с помощью курсора и выбирать, какую разметку вы хотите применить, из меню выбора. (см. главу 19

bullet Автоматическое применение правил XML-документа: Для многих приложений редакторы XML могут определять, какие типы элементов могут появляться в определенных контекстах. Таким образом, редактор помогает избежать синтаксических или структурных ошибок. Например, если вы укажете, что элемент ChapterTitle действителен только в начале главы и никогда в пределах обычного абзаца, редактор может убедиться, что ваше правило применяется, если вы случайно нарушите его.

XML является подмножеством SGML, поэтому многие инструменты разработки и редакторы, ранее использовавшиеся для SGML, были переделаны и теперь готовы принять XML.

Глава 2

Использование XML для многих целей
В этой главе Интернет, печатные СМИ, формы и базы данных

bullet Знакомство со многими разновидностями XML

Предприятия генерируют, хранят и обмениваются информацией различными способами, включая текстовые отчеты, формы, электронные таблицы и базы данных. Часто эти важные данные не собираются и не сохраняются в формате, позволяющем повторно использовать, индексировать или искать эту информацию. Например, бизнес-данные в текстовом документе могут быть доступны только в этом документе; программа для работы с электронными таблицами, которая могла бы создать график из той же самой информации, может быть не в состоянии получить ее — и это означает, что данные нужно вводить заново. Повторный ввод одних и тех же данных не только неэффективен, но и создает больше возможностей для ошибок.

XML позволяет собрать информацию один раз, а затем получить доступ к этим данным и использовать их в любом необходимом вам формате. Хотя это требует некоторого предварительного планирования (и внимательного изучения типов данных, которые вы на самом деле собираете), XML несложно внедрить как решение для сбора, хранения и обмена данными,

Вам не нужно быть технический гений, чтобы начать использовать XML. XML доступен для пользователей всех уровней, от новичков, создающих свои первые XML-документы в Word 2003, до более технически подкованных пользователей, которым доверена задача построения XML-схем для проверки этих документов.

Перенос устаревших данных в XML

Использование XML для ваших данных не обязательно возвращает вас обратно в Square One; вам не нужно начинать сбор и обработку ваших данных заново. Вы можете импортировать, экспортировать или иным образом преобразовывать текущие данные в формат XML. Вот краткий обзор того, что возможно:

пуля Ваши данные представлены в электронных таблицах? Вы можете преобразовать эти данные в формат XML, создав схему XML для данных, а затем используя эту схему в Excel 2003 для создания карты, соединяющей данные ячеек электронной таблицы и схему. Затем вы можете экспортировать файл электронной таблицы в виде XML-документа. (см. Приступая к работе с Excel раздел ниже в этой главе для получения более подробной информации об использовании XML с Excel 2003.)

маркер Ваши данные находятся в таблицах базы данных? В Access 2003 можно экспортировать данные в формате XML из одной или нескольких таблиц. Access может автоматически создавать и экспортировать XML-документ вместе со схемой XML и таблицей стилей XSLT, которая создает HTML-документ для отображения данных в Интернете. Вы также можете использовать XMLSpy (редактор XML) для импорта и преобразования информации из различных баз данных, включая Microsoft SQL Server, Oracle, MySQL, IBM DB2, Sybase, Access или любые ADO (9).0056 A ctiveX D ata O объектов) или источник ODBC ( O pen D ata B ase C onnectivity) — в формат XML. См. главу 17 для получения дополнительной информации об использовании XML с базами данных.

bullet Ваши данные находятся в текстовых файлах CSV (значения, разделенные запятыми)? Вы можете использовать XMLSpy для импорта и преобразования этих текстовых файлов в формат XML.

Даже если ваши текущие данные не представлены ни в одном из этих форматов, вы можете провести инвентаризацию своих данных и организовать их для эффективного использования в формате XML, если последуете совету, который мы предлагаем в главе 3.

Многоликость XML

После того, как ваши данные будут представлены в формате XML, у вас будет много способов представить их и поделиться ими. К одним и тем же данным можно получить доступ через веб-страницы, печатные документы, формы, электронные таблицы и базы данных.

Создание веб-страниц с поддержкой XML

Вся эта универсальность XML требует лишь небольшой дополнительной настройки: ваше содержимое (то есть данные) отделено от контекста (то, как вы его представляете) в XML-документах. Это означает, что вам нужно добавить некоторую информацию о форматировании, если вы хотите отобразить больше, чем просто raw Разметка XML в Интернете

Наслаждаетесь предварительным просмотром?

Страница 1 из 1

Java и XML для чайников

Скачать бесплатную пробную версию >

Узнайте, что нового >

Купить >

предоставьте первую главу популярной книги Java и XML для чайников, озаглавленную Java и XML: В поисках Святого Грааля , Барри Берд. Java & XML For Dummies демонстрирует опытных Java-разработчики, как начать включать XML-данные в свои приложения. Рассматриваемые темы включают привязки Java/XML, простой API для XML (SAX), объектную модель документа (DOM), SOAP, веб-службы, привязку данных, XML из Java-приложений, обмен сообщениями с XML и Java, DTD, пространства имен, Xpath, CSS, UDDI, обработка HTTP серверы для сообщений SOAP и других форматов XML через серверлеты, различия между парсерами, программирование Java API инструменты для работы с XML, использование XML для решения реальных задач программирования, WSDL, UDDI, EAI, маршрутизация сообщений, преобразование java-объектов в XML, базы данных в XML.

Содержание

  • Введение.
  • ЧАСТЬ I: Начало работы.
    • Глава 1: Java и XML: объединение усилий в поисках Святого Грааля.
    • Глава 2: Попробуй!
  • ЧАСТЬ II: Инструменты общего назначения.
    • Глава 3. Сканирование данных сверху вниз (с использованием SAX).
    • Глава 4: Проверка документа.
    • Глава 5: Полезные инструменты в SAX API.
    • Глава 6: Методы программирования SAX.
    • Глава 7. Сканирование данных изнутри наружу (с использованием DOM)
    • Глава 8. Полезные инструменты в DOM API.
    • Глава 9: Методы программирования DOM.
    • Глава 10. Элегантный способ сканирования данных (с использованием JDOM)
    • Глава 11. Максимальное использование JDOM.
    • Глава 12. Преобразование XML-данных.
    • Глава 13. Просмотр данных XML в Интернете.
    • Глава 14: Создание пользовательского кода для вашего документа.
    • Глава 15: Использование JAXB для MaxB.
  • ЧАСТЬ III: Специальные инструменты для революции веб-сервисов.
    • Глава 16. Отправка сообщений SOAP с помощью JAXM.
    • Глава 17. Работа с реестрами XML.
    • Глава 18. Автоматизация процессов веб-службы (с использованием JAX-RPC).
  • ЧАСТЬ IV: Десять частей от десяти.