Половина стандарта лучше, чем его отсутствие
Стандарты и спецификации
Выбор XML в качестве основания для формата вашего файла — это только один шаг к портативности, а не весь путь.
Питер Сибах
Опубликовано 07.03.2007
Серия контента:
Этот контент является частью # из серии # статей: Стандарты и спецификации
https://www.ibm.com/developerworks/ru/views/global/libraryview.jsp?series_title_by=Стандарты+и+спецификации
Следите за выходом новых статей этой серии.
Этот контент является частью серии:Стандарты и спецификации
XML: Половина стандарта лучше, чем его отсутствие
Стандарт Расширяемого Языка Разметки (XML) задает формат данных, но вопрос о том, какие данные следует сохранять, оставляет совершенно открытым. Формат хранения данных весьма гибок, предусматривая отображение произвольно сложных типов данных.
С точки зрения программиста, спецификации, объясняющей программе, что происходит в XML файле, вполне достаточно, чтобы можно было его проанализировать и подтвердить или не подтвердить его правильность, вполне последовательно и надежно. Однако это не дает гарантии понятности. Зная, что XML файл корректный, не обязательно означает, что определенная программа поймет его. Даже подтверждение, что XML файл содержит определенный тип данных, не обязательно поможет вам написать программу, интерпретирующую эти данные. В конце концов, это не является целью XML!
Стандарт XML во многом похож на спецификацию YACC (генератор синтаксических анализаторов) — программу, которая определяет формат для выражения основных правил, а затем создает анализатор для этих правил. XML файлы могут иметь семантику практически настолько же отличную друг от друга, насколько отличны друг от друга различные языки программирования, разработанные при помощи YACC. Фактически XML это не формат файлов, а платформа для написания форматов.
Это создает интересную разновидность полустандарта. Стандарт XML настолько широк и применим практически для всего, и вполне вероятно, что средства для разработки XML совместимы, однако нет повода ожидать, что все данные, фактически сохраненные в XML файлах, будут совместимы со всем, чем угодно. Циники утверждают, что первичная цель XML — позволить совершенно внутренним данным претендовать на совместимость со стандартом.
XML, SGML и HTML
Спецификация Стандартного Языка Обобщенной Разметки — SGML (ISO 8879:1986) предусматривает создание новых языков разметки. Он чрезвычайно гибок и достаточно сложен. Стандарт XML — это один из таких языков разметки, сам по себе предусматривающий расширяемость; XML является подмножеством SGML и нацелен на производство подмножества языков, которые будет проще согласованно и эффективно анализировать.
HTML — это еще один язык SGML, он оказал некоторое влияние на развитие XML, будучи одним из самых широко используемых и отображаемых языков SGML. Многие люди используют языки, основанные на XML, которые достаточно похожи на HTML, чтобы ввести в заблуждение случайного читателя. (Например, оригинал этого документа сделан в XML формате, который использует тэги <p> и другую разметку, неотличимую от HTML.)
Дополнительные ограничения, наложенные XML, упрощают разработку, не препятствуя созданию гибких описаний документа. XML документы могут быть использованы для всего, начиная от документации для офисного программного обеспечения и заканчивая системным администрированием. Например, Mac OS X использует XML, чтобы замещать старый текстовый формат на файлы «списка свойств», используемые для системных предпочтений и конфигурации. С гибкостью, которая сделала SGML интересным, все в порядке и в XML.
Спецификации XML
Спецификация SGML определенного языка разметки называется Описание Типа Документа, или DTD. Например, спецификация HTML существует как группа SGML DTD, каждое из которых определяет, что именно является или не является допустимым в данной разновидности HTML. Спецификация XML позволяет пользователям создавать свои собственные DTD, с некоторыми ограничениями. Однако различным XML документам не требуется иметь каких-либо общих элементов.
Это поднимает вопрос о различии между корректным XML и допустимым XML. Документ, который подчиняется сугубо синтаксическим требованиям (компоновка знаков больше и меньше и использование сущностей (entities)) XML, корректный вне зависимости от содержащихся в нем сущностей или элементов. «Корректность» не зависит от отдельного DTD, это особенность, которую XML документ может иметь без ссылки на DTD, или даже если документ нарушает данный DTD. Документ, который соответствует описаниям элементов конкретного DTD, называется «допустимым».
Допустимый XML может, в принципе, быть использован определенным приложением, которое владеет данным DTD. Знание того, что файл XML корректный, не столь полезно; это гораздо точнее, чем сказать: «формат наших данных — ASCII», но сталкивается с теми же принципиальными ограничениями. Однако даже допустимый XML файл может быть написан для DTD, который может быть недоступен для пользователей, делая его совершенно бесполезным. Мог бы существовать DTD, под которым следующий элемент XML был бы допустимым:
<zz><y/><x>183af892</x><w/></zz>
Спецификации XML сейчас не всегда выражаются через DTD; Microsoft® предложил новый способ выражения тех же типов понятий, называемый XML Схемами. XML Схема стала стандартом W3C в 2001 году. Сами XML Схемы написаны в XML и предназначены, чтобы разобраться с некоторыми проблемами, которые люди имели с традиционными DTD. Возможно, наиболее значительным является больший простор для определения типов данных и семантического содержания. Например, заданные «даты», которые предписывают порядок таких компонентов, как год месяц и день. XML Схемы дают больше семантического содержания, чем традиционные DTD, помогая заполнить пробел между «допустимым» и «понятным». Они также могут определить дальнейшие ограничения на содержание, такие как приемлемый диапазон для числовых значений.
Так стандарт это или нет?
XML это стандарт. Однако это не означает, что «XML файлы » являются стандартом в том смысле, в котором люди обычно думают о стандарте. Если у вас есть две программы, которые обрабатывают «JPEG файлы», вы в большой степени можете предположить, что их файлы взаимозаменяемы. Для XML это не выполняется. Эта проблема всегда существовала для гибких форматов файлов. Например, очень популярный формат файлов «значения, разделенные запятыми» (SCV), используемый дюжинами электронных таблиц и баз данных, кажется достаточно мобильным. Но что вы можете поместить в колонки? Для таблицы, скажем, имен и адресов, формат SCV достаточно портативен. Но как только вы начинаете включать сюда вычисления, форматы начинают резко расходиться; некоторые электронные таблицы могут экспортировать вычисленные значения, другие могут экспортировать формулы в определенном формате. Механистическое описание формата данных не дает полной картины о представлении данных.
Это серьезная проблема, возникающая с «XML файлами». Просто знание, что что-то является каким-то XML, немного скажет вам о совместимости. Две электронные таблицы, сохраняющие свои данные «как XML», могут не иметь ничего общего в форматах сохранения данных. (Постоянные читатели могут вспомнить ту же проблему, возникающую с IFF файлами — см. Ресурсы.)
В некоторых случаях, существуют стандарты для определенных XML форматов. Два или более производителя могут согласиться на определенный XML DTD (или, как теперь принято, Схему) и прекрасно общаться. Однако, если все вы знаете, что они оба используют «XML,», вы никак не можете узнать, используют ли они общую схему. Ясно, что установление этого жизненно важно.
Вы можете написать плохую программу на любом языке
Одна из вещей, которые большинство программистов со временем усваивают, это что ни один язык, каким бы замечательным он ни был, не может предотвратить написание плохой программы. Некоторые проповедники склоняются к тому, чтобы изображать XML как разрешающий все проблемы относительно формата данных, которые досаждали нам веками. Он их не решает. Я не думаю, что было бы честно обвинять XML за ужасные вещи, созданные с его помощью, но важно понимать, что XML не заменяет процесс разработки.
Мой любимый пример этого — XML файл, на который я случайно наткнулся в конфигурации для стратегической игры. С ранних дней компьютерных стратегических игр многие разработчики предпочли сделать многие параметры подстраиваемыми. (Фактически, первая игра с подстраиваемыми установками, которую я увидел, была Космические Захватчики (Space Invaders) — аналог Heathkit H89 — см. Ресурсы.) Вскоре, они бы просто определили формат файла и позволили вам бездельничать; любая опечатка, конечно, развалит всю программу.
Введите XML. Это тот вид проблем, которые XML призван решать. Достаточно хорошей XML Схемы, и вы сможете сделать нечто подобное:
<team> <name>Editors</name> <bonuses> <economic>20</economic> </bonuses> </team> <team> <name>Critics</name> <bonuses> <military>20</military> </bonuses> </team>
Какие бы из возможных подстраиваемых параметров ни были включены одним и тем же способом для каждой группы, новые группы смогут быть добавлены с небольшим усилием. Фактически, по крайней мере, одна игра реализовала тип системы, идентичный приведенному выше, однако, другие разработчики игр пошли в прямо противоположном направлении. Вместо того чтобы рассматривать обобщенную спецификацию бонусов, они решили, что каждая команда будет иметь свой бонус и создали XML словарь, в котором бонус каждой команды был определен отдельно. Вышеприведенный пример был бы записан как:
<editor_economic_bonus>20</editor_economic_bonus> <critic_military_bonus>20</critic_military_bonus>
Вы не смогли бы добавить новые бонусы, или отбросить существующие (хотя вы могли бы установить их на нулевом уровне). Вы не могли бы добавить критикам экономические бонусы (не знаю, зачем бы это могло кому-нибудь понадобиться). Через широкий набор исключительно своеобразных модификаций и подстроек, каждая была закреплена, так что единственная вещь, оставшаяся в файле переменной, это точная величина конкретного бонуса.
Используемый таким образом, XML служит только для искусственного вздутия показателей сжатия. Это более не расширяемый или хотя бы расширенный формат. Это просто очень сложный способ сказать, что что-то никак не может быть изменено. Такие вещи могут случиться из-за того, что кому-то слишком поздно в процессе разработки сказали, что конфигурация обязательно должна «использовать XML».
Возможно, это самое слабое место XML как спецификации. Так как он настолько обобщен, множество плохого XML производится во имя моды. Простой факт, что что-то является XML, не означает, что оно действительно расширяемое или портативное, и позволять модным словам замещать собой серьезный анализ проекта — это сумасшествие.
На некоторых языках вы можете писать хорошие программы
Несмотря на то, что плохую программу можно написать на любом языке, некоторые языки, кажется, действительно поощряют написание хороших программ. Я долго относился скептически к возможности XML это сделать; XML DocBook — прекрасный язык, но я прекрасно себя чувствовал и с SGML DocBook. Однако, недавний пример убедил меня, что у XML есть потенциал, чтобы осчастливить множество людей.
Этот пример — это формат XML «список свойств», разработанный Apple. Списки свойств — это продуманный пример использования XML. Они предоставляют довольно обобщенный способ хранения данных о предметах. Списки свойств широко используются в Mac OS X для выражения предпочтений и других данных. Каждое приложение может определять точный набор искомых ключей в списке свойств, но общий формат предусматривает ряд преимуществ; например, для сохранения одного свойства в списке свойств достаточно единственной строки Objective-C. В качестве интересного примера можно привести launchd производства Apple (замена классическим программам запуска init, cron и inetd производства UNIX®), который использует списки свойств для описания заданий, со страницей руководства (man page), описывающей конкретные пары ключ/значение, которые она поддерживает.
До недавнего времени, Apple была единственной организацией, использующей этот формат. Однако, в апреле 2006 NetBSD приобрела библиотеку для чтения и написания списков свойств. В интересах эффективности библиотека читает и пишет только достаточное подмножество полного XML для управления списками свойств; она не является полным синтаксическим анализатором XML. Что касается этого способа записи, две реализации не являются полностью совместимыми; однако, стандарт с двумя совершенно независимыми реализациями — это очень полезная вещь.
Правильно используемый, XML способствует использованию абстрактных данных и ясному семантическому маркированию сохраненных данных. Даже нечто настолько простое, как серия пар ключ/значение, выигрывает от согласованной спецификации относительно способа их хранения и упорядочивания. Упорядоченная форма XML может быть использована как способ обмена информацией или ее хранения.
Так стандарт это или нет?
Да. По большей части. Неразбериха, создаваемая людьми, говорящими об «XML» так, как будто достаточно сделать что-то в XML, чтобы оно немедленно стало понятным и портативным для всех программ, в которых «есть XML», является серьезной проблемой, но она не является дефектом спецификации. Модное слово имеет тенденцию использоваться там, где оно на самом деле не подходит. Люди думают об XML как о формате высокоуровневого структурирования данных. В известном смысле это так, но если быть боле точным, это платформа, на которой могут быть построены отдельные структурированные форматы данных. XML предоставляет инструменты, которые вы можете использовать для построения структурированных форматов данных. Те же самые инструменты могут быть использованы для производства невыносимых кошмаров и файлов с данными, которые с тем же успехом могут иметь формат только для записи.
Таким образом, если вы хотите знать, означает ли, если файл имеет формат «XML», что вы с большой вероятностью сможете извлечь из него данные, ответ, вероятно, будет отрицательным, но ваши шансы могут быть выше, чем в случае совершенно частного формата. С другой стороны, это шаг, приближающий вас к портативности и открытости, и он служит хорошей платформой. Во введении, я указал, что XML фактически не является форматом файлов, он является платформой для написания форматов. Большинство проблем, которые люди имеют с XML, являются результатом дефектов не в стандарте, а в ожиданиях пользователей — они думают, что это формат данных, и что достаточно указать, что нечто должно использовать XML достаточно, чтобы гарантировать портативность данных.
<bytes>ff ff 00 03 [. . .]</bytes>
Конечно, кто-то, может быть, его использует. На самом деле, существуют действительно выдающиеся приложения, в которых механизм хранения равнозначен приведенному выше.
Выбор выразительных имен и отображений для сохраненных данных остается важным, и XML не снимает с вас эту ответственность. Что он делает — так это дает вам инструменты, облегчающие вам создание хорошей программы с меньшими затратами времени на разработку. Используйте их правильно.
Ресурсы для скачивания
Похожие темы
Подпишите меня на уведомления к комментариям
www.ibm.com
Основы XML — разметка и структура XML документов
В данной статье мы начинаем изучение языка XML и подробно рассмотрим такие моменты, как разметка и структура XML-документа. Данная информация есть базовой в изучении XML, поэтому рекомендую тщательно проработать этот материал, чтобы не оставалось никаких вопросов. От этого зависит ваш успех в будущем и скорость изучения как самого XML, так и XSLT, который мы будем изучать сразу после освоения XML.
Итак, XML (eXtensible Markup Language) – это язык для текстового выражения информации в стандартном виде. Сам по себе он не имеет операторов и не выполняет никаких вычислений. Таким образом, XML – это метаязык, главной задачей которого есть описание новых языков документа.
Чтобы лучше понять суть вышесказанного, давайте перейдем непосредственно к примерам и первым делом рассмотрим разметку XML-документов.
Разметка XML документов
Разметка XML-документа практически ничем не отличается от разметки обычного HTML-документа (Как создать HTML страницу. HTML теги и атрибуты. Работа с текстом, списками и изображениями в HTML). Одним из преимуществ XML являет то, что он позволяет создавать неограниченное количество тегов. Таким образом, каждый тег имеет свою семантику, то есть несет определенный смысл. Для наглядности давайте рассмотрим XML-документ со списком книг.
<books> <book> <author>Автор 1</author> <name>Название 1</name> <price>Цена 1</price> </book> <book> <author>Автор 2</author> <name>Название 2</name> <price>Цена 2</price> </book> <book> <author>Автор 3</author> <name>Название 3</name> <price>Цена 3</price> </book> </books>
Как видно с примера выше, все очень банально и просто. При этом XML-документ несет куда более подробную информацию по сравнению с обычным HTML-документом. В нашем примере очень просто понять, что тег <author> отвечает за автора книги, тег <name> — за название, тег <price> — за цену и т.д. Таким образом, каждый тег имеет свой смысл.
Одной из самых важных особенностей XML-документов является то, что их можно легко обрабатывать программно. Например, обработав пример вышеприведенного текста, можно с легкостью получить нужную информацию по книгам, вывести цены на книги по их названиям и т.д. При этом полностью сохраняется возможность визуального представления документа. Для этого достаточно лишь определить, как будет выглядеть тот или иной элемент.
Таким образом, XML позволяет отделять данные от их представления и создавать в текстовом виде документы со структурой, указанной явным образом. Если быть точным, то только лишь за счет расширения количества тегов мы сделали следующее:
- Явным образом выделили в XML-документе структуру, что в свою очередь сделало возможным дальнейшую программную обработку документа, например, при помощи технологии XSLT, которую мы будем изучать чуть позже. При этом одной из главных особенностей является то, что данный документ по прежнему остается понятным обычному человеку.
- Отделили данные в XML-документе от того, каким образом они должны быть представлены визуально. Это в свою очередь дало широкие возможности для публикации данных на разных носителях, например, на бумаге или в сети интернет.
Подводя итог вышесказанному, можно сделать вывод, что синтаксически в XML практически нет ничего нового по сравнению с HTML. XML является таким же текстом, размеченным тегами. Единственная разница лишь в том, что XML позволяет создавать любую разметку, которая может понадобиться для описания документа, при том как в HTML существует лишь ограниченный набор тегов, которые можно использовать.
Одним словом, XML является очень простым языком с небольшим набором основных конструкций, но в то же время он предоставляет неограниченные возможности для описания данных. Таким образом, каждый разработчик как бы сам изобретает свой собственный язык, который ограничивается лишь фантазией самого разработчика.
Структура XML документов
Для того чтобы представить структуру XML документов давайте рассмотрим самый простой пример документа XML.
<?xml version="1.0" encoding="utf-8"?>
<pricelist>
<book>
<title>Книга 1</title>
<author>Автор 1</author>
<price>Цена 1</price>
</book>
<book>
<title>Книга 2</title>
<author>Автор 2</author>
<price>Цена 2</price>
</book>
<book>
<title>Книга 3</title>
<author>Автор 3</author>
<price>Цена 3</price>
</book>
</pricelist>
Итак, мы видим, что данный пример практически ничем не отличается от предыдущего за исключением немного изменившихся тегов и нескольких атрибутов. Главное отличие здесь заключается в первой строчке, которая определяет файл как XML документ, построенный в соответствии с первой версией языка. Более подробно об этом мы поговорим в следующих статьях рубрики «Уроки XML и XSLT».
На данный момент нам важнее всего понять, что это очень простой язык, который очень похож на обычный HTML. В примере выше мы видим, что XML тоже имеет теги, которые могут быть вложенными, то есть содержать внутри себя другие теги. При этом теги в XML не просто ограничивают часть текста, а формируют отдельный элемент. Исходя из этого, то, что выделено тегами, в XML принято называть элементами.
Стоит также заметить, что в XML есть также атрибуты, комментарии и множество других элементов и конструкций. К сожалению одной статьи недостаточно для того чтобы обо всем подробно написать, поэтому будут написаны отдельные статьи по каждой теме. Если вы не хотите их пропустить, то рекомендую подписаться на новостную рассылку любым удобным для вас способом в пункте «Подписка» либо воспользоваться формой ниже.
На этом все. Удачи вам и успехов в изучении основ XML.
Обнаружили ошибку? Выделите ее и нажмите Ctrl+Enter
archive.dmitriydenisov.com
что это такое и как его открыть?
Достаточно часто многие пользователи современных компьютерных систем и программных продуктов разного типа сталкиваются с файлами, имеющими расширение .xml. Многие просто не представляют себе, что это за документ, как его открыть. Сейчас будет рассмотрено, как открыть файл XML-формата. Заодно выясним, что же он собой представляет и для чего нужен.
Что представляет собой файл XML
Начнем, пожалуй, с того, что, с точки зрения современных компьютерных технологий и программ, используемых для создания документов такого типа, формат XML представляет собой текстовый файл, в котором прописаны команды универсального расширяемого языка (Extensible Markup Language), который достаточно сильно напоминает известное средство разметки HTML.
Как правило, файл XML содержит общую информацию о каком-либо объекте, которая выражена описательными средствами (об этом несколько позже). Что же касается данных, хранимых в таких контейнерах, это могут быть базы данных, часто используемые для каталогов видео и аудио в Интернете, сохраненные пользовательские настройки программ и приложений, а также веб-страницы целиком.
В качестве примера можно взять, скажем, аудио-альбом какого-то исполнителя. Файл XML включает в себя информацию о годе выпуска, жанре, количестве и названиях треков, популярности и т. д. Правда, при посещении ресурсов во Всемирной паутине серферу не нужно задумываться о физическом открытии такого информационного файла, поскольку даже при воспроизведении песни онлайн в проигрывателе будут отображаться все данные по типу тех, которые содержатся в стандартных MP3-файлах в виде ID3-тегов. Информация как бы подгружается к воспроизводимому треку.
Вид XML-файла
Если посмотреть на вид файла, можно сразу заметить, что в нем свойства любого объекта описаны при помощи тегов и атрибутов, которые задаются вручную.
Об основных командах самого языка речь сейчас не идет, поскольку рядовому юзеру такие сведения и не нужны. Единственное, что можно отметить, так это только то, что определенного количества используемых для описания объекта элементов в данном формате не существует: сколько нужно, столько и задается.
Чем открыть стандартный XML-формат
Теперь посмотрим, как открыть файл XML. Как уже, наверное, многие поняли, это файл текстовый, а значит, проще всего использовать для его просмотра или редактирования любой, пусть даже самый примитивный редактор. Да хоть тот же «Блокнот» из стандартного набора Windows.
Однако здесь не все так просто. Дело в том, что по двойному клику файл без задания соответствующей ассоциации с какой-либо программой не откроется. В лучшем случае система предложит список наиболее подходящих приложений. Можно выбрать программу по своему усмотрению, а заодно поставить галочку напротив пункта постоянного использования выбранного приложения для всех файлов такого типа.
Можно поступить иначе, используя правый клик на файле с последующим выбором команды «Открыть с помощью…», после чего, опять же, выбрать нужное приложение либо из списка, либо указать местоположение основного исполняемого компонента (чаще всего это файл EXE).
Третий способ, позволяющий открыть файл XML, состоит в начальном запуске программы, а затем в использовании меню открытия файла (в большинстве случаев это сочетание Ctrl + O). При этом совершенно необязательно использовать «Блокнот». Пожалуйста, файл открывается без всяких проблем в том же приложении Word и ему подобных. Даже «майкрософтовский» Excel способен открывать данные такого формата.
Впрочем, если возникает необходимость редактирования XML-формата, тогда лучше применять профессиональные утилиты с поддержкой языкового синтаксиса, например, Oxygen XML Editor, XML Marker или EditiX Lite Version. Естественно, это далеко не все утилиты, способные работать с языком файла на высшем уровне. Сегодня таких программ можно найти очень много.
Теперь несколько слов о том, почему иногда появляется ошибка XML-файла при открытии. Чаще всего это связано с нарушением целостности самого файла, а также с некорректным введением описательных атрибутов или тегов. Кроме того, в Excel существует ограничение по лимиту отображаемых строк, так что в этом случае данные при открытии могут быть неполными.
Возможные ошибки при открытии XML-файла в виде вложения электронной почты
Иногда ошибки могут появляться, когда производится попытка открытия файла, являющегося вложением электронного сообщения. Чащу всего это относится к стандартным почтовым клиентам вроде Outlook Express.
Дело в том, что сначала вложение сохраняется в виде временных данных (очень часто с добавлением к основному расширению дополнительного .tmp), и обращение производится именно к нему.
Чтобы избежать такой ситуации, достаточно просто изначально сохранить вложение в оригинальном формате в любое удобное место на диске или на съемном носителе, после чего использовать описанные выше стандартные методы.
Вместо итога
Как видим, ничего сложного в понимании структуры и способов открытия файлов такого формата нет. Здесь, правда, принципиально не рассматривался вопрос создания XML-данных, поскольку для полного понимания процесса нужно знать хотя бы азы самого языка. В остальном же, думается, сложностей с файлами такого формата у пользователей не возникнет.
fb.ru
Правила синтаксиса 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>если жалование < 1000</message>
В XML существует 5 предопределенных сущностей:
Сущность | Символ | Значение |
---|---|---|
< | < | меньше, чем |
> | > | больше, чем |
& | & | амперсанд |
' | ‘ | апостроф |
" | « | кавычки |
Замечание: Только символы «<» и «&» строго запрещены в XML. Символ «>» допустим, но лучше его всегда заменять на сущность.
Комментарии в XML
Синтаксис комментариев в XML такой же, как и в HTML.
<!-- Это комментарий -->
Использование двух символов тире в середине комментария не допустимо.
Неверно:
<!-- Это -- комментарий -->
Странно, но так можно:
<!-- Это - - комментарий -->
В XML пробелы сохраняются
В HTML несколько последовательных пробельных символов усекаются до одного. В XML документе все пробельные символы сохраняются.
В XML новая строка сохраняется как LF
В приложениях Windows новая строка хранится в следующем виде: символ перевода каретки и символ новой строки (CR+LF).
Unix и Mac OSX используют LF.
Старые Mac системы используют CR.
XML сохраняет новую строку как LF.
Синтаксически верный XML документ
Если XML документ составлен в соответствии с приведенными синтаксическими правилами, то говорят, что это «синтаксически верный» XML документ.
msiter.ru
Пример XML схемы
В этой главе будет показано, как писать XML схемы. Также вы узнаете, что схемы можно писать разными способами.
XML документ
Давайте посмотрим на следующий XML документ под названием «shiporder.xml»:
<?xml version="1.0" encoding="UTF-8"?>
<shiporder orderid="889923"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="shiporder.xsd">
<orderperson>John Smith</orderperson>
<shipto>
<name>Ola Nordmann</name>
<address>Langgt 23</address>
<city>4000 Stavanger</city>
<country>Norway</country>
</shipto>
<item>
<title>Empire Burlesque</title>
<note>Special Edition</note>
<quantity>1</quantity>
<price>10.90</price>
</item>
<item>
<title>Hide your heart</title>
<quantity>1</quantity>
<price>9.90</price>
</item>
</shiporder>
Приведенный выше XML документ состоит из корневого элемента shiporder с обязательным атрибутом orderid. Элемент shiporder содержит три дочерних элемента: orderperson, shipto и item. Элемент item используется дважды и содержит элемент title, необязательный элемент note, а также элементы quantity и price.
Строка xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance» говорит XML парсеру, что этот документ должен быть проверен на соответствие схеме. Строка xsi:noNamespaceSchemaLocation=»shiporder.xsd» указывает, где именно находится схема (в данном случае она находится в той же папке, что и файл «shiporder.xml»).
Создание XML схемы
Теперь для приведенного выше XML документа создадим XML схему.
Создадим новый файл, который назовем «shiporder.xsd». Для создания XML схемы будем просто следовать за структурой XML документа и определять каждый встреченный элемент. Начнем со стандартной XML декларации, за которой опишем элемент xs:schema, который и определяет саму схему:
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
...
</xs:schema>
Здесь мы используем стандартное пространство имен (xs) и URI, ассоциированный с этим пространством имен, который имеет стандартное значение http://www.w3.org/2001/XMLSchema.
Теперь мы должны определить элемент shiporder. У этого элемента есть атрибут, и он содержит другие элементы, поэтому мы рассматриваем его как элемент составного типа. Определения дочерних элементов элемента shiporder поместим в декларацию xs:sequence, что задает жесткую последовательность подэлементов:
<xs:element name="shiporder">
<xs:complexType>
<xs:sequence>
...
</xs:sequence>
</xs:complexType>
</xs:element>
Теперь определим элемент orderperson, который будет простого типа (так как он не содержит ни атрибуты, ни другие элементы). Его тип (xs:string) имеет префикс пространства имен, ассоциированного с XML схемой, что указывает на использование предопределенного типа данных:
<xs:element name="orderperson" type="xs:string"/>
Теперь нам нужно определить два элемента составного типа: shipto и item. Начнем с определения элемента shipto:
<xs:element name="shipto">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
При помощи схем мы можем определить число возможных вхождений любого элемента. В этом нам помогут атрибуты maxOccurs и minOccurs. Атрибут maxOccurs задает максимальное число вхождений элемента, а атрибут minOccurs задает минимальное число вхождений. По умолчанию значение обоих атрибутов равно 1.
Теперь определим элемент item. Этот элемент может использоваться неограниченное число раз внутри элемента shiporder. Определить такую особенность элемента item позволяет присваивание атрибуту maxOccurs значения «unbounded». Это означает, что элемент item может использоваться столько раз, сколько нужно автору документа. Обратите внимание, что элемент note опционален. Определим это установив атрибут minOccurs в нулевое значение:
<xs:element name="item" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="note" type="xs:string" minOccurs="0"/>
<xs:element name="quantity" type="xs:positiveInteger"/>
<xs:element name="price" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Теперь мы можем декларировать атрибут элемента shiporder. Поскольку это обязательный атрибут, используем определение use=»required».
Примечание: Атрибуты должны всегда декларироваться последними:
<xs:attribute name="orderid" type="xs:string" use="required"/>
Вот полный код файла схемы «shiporder.xsd»:
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="shiporder">
<xs:complexType>
<xs:sequence>
<xs:element name="orderperson" type="xs:string"/>
<xs:element name="shipto">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="item" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="note" type="xs:string" minOccurs="0"/>
<xs:element name="quantity" type="xs:positiveInteger"/>
<xs:element name="price" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="orderid" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
Разделение схемы
Предыдущий способ компоновки схемы весьма прост, однако, когда документ достаточно сложен, при подобном способе соответствующая схем может оказаться довольно громоздкой, что сильно скажется на удобстве ее чтения и обслуживания.
Следующий способ компоновки схемы заключается в том, что сначала определяются все элементы и атрибуты, а затем на эти определения создаются ссылки при помощи атрибута ref.
Ниже приводится новая компоновка файла схемы («shiporder.xsd»):
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- определение простых элементов -->
<xs:element name="orderperson" type="xs:string"/>
<xs:element name="name" type="xs:string"/>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
<xs:element name="title" type="xs:string"/>
<xs:element name="note" type="xs:string"/>
<xs:element name="quantity" type="xs:positiveInteger"/>
<xs:element name="price" type="xs:decimal"/>
<!-- определение атрибутов -->
<xs:attribute name="orderid" type="xs:string"/>
<!-- определение составных элементов -->
<xs:element name="shipto">
<xs:complexType>
<xs:sequence>
<xs:element ref="name"/>
<xs:element ref="address"/>
<xs:element ref="city"/>
<xs:element ref="country"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="item">
<xs:complexType>
<xs:sequence>
<xs:element ref="title"/>
<xs:element ref="note" minOccurs="0"/>
<xs:element ref="quantity"/>
<xs:element ref="price"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="shiporder">
<xs:complexType>
<xs:sequence>
<xs:element ref="orderperson"/>
<xs:element ref="shipto"/>
<xs:element ref="item" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="orderid" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
Использование поименованых типов
Третий способ компоновки схемы предполагает определение классов или типов, которые позволяют повторное использование определений элементов. Это становится возможным, если дать имена элементам simpleTypes и complexTypes, а затем указать на них при помощи атрибута type.
Третий способ компоновки файла схемы («shiporder.xsd»):
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="stringtype">
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:simpleType name="inttype">
<xs:restriction base="xs:positiveInteger"/>
</xs:simpleType>
<xs:simpleType name="dectype">
<xs:restriction base="xs:decimal"/>
</xs:simpleType>
<xs:simpleType name="orderidtype">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{6}"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="shiptotype">
<xs:sequence>
<xs:element name="name" type="stringtype"/>
<xs:element name="address" type="stringtype"/>
<xs:element name="city" type="stringtype"/>
<xs:element name="country" type="stringtype"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="itemtype">
<xs:sequence>
<xs:element name="title" type="stringtype"/>
<xs:element name="note" type="stringtype" minOccurs="0"/>
<xs:element name="quantity" type="inttype"/>
<xs:element name="price" type="dectype"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="shipordertype">
<xs:sequence>
<xs:element name="orderperson" type="stringtype"/>
<xs:element name="shipto" type="shiptotype"/>
<xs:element name="item" maxOccurs="unbounded" type="itemtype"/>
</xs:sequence>
<xs:attribute name="orderid" type="orderidtype" use="required"/>
</xs:complexType>
<xs:element name="shiporder" type="shipordertype"/>
</xs:schema>
Элемент restriction указывает на то, что тип данных является производным от типов данных из пространства имен W3C XML Schema. Таким образом, следующий фрагмент кода означает, что значение элемента или атрибута должно быть строковым:
<xs:restriction base="xs:string">
Однако гораздо чаще элемент restriction используется для накладывания ограничений на элементы. Посмотрите на следующие строки из приведенной выше схемы:
<xs:simpleType name="orderidtype">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{6}"/>
</xs:restriction>
</xs:simpleType>
Этот фрагмент кода указывает, что значение элемента или атрибута должно быть строковым, ровно шесть символов в длину, и этими символами должны быть цифры от 0 до 9.
msiter.ru
XML Формат
Здравствуйте уважаемые посетители сайта okITgo.ru. Данная статья является вступительной в рубрике статей, посвященных XML формату. Аббревиатура XML расшифровывается как eXtensible Markup Language – Расширяемый Язык Разметки. XML спроектирован для передачи и хранения данных. Формат XML полезно знать в индустрии веб программирования и других отраслях разработки приложений, задействованных в передаче и хранении информации. Тем более, что разобраться с этим языком разметки довольно просто.
Пример XML Форматированного Документа
|
Введение в XML Форматирование
Итак, XML является языком разметки, это его роднит с языком HTML, основное же отличие в функциональном назначении этих языков:
XML формат спроектирован для передачи и хранения данных.
HTML создан для отображения данных.
Что Вы Уже Должны Знать
Прежде чем продолжить чтение статей, посвященных XML, вы должны иметь базовое представление в:
- HTML – языке разметки гипертекста
- JavaScript – клиентском языке скриптов
Если вы хотите подробнее ознакомиться с этими языками, вы найдете исчерпывающие сведения на посвященных данным темам сайтах Уроки HTML и Уроки JavaScript.
Что такое XML формат?
- XML означает EXtensible Markup Language – Расширяемый Язык Разметки
- XML является языком разметки во многом похожим на HTML
- XML был спроектирован для передачи данных, но не для их отображения, в отличие от HTML
- XML теги не предопределены (еще одно отличие от языка разметки гипертекста). Вы должны сами определять ваши собственные теги
- XML спроектирован как самодокументированный (описывающий сам себя) язык
- XML формат является рекомендацией всемирного интернет консорциума (W3C)
Разница между XML и HTML форматированием
XML не является заменой языку HTML.
XML и HTML преследуют различные цели:
- XML формат был спроектирован для передачи и хранения данных, с акцентом на самих данных и том, чем они являются
- HTML был создан для отображения данных, с акцентом на том, как данные выглядят
HTML связан с отображением информации, тогда как XML отвечает за передачу инофрмации от источника получателю.
XML Ничего Не Делает Сам По Себе
Может быть, это немного трудно для понимания, но XML не делает что-либо. Формат XML создан для структурирования, хранения и транспортировки информации.
Следующий пример демонстрирует записку Васе от Светы, сохраненную в XML формате:
<note><to>Вася</to> <from>Света</from> <heading>Напоминание</heading> <body>Не забудь мне позвонить вечером!</body> </note> |
Записка выше полностью описывает сама себя. Она имеет информацию об отправителе и получателе, также она имеет заголовок и тело сообщения.
Но по-прежнему этот XML документ ничего НЕ делает. Это просто информация, упакованная в теги. Чтобы ее отправлять, получать или отображать, необходимо написать специальное приложение, предназначенное для этого
При XML Форматировании Вы Изобретаете Ваши Собственные Теги
Теги в примере выше (например, <to> и <from>) не определены в каком-либо стандарте XML. Эти теги “изобретены” автором XML документа.
Поэтому формат XML не имеет предопределенных тегов.
Теги, используемые в HTML предопределены. HTML документы могут использовать только теги, определенные в стандарте HTML (например, <p>, <h2>, и т.д.).
XML позволяет автору определять свои собственные теги и свою собственную структуру документа.
XML не является заменой для HTML
XML это дополнение к HTML.
Важно понимать, что XML НЕ заменяет HTML. В большинстве веб приложений XML формат используется для транспортировки данных, тогда как HTML используется для форматирования и отображения данных.
Наилучшим образом охарактеризовать XML можно, наверное, так:
XML – это программно- и аппаратно-независимый инструмент для переноса информации.
XML формат является рекомендацией W3C (Всемирного Интернет Консорциума)
XML стал рекомендацией W3C в 10 февраля 1998 г.
XML Можно Встретить Практически Везде
XML сейчас также важен для Интернета, как HTML был важен для зарождения всемирной паутины.
XML формат является наиболее распространенным инструментом для передачи данных между всеми разновидностями и сортами приложений.
okitgo.ru
Вид, создание и структура XML-файла
XML — это расширение файла Extensible Markup Language, применяемого для создания общих информационных форматов и совместного использования как формата, так и данных во Всемирной паутине, интрасетях и в других местах с использованием стандартного текста ASCII. Это универсальный формат данных и структурированных документов с расширением XML. Как и HTML, он использует теги слова, разделенные символами «>» и «<» для структурирования данных в документе. Но что входит в структуру XML-файла?
Краткое введение в язык
Изучаемый язык (EXtensible Markup Language) начал развиваться с сентября 1996 года, при поддержке W3C, с целью создания оптимизированного инструмента для интернета. Структура XML-файла сочетает простоту HTML с выразительными возможностями своего предшественника, SGML. В его разработке приняли участие такие компании, как Microsoft, IBM, Sun Microsystems, Novell и Hewlett-Packard. Версия 1.0 была ратифицирована W3C на конференции SGML/XML, состоявшейся в Вашингтоне в декабре 1997 года. Через несколько лет XML стал языком, оказавшим наибольшее влияние на разработку приложений для публикации контента в интернете.
Редакция документов преследует следующие цели:
- Различать содержание и структуру XML-файла по представлению на бумаге или на экране.
- Уточнять устройство и информативное содержание.
- Создавать документы, которыми можно обмениваться и легко обрабатывать в разнородных компьютерных системах.
- Создание форматов, в котором метки устанавливаются в тексте документов, чтобы различать его части или элементы структуры XML-файла.
Основными характеристиками языка являются:
- Возможность описательной маркировки, с открытым набором меток. В HTML и XML метки перемежаются в документах. Основное различие между тем и другим заключается в функции этих брендов.
- Функция дифференциации информативного содержимого документов по сравнению с использованием в HTML, где метки служат для указания того, как содержимое должно просматриваться.
- С другой стороны, в то время, как HTML сообщает, какие метки можно использовать при создании документа, изучаемый язык не определяет допустимый набор меток. Но он предлагает правила создания XML-файла, которые позволяют устанавливать новые словари и наборы меток для различных типов.
- В нем установлена четкая разница между структурой документа и его представлением. Метки XML-документа ничего не указывают на то, как он должен быть представлен. Чтобы представить его на экране или на бумаге, необходимо будет создать отдельную таблицу стилей и связать ее позже с документом.
При подключении клиентского компьютера к базе данных, SQL отправляется в БД объединения использует оболочку XML для доступа к ним из файла. Они возвращаются на клиентский компьютер в виде структурированных данных, содержащихся в реляционной таблице результатов.
С помощью оболочки XML можно отображать данные из внешнего источника в реляционную схему, состоящую из набора псевдонимов. Структура документа логически эквивалентна реляционной схеме, где повторяющиеся и вложенные элементы моделируются как отдельные таблицы с внешними ключами.
Непрерывная эволюция языка
Со времени своего первоначального выхода в интернет язык XML вызвал большое количество инициатив, связанных с обменом и кодированием контента и метаданных. XML единогласно стал основным вариантом для управления и восстановления данных. Список инициатив является широким, и хотя не все из них достигли одинакового уровня принятия, существуют многочисленные примеры успешного применения языка в академической, деловой и институциональной сферах.
В течение 2004 года появились публикации новых предложений и инициатив, связанных с использованием языка. В качестве примеров можно упомянуть постоянную публикацию новых версий компьютерных приложений, предназначенных для работы с XML, разработку новых словарей или принятие языка в различных областях работы.
Extensible Markup Language имеет большую поддержку со стороны международных органов стандартизации, что позволило обеспечить высокий уровень стандартизации сферы электронной торговли между компаниями. Доказательством этого является публикация в качестве стандарта ISO спецификаций языка и недавнее обновление стандарта UDDI (универсальное описание структуры XML-файла и обнаружения). Эти два стандарта пробудили интерес к новым инвестициям в информационные технологии, который в предыдущие годы замедлился из-за недоверия к интернет-рынкам.
Расширяемый язык разметки
XML похож на HTML. Они содержат символы разметки для описания страниц или файла. HTML, однако, описывает содержание веб-страницы в основном в виде текстовых и графических изображений, только с точки зрения того, как они должны отображаться и взаимодействовать.
XML описывает в терминах содержимое того, какие данные описываются. Например, слово «phonenum», помещенное в теги разметки, может указывать, что последующими данными будет номер телефона. Файл XML может обрабатываться программой исключительно как данные, храниться с аналогичными на другом компьютере или отображаться, как файл HTML. Например, в зависимости от того, как приложение на принимающем компьютере будет обрабатывать номер телефона, оно может быть сохранено, отображено или набрано.
XML считается расширяемым, потому что, в отличие от HTML, символы разметки являются неограниченными и самоопределяющими. XML — это более простое и легкое в использовании подмножество стандарта Standard Generalized Markup Language (SGML) для создания структуры документа. Ожидается, что HTML и XML будут использоваться вместе во многих веб-приложениях. Например, разметка XML может отображаться на странице HTML.
Псевдонимы соответствия
Псевдонимы, соответствующие XML-документу, организованы в древовидную структуру, где дочерние псевдонимы соотносятся с элементами, соответствующие родительскому. Когда они повторяются или имеют дифференцированные идентификаторы со сложными структурами, можно указать разные псевдонимы для каждого вложенного элемента.
Псевдонимы родители и дети связаны первичными и внешними ключами, генерируемыми оболочкой. Выражения XPath используются для корреляции документа XML с реляционной схемой, состоящей из набора псевдонимов. XPath — это механизм адресации для идентификации частей файла XML, например, групп узлов и атрибутов в дереве документа XML.
Основной его синтаксис аналогичен адресации файловой системы. Каждый псевдоним определяется выражением XPath, которое идентифицирует элементы представляющие отдельные кортежи, и набор выражений, устанавливающих, как извлекать значения столбцов каждого элемента.
XML-документа соотносится с набором псевдонимов, а родительские и дочерние отношения устанавливаются с использованием внешнего и первичного ключей. Выражения XPath используются для определения отдельных кортежей, и столбцов в каждом элементе документа, а также способ выполнения запроса в документе XML после его регистрации в системе объединения.
Древовидная структура образца документа
Документы XML обязаны иметь корневой элемент — родительский для всех остальных. Они могут содержать вложенные элементы, текст и атрибуты. Дерево, представленное таким документом, начинается с элемента-корня и ветвится до самого низшего уровня элементов. Хотя нет единого мнения о терминологии, используемой в деревьях XML, W3C выпустил по крайней мере две стандартные терминологии:
- Терминология, используемая в модели данных XPath.
- Терминология, используемая в информационном наборе XML.
XPath определяет синтаксис с именем выражений, который идентифицирует один или несколько внутренних компонентов элементов и атрибутов документа XML. XPath широко используется для доступа к XML-кодированным данным.
Информационный набор XML описывает абстрактную модель данных для документов в терминах информационных элементов. Он часто используется в спецификациях собственного языка для удобства описания ограничений на конструкции, допускаемые ими.
Обмен данными
Возможность отделять хранение данных от просмотра означает, что с XML можно хранить свои данные в одном формате и просматривать их различными способами, не меняя способ хранения. Язык может описывать то, что представляют данные. Это означает, что можно описать, как их отображать — цвет, шрифт и форматирование, и что они представляют, например, сигнал, полученный с осциллографа, значение индикатора тревоги и многое другое.
Вместе эти преимущества позволяют хранить любую информацию в едином формате хранения, которые можно определить для приложений. Также можно получить доступ к ним в любом другом приложении, просто зная, что оно читает файлы XML. Это полезно на одном компьютере для обмена данными между приложениями, но реальное преимущество этой функциональности заключается в мультикомпьютерной среде.
Можно использовать следующий пример в качестве модели того, как создать файл-XML и отобразить данные из него. Предположим, завершено получение ряда точек данных с тестовой платформы и проведен некоторый базовый анализ этих данных.
Далее потребуется записать все эти необработанные данные вместе с анализом в файл. Чтобы вывести их в файл, необходимо спланировать, как должен выглядеть XML-файл, который нужно создать. С помощью этой схемы записываются все данные и результаты анализа в файл XML. Возможность настраивать поля в файле, такие как «данные», «среднее», «max» и «min», является частью гибкости и мощи XML.
Разработка тестовых приложений
Когда у пользователя есть файл XML, который содержит полезные данные, рано или поздно, потребуется их применить. Для этого можно легко отобразить их в любом текстовом редакторе или открыть в браузере с поддержкой XML, например, в Microsoft Internet Explorer. Если нужно отобразить их не просто в виде текста, можно использовать все — от приложений базы данных до веб-браузеров.
Для чтение XML-файла этим приложениям нужна таблица стилей. Используя таблицы стилей, можно просматривать одни и те же данные разными способами. Например одну таблицу стилей для отображения информации для клиентов и другую для представления информации специалистам, которым может потребоваться конкретная информация для устранения проблемы. И также можно использовать третью таблицу стилей для загрузки всех данных в общую систему БД предприятия.
При выполнении этой задачи заранее нужно будет создать три разных метода вывода данных. Используя XML и таблицы стилей, нужно всего лишь создать один файл данных, который можно просматривать в нескольких форматах, соответствующих конкретным задачам. Более того, больше не нужно указывать тип приложения, которое будет просматривать данные, потому что конечный пользователь может создать свою собственную таблицу стилей для удовлетворения потребностей приложения, как только будет предоставлен файл XML.
XML определит общекорпоративные стандарты данных, поэтому разработчику нужно будет спроектировать только один файл схемы, который может использовать, применяя соответствующие части схемы в соответствии с потребностями своего приложения. Затем остается только разработать таблицу стилей для каждого представления данных.
С помощью этой системы тестовые и измерительные программы могут легко обмениваться данными с любым приложением на предприятии и каждое из них может создавать данные и отображать их в другом.
Механизм XDTO в 1С
Создатели 1С, ставя перед собой задачу обмена данных с использованием изучаемого языка, разработали механизм — XDTO для объектов передачи структуры XML-файла 1С. Каковы преимущества? Версия программы 8.1 и выше позволяет обмен информацией с системами, не углубляясь в темы создания XML-файла, решая большинство проблем 1С. И также можно отправлять только необходимую информацию для образования документа. Для этого программисту потребуется заранее выполнить некоторые процедуры.
Для загрузки файла XML с использованием XDTO, нужно передать структуру файла 1C с помощью набора схем, созданных в текстовом редакторе или использовать специальное ПО. Результатом должен быть файл, описывающий уникальный тип и структуру, использующих в XML. Прежде чем прочитать или писать последний файл, программист загружает полученную конфигурацию в области «Пакеты XDTO». Для воссоздания у пользователя должен быть основной элемент и вложения с атрибутами. Полученная схема экспортируется в файл XSD и отправляется совместно с изучаемым, таким образом формируя пакет XDTO.
Самое большое различие между использованием для отображения данных в интернете и другими технологиями заключается в том, что перед тем как создать XML-файл сначала необходимо использовать его для отображения данных на веб-странице, которое аналогично использованию электронной таблицы.
Распространенные ошибки
Язык XML настолько прост, что его может освоить практически каждый. Широкий доступ является ключевым преимуществом языка. Недостатком XML является то, что правила, которые существуют в языке, являются абсолютными. Синтаксические анализаторы XML оставляют мало места для ошибок. Независимо от того, является ли разработчик новичком или много лет работал на языке, одни и те же распространенные ошибки появляются снова и снова. Рассмотрим их, чтобы не допускать.
Итак, распространенные ошибки структуры XML файла:
- Нужно указать язык с помощью оператора объявления, чтобы браузер понимал код, на котором он написан.
- XML работает в иерархическом стиле. Это означает, что все дочерние элементы должны иметь родителей, строки данных должны быть между тегами элемента, комментарии должны быть внутри тегов.
- XML требует, чтобы были закрыты все теги. В HTML можно избежать случайного открытия тега, и некоторые браузеры даже закрывают теги при отображении страницы. Документ XML с открытым тегом всегда будет выдавать ошибку.
- Поскольку изучаемый язык работает в древовидной структуре, каждая страница должна иметь корневой элемент на вершине дерева. Имя элемента не имеет значения, но оно должно быть там перед тем, как получить структуру XML-файла. Иначе последующие теги не будут должным образом вложены.
- XML интерпретирует 50 пробелов так же, как и один. Язык собирает несколько пробелов, известных как пробельные символы, и скомпактирует их в один. Это не имеет ничего общего с визуальным отображением или дизайном. Пробел, используемый для выравнивания текста, ничего не значит в коде XML, поэтому если разработчик добавляет много лишних пробелов, чтобы попытаться продемонстрировать какой-то визуальный макет или дизайн, он просто теряет время.
XML предлагает хорошее решение для обмена данными для широкого круга заинтересованных потребителей в удобном и простом в использовании формате. Такие приложения, как 1 С, продолжают интегрировать новые технологии, такие как XML, чтобы предоставить пользователю новые возможности обработки данных.
fb.ru