Содержание

Правила синтаксиса XML

Правила синтаксиса XML крайне просты и логичны. Их легко запомнить и легко использовать.

Все XML элементы должны иметь закрывающий тег

В HTML некоторые элементы могут не иметь закрывающего тега:

<p>Это параграф.
<br>

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

<p>Это параграф.</p>
<br>

Возможно, вы заметили из предыдущих примеров, что XML декларация не имеет закрывающего тега. Это не ошибка. Дело в том, что декларация не относится к XML документу, поэтому у нее и нет закрывающего тега.

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

Теги XML являются регистрозависимыми. Так, тег <Letter> не то же самое, что тег <letter>.

Открывающий и закрывающий теги должны определяться в одном регистре:

<Message>Это неправильно</message>
<message>Это правильно</message>

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

XML элементы должны соблюдать корректную вложенность

В HTML иногда можно наблюдать такую картину:

<b><i>Это жирный и курсивный текст</b></i>

и иногда это даже работает должным образом.

В XML все элементы обязаны соблюдать корректную вложенность:

<b><i>Это жирный и курсивный текст</i></b>

Понятие «корректная вложенность» по отношению к приведенным примерам просто означает, что так как элемент <i> открывается внутри элемента <b>, то и закрываться он должен внутри элемента <b>.

У XML документа должен быть корневой элемент

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

<корневой>
   <потомок>
      <подпотомок>... ..</подпотомок>
   </потомок>
</корневой>

XML пролог

Следующая строка называется XML прологом:

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

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

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

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

Значения XML атрибутов должны заключаться в кавычки

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

В XML значения атрибутов должны заключаться в кавычки.

Посмотрите на следующие два примера XML документа. Первый с ошибкой, второй написан правильно:

<note date=12/11/2007>
   <to>Tove</to>
   <from>Jani</from>
</note>
<note date="12/11/2007">
   <to>Tove</to>
   <from>Jani</from>
</note>

Ошибка в первом XML документе заключается в том, что значение атрибута date элемента note не заключено в кавычки.

Сущности

Некоторые символы в XML имеют особые значения.

Если вы поместите, например, символ «<» внутри XML элемента, то будет сгенерирована ошибка, так как парсер интерпретирует его, как начало нового элемента.

Так, к ошибке приведет следующая строка XML документа:

<message>если жалование < 1000</message>

Чтобы такая ошибка не возникала, нужно заменить символ «<» на его сущность:

<message>если жалование &lt; 1000</message>

В XML существует 5 предопределенных сущностей:

СущностьСимволЗначение
&lt;<меньше, чем
&gt;>
больше, чем
&amp;&амперсанд
&apos;апостроф
&quot;«кавычки

Замечание: Только символы «<» и «&» строго запрещены в XML. Символ «>» допустим, но лучше его всегда заменять на сущность.

Комментарии в XML

Синтаксис комментариев в XML такой же, как и в HTML.

<!-- Это комментарий -->

Использование двух символов тире в середине комментария не допустимо.

Неверно:

<!-- Это -- комментарий -->

Странно, но так можно:

<!-- Это - - комментарий -->

В XML пробелы сохраняются

В HTML несколько последовательных пробельных символов усекаются до одного. В XML документе все пробельные символы сохраняются.

В XML новая строка сохраняется как LF

В приложениях Windows новая строка хранится в следующем виде: символ перевода каретки и символ новой строки (CR+LF).

Unix и Mac OSX используют LF.

Старые Mac системы используют CR.

XML сохраняет новую строку как LF.

Синтаксически верный XML документ

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

Основы XML для начинающих | Info-Comp.ru

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

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

Определение языка XML

XML (eXtensible Markup Language) – универсальный и расширяемый язык разметки данных, который не зависит от операционной системы и среды обработки. Xml служит для представления неких данных в виде структуры, и эту структуру Вы можете сами разработать или подстроить под ту или иную программу или какой-то сервис. Именно поэтому данный язык называют расширяемый, и в этом является его главное достоинство, за которое его так ценят.

Как Вы знаете, языков разметки существует достаточно много, например, язык HTML, но все они, так или иначе, зависят от обработчика, например, тот же самый html, код которого парсит браузер, является стандартизированным и не расширяемым, там есть четкие теги, синтаксис который нельзя нарушать, а в xml Вы можете сами создавать свои теги, т.е. свою разметку. Главным отличием HTML и XML является то, что html всего лишь описывает разметку для отображения данных, а xml — это абстрактная структура данных, которую можно обработать и отобразить как угодно и где угодно и поэтому сравнивать эти языки не нужно, у них абсолютно разное назначение.

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

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

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

Также мне один раз пришлось хранить данные xml в базе MS SQL 2008, для того чтобы лучше представлять эти самые данные и обмениваться ими между сервером и клиентской частью приложения, это мы рассматривали в статье — Transact-sql – работа с xml.

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

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

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

XML теги

Язык XML для разметки использует теги (теги регистрозависимы), но не такие теги как в html, а те, которые Вы придумаете сами, но у xml документа есть также четкая структура, т.е. есть открывающий тег и закрывающий, есть вложенные теги и есть, конечно же, значения, которые расположены в этих тегах. Другими словами, все, что нужно для начальных знаний xml — это просто придерживаться этим правилам. Все вместе открывающий, закрывающий тег и значение называется элементом и весь xml документ состоит именно из элементов, которые в совокупности образуют структуру данных. У xml документа может быть только один корневой элемент, это запомните, так как если Вы напишите два корневых элемента, то это будет ошибка.

И пришло время привести пример xml разметки, и первый пример пока для синтаксиса:

   
  <Начало элемента>
        <Начало вложенного элемента>
                Значение вложенного элемента
        </Конец вложенного элемента>
   </Конец элемента>


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

Теперь давайте приведем пример, настоящего xml документа:

Как видите, я здесь просто привел пример своего рода каталога книг, но я не объявлял этот документ, т.е. не писал XML декларацию, которая говорит приложению, которое будет обрабатывать эти данные, что здесь расположены данные именно xml и в какой кодировке они представлены. Также можно писать комментарии и атрибуты, так давайте приведем пример такого документа:

Код:

   
   <?xml version="1.0" encoding="UTF-8"?>
   <!--Комментарий к документу XML-->
   <catalog name="Каталог книг">
        <book id= "1">
                <name>Книга 1</name>
                <author>Иван</author>
                <comment>Просто книга 1</comment>
        </book>
        <book id= "2">
                <name>Книга 2</name>
                <author>Сергей</author>
                <comment>Просто книга 2</comment>
        </book>
        <book id= "3">
                <name>Книга 3</name>
                <author>Роман</author>
                <comment>Просто книга 3</comment>
        </book>
   </catalog>


Где первая строка и есть объявление декларации о том, что это документ XML и его необходимо читать в кодировке UTF-8.

Эти данные без обработки будут выглядеть, например, в браузере (Mozilla Firefox) следующим образом:

Надеюсь, Вы понимаете, что здесь catalog — это корневой элемент, который состоит из элементов book, который в свою очередь состоит из элементов name, author и comment, также для примера я задал несколько атрибутов у элемента catalog и у элемента book.

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

Что такое 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, 4-е издание

Выбранный тип: Мягкая обложка

Количество:

Печать по запросу

29,99 $

Люсинда Дайкс, Эд Титтел

ISBN: 978-0-764-58845-7 май 2005 г. 384 страницы

  • Электронная книга

    От 18 долларов США

  • Печать

    От 29,99 долл.  США

Электронная книга </li></ul>» data-original-title=»» title=»»/>

18,00 $

Мягкая обложка

29,99 $

Загрузить рекламный проспект

Загрузить рекламный проспект

Загрузить флаер продукта для загрузки PDF в новой вкладке. Это фиктивное описание. Загрузить флаер продукта — загрузить PDF в новой вкладке. Это фиктивное описание. Загрузить флаер продукта — загрузить PDF в новой вкладке. Это фиктивное описание. Загрузить флаер продукта — загрузить PDF в новой вкладке. Это фиктивное описание.

Описание

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

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

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

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

Об авторе

Люсинда Дайкс начала свою карьеру в высокотехнологичной области медицины, но оставила медицину, чтобы заняться технологиями и Интернетом. Она пишет код и разрабатывает веб-сайты с 19 лет.94, а также преподает и разрабатывает онлайн-курсы, в том числе курсы JavaScript для Международной ассоциации веб-мастеров/Гильдии писателей HTML на сайте www.eclasses.org.
Люсинда является автором, соавтором, редактором и соавтором многочисленных компьютерных книг; самые последние включают Dreamweaver MX 2004 Savvy (Sybex), XML для чайников (3-е издание, Wiley), Dreamweaver MX Fireworks MX Savvy (Sybex), XML-схем (Sybex) и Освоение XHTML (Sybex). Когда ей удается отойти от клавиатуры, другие интересы включают голографические технологии, научную фантастику и фильмы Болливуда.

Эд Титтел — ветеран компьютерной индустрии с 23-летним стажем. Проведя свои первые семь лет в написании кода для снаряжения, Эд переключился на более мягкую сторону бизнеса в качестве тренера и говорящей головы. Писатель-фрилансер с 1986 года, Эд написал сотни журнальных и веб-статей, а также работал над более чем 100 компьютерными книгами, в том числе многочисленными For Dummies заголовков по темам, включающим несколько версий Windows, NetWare, HTML, XHTML и XML.
Эд также является технологическим редактором Certification Magazine , пишет для многочисленных веб-сайтов TechTarget и пишет два раза в месяц информационный бюллетень «Must Know News» для CramSession.com. В свободное время Эд любит играть в бильярд, готовить и проводить время со своей женой Диной и сыном Грегори. Он также любит исследовать мир вдали от клавиатуры со своим верным лабрадором-ретривером Блэки. С Эдом можно связаться по адресу [email protected]

Разрешения

Запросить разрешение на повторное использование контента с этого сайта

Содержание

Введение 1

Часть I. Основы XML 9

Глава 1. Знакомство с XML 11

Глава 2. Использование XML для многих целей 23 Искусство таксономии 33

Часть II: XML и Интернет 45

Глава 4. Добавление XHTML для Интернета 47

Глава 5. Составление XML-файла 65

Глава 6. Добавление символов в XML 83

Глава 7. Обработка форматирования с помощью CSS 95

Часть

III. Построение проверки с помощью DTD и схем 109

Глава 8. Понимание и использование DTD 111

Глава 9. Понимание и использование XML-схемы 135

Глава 10. Построение пользовательской XML-схемы 157

Глава 11. Изменение Существующая схема 173

Часть IV. Преобразование и обработка XML 195

Глава 12. Обработка преобразований с помощью XSL 197

Глава 13. Язык пути XML 215

Глава 15. Использование XML с веб-службами 247

Глава 16. XML и формы 259

Глава 17. Обслуживание данных: XML и базы данных 271

Глава 18. XML и RSS 285 9Глава 19. XML-инструменты и технологии 301

Загрузки

Примеры кода
Здесь вы найдете все примеры кода из глав.

Чтобы загрузить прилагаемые примеры кода, выполните следующие действия:

Нажмите, чтобы скачать XMLFD.zip.

Выберите место для сохранения файла на жестком диске.

После завершения загрузки запустите WinZip или другую программу, которая распаковывает zip-файлы и извлекает XMLFD.zip в выбранный вами каталог.

Скачать

Примечания

URL-адреса, упомянутые в книге

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

РЕДАКТОРЫ

Epic Editor:

http://www.arbortext.com/products/Support/html/register.asp?thepage=s (eval)

Turbo XML:

http://www.tibco .com/software/business_integration/turboxml.jsp

XMetaL Author:

http://www. xmetal.com/en_us/support/support/index.x

XML Pro:

http://www.vervet .com/order.php

XML-шпион:

http://www.altova.com/support_freexmlspyhome.asp

StyleVision:

http://www.altova.com/download_stylevision.html

ПАРСЕРЫ

AElfred:

http://saxon.sourceforge.net/aelfred.html

AElfred2: 9000/aelfred2: 9000/9000/AElfred2: 9000/

/www.gnu.org/software/classpathx/jaxp/apidoc/gnu/xml/aelfred2/package-summary.html

БРАУЗЕРЫ

Amaya:

http://www.w3.org/Amaya/

Mozilla :

http://www.mozilla.org

Firefox:

http://www.mozilla.org/products/firefox/

Opera:

http://www.opera.com

ПРЕОБРАЗОВАТЕЛИ

HTML Tidy:

http://tidy.sourceforge.net

HTML Kit:

http://www.chami.com

XPS:

http://www.softml.net/xps/index.html

GRAB BAG

Microsoft XML:

http://msdn.microsoft.com/xml

Веб-методы:

http://www. webmethods.com

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

Наслаждайтесь миллионами электронных книг, аудиокниг, журналов и многого другого с бесплатной пробной версией

Всего 10,99 евро в месяц после пробной версии. Отменить в любое время.

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

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

5/5

()

О книге ваши данные для различных целей

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

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

Пропустить карусель

LanguageEnglish

PublisherWiley

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

ISBN9781118085530

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

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

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

ГЛАВА 1

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

Bullet Ввод XML

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

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

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

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

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

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

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

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

Возможно, вы знакомы с H yper 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 Тип контента (художественная литература, документальная литература)

bullet Формат (мягкая обложка, твердый переплет)

bullet ISBN

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

Night Fall 9.0002 Demille, Nelson

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 могут добавлять разметку к тексту так же просто, как вы превращаете текст 90 327 в полужирный 90 330 в современных текстовых процессорах. Все XML-редакторы предоставляют возможность выделять текст с помощью курсора и выбирать, какую разметку вы хотите применить, из меню выбора. (см. главу 19

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

XML является подмножеством SGML, поэтому многие инструменты разработки и редакторы, ранее использовавшиеся для SGML, были переработаны и теперь готовы принять 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). 0328 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

XML For Dummies, 4-е издание

Выбранный тип: Мягкая обложка

Количество:

Печать по запросу

29,99 $

Люсинда Дайкс, Эд Титтел

ISBN: 978-0-764-58845-7 май 2005 г. 384 страницы

  • Электронная книга

    От 18 долларов США

  • Печать

    От 29,99 долл. США

Электронная книга com are delivered on the VitalSource platform. To download and read them, users must install the VitalSource Bookshelf Software.</li><li>E-books have DRM protection on them, which means only the person who purchases and downloads the e-book can access it.</li><li>E-books are non-returnable and non-refundable.</li><li>To learn more about our e-books, please refer to our&nbsp;<a href="https://www.wiley.com/wiley-ebooks" target="_blank">FAQ</a>.</li></ul>» data-original-title=»» title=»»/>

18,00 $

Мягкая обложка

29,99 $

Загрузить рекламный проспект

Загрузить рекламный проспект

Загрузить флаер продукта для загрузки PDF в новой вкладке. Это фиктивное описание. Загрузить флаер продукта — загрузить PDF в новой вкладке. Это фиктивное описание. Загрузить флаер продукта — загрузить PDF в новой вкладке. Это фиктивное описание. Загрузить флаер продукта — загрузить PDF в новой вкладке. Это фиктивное описание.

Описание

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

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

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

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

Об авторе

Люсинда Дайкс начала свою карьеру в высокотехнологичной области медицины, но оставила медицину, чтобы заняться технологиями и Интернетом. Она пишет код и разрабатывает веб-сайты с 19 лет.94, а также преподает и разрабатывает онлайн-курсы, в том числе курсы JavaScript для Международной ассоциации веб-мастеров/Гильдии писателей HTML на сайте www.eclasses.org.
Люсинда является автором, соавтором, редактором и соавтором многочисленных компьютерных книг; самые последние включают Dreamweaver MX 2004 Savvy (Sybex), XML для чайников (3-е издание, Wiley), Dreamweaver MX Fireworks MX Savvy (Sybex), XML-схем (Sybex) и Освоение XHTML (Sybex). Когда ей удается отойти от клавиатуры, другие интересы включают голографические технологии, научную фантастику и фильмы Болливуда.

Эд Титтел — ветеран компьютерной индустрии с 23-летним стажем. Проведя свои первые семь лет в написании кода для снаряжения, Эд переключился на более мягкую сторону бизнеса в качестве тренера и говорящей головы. Писатель-фрилансер с 1986 года, Эд написал сотни журнальных и веб-статей, а также работал над более чем 100 компьютерными книгами, в том числе многочисленными For Dummies заголовков по темам, включающим несколько версий Windows, NetWare, HTML, XHTML и XML.
Эд также является технологическим редактором Certification Magazine , пишет для многочисленных веб-сайтов TechTarget и пишет два раза в месяц информационный бюллетень «Must Know News» для CramSession.com. В свободное время Эд любит играть в бильярд, готовить и проводить время со своей женой Диной и сыном Грегори. Он также любит исследовать мир вдали от клавиатуры со своим верным лабрадором-ретривером Блэки. С Эдом можно связаться по адресу [email protected]

Разрешения

Запросить разрешение на повторное использование контента с этого сайта

Содержание

Введение 1

Часть I. Основы XML 9

Глава 1. Знакомство с XML 11

Глава 2. Использование XML для многих целей 23 Искусство таксономии 33

Часть II: XML и Интернет 45

Глава 4. Добавление XHTML для Интернета 47

Глава 5. Составление XML-файла 65

Глава 6. Добавление символов в XML 83

Глава 7. Обработка форматирования с помощью CSS 95

Часть

III. Построение проверки с помощью DTD и схем 109

Глава 8. Понимание и использование DTD 111

Глава 9. Понимание и использование XML-схемы 135

Глава 10. Построение пользовательской XML-схемы 157

Глава 11. Изменение Существующая схема 173

Часть IV. Преобразование и обработка XML 195

Глава 12. Обработка преобразований с помощью XSL 197

Глава 13. Язык пути XML 215

Глава 15. Использование XML с веб-службами 247

Глава 16. XML и формы 259

Глава 17. Обслуживание данных: XML и базы данных 271

Глава 18. XML и RSS 285 9Глава 19. XML-инструменты и технологии 301

Загрузки

Примеры кода
Здесь вы найдете все примеры кода из глав.

Чтобы загрузить прилагаемые примеры кода, выполните следующие действия:

Нажмите, чтобы скачать XMLFD.zip.

Выберите место для сохранения файла на жестком диске.

После завершения загрузки запустите WinZip или другую программу, которая распаковывает zip-файлы и извлекает XMLFD.zip в выбранный вами каталог.

Скачать

Примечания

URL-адреса, упомянутые в книге

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