Добавить в корзинуПозвонить
Найти в Дзене
Technokrat

Введение программиста в XML №2

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

Стандарты на основе XML

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

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

Конечно, если вы не являетесь крупной компанией или кем-то с большим влиянием, вероятность того, что кто-то будет использовать ваш диалект в качестве стандарта, довольно мала.

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

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

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

Проверка XML - DTD и схемы

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

Например, если вы пишете программу для обработки документа книги, вы вполне можете сделать предположение в программе, что <Title><Title></Title> всегда будет присутствовать. Ваша программа, очевидно, потерпит неудачу, если ей будет предоставлен XML-документ, который не соответствует вашему стандарту. Вы можете потратить дополнительные усилия, чтобы сделать вашу программу надежной против неправильных XML-документов, но лучший метод-устранить неправильные XML-документы.

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

Чтобы указать, что вы считаете допустимым XML-файлом, вам необходимо создать определение типа документа (DTD) или XML-схему.

В любом случае вы указываете грамматику, которую будет использовать XML-документ. Учитывая XML - документ и соответствующий DTD или схему, можно проверить, что документ действителен, т. Е. Соответствует грамматике, а затем продолжить его обработку, зная, что он описан в DTD/Schema.

Идея задания грамматики для XML-документов, предназначенных для определенной цели, является неотъемлемой частью технологий, основанных на XML. Любое приложение, использующее одну из этих настроек XML, может работать безопасно, зная, что если оно было разработано для работы с XML-документом, построенным в соответствии с DTD/схемой, то оно сможет его обработать.

Это еще один пример того, как XML позволяет изолированно создавать генераторы и потребители XML-документов. Грамматика XML гарантирует, что они будут работать вместе, даже если они никогда не встречались.

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

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

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

Связанные технологии XML

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

Вы наверняка сталкивались с такими жаргонами, как XSLT, XPath, XLink и так далее. Даже такие технологии, как SOAP, которые не имеют X в своих именах, на самом деле связаны с XML именно этим простым способом. То есть это специальные настройки базовой технологии XML для определенных целей. Каждый из них поставляется со своей собственной специфической грамматикой, определенной в файле DTD или схемы.

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

XHTML

XML-совместимый XHTML теперь более или менее вытеснен HTML5. Идея заключалась в том, что версия HTML, реализованная в строгом XML в комплекте со схемой, означала бы, что браузер может проверить, правильно ли отформатирована страница, прежде чем даже пытаться ее отобразить. Однако большая проблема с XHTML заключалась в том, что он не включал HTML в качестве подмножества, и если вы думаете об этом, как это может быть. Это было слишком большим потрясением для большинства конструкторов веб-страниц, и это никогда не прижилось. Стандартом является HTML 5, а XHTML почти забыт.

SOAP и веб - сервисы

SOAP - это основанная на XML спецификация того, как одна программа может использовать другую через Интернет. SOAP определяет, как данные будут упакованы и переданы между двумя программами, и, следовательно, позволяет взаимодействовать. Среди других технологий XML, связанных с веб-сервисами, UDDI позволяет автоматически обнаруживать веб-сервисы, думайте об этом как о “желтых страницах” веб-сервисов, а WSDL описывает, как использовать конкретный веб-сервис.

SOAP был изобретен Microsoft и активно продвигался как часть .NET framework. Однако обычно считалось, что он слишком сложный и раздутый. Он предоставил очень сложный способ получить то, что также может быть сложно сделано.

Со временем альтернативный подход к веб - службам - REST-стал более популярным, поскольку он был нейтральным по отношению к технологиям и атаковал проблему в лоб. REST использует пользовательские URL-адреса для организации использования веб-службы. Веб-служба на основе REST вполне может возвращать свои данные в формате XML или с использованием JSON

XQuery

XQuery-это стандарт XML для построения запросов к базе данных. Конечно, XML является естественным выбором для вывода базы данных, если она будет дополнительно обработана, и Microsoft SQL Server, например, поддерживает результаты XML. Существуют также собственные базы данных XML, которые используют XML в качестве основной единицы хранения.

XPath, SAX, DOM, XPointer и XSLT

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

XPath можно рассматривать как обобщение URL-адреса в стиле HTML. Он позволяет указать точные местоположения в XML - документе. Например, если вы хотите указать тег <C>, вложенный в <C><A> и <A><B>, вы должны использовать /A/B/C. По сути, это обозначение для указания местоположения в древовидной структуре.

XSLT предназначен для обработки XML-документов, но он определяет автоматические преобразования, которые будут применяться. Так, например, вы можете создать документ XSLT, который преобразует страницу XHTML в стандартную HTML-страницу.

XPointer-это просто XML-версия того, что мы все знаем как URL, т. Е. Он используется для связи XML-документов вместе.

SAX и DOM-это два API, которые позволяют обрабатывать XML - документ.

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

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

Расширяемый ML?

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

Вы можете включить атрибуты в тег, чтобы “описать” следующие данные. Атрибуты также являются частью HTML, но в этом случае то, что вы можете использовать, в основном определяется стандартом HTML.

В XML вы можете придумать свои собственные атрибуты.

Например, вы можете включить оценку для книги в тег <Book> :

<Book rating=5>

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

Например, в этом случае он позволяет выбрать, какие записи <Book> обрабатывать, не изменяя данные в теле записи.

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

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

<Rating>5</Rating>

Может быть трудно решить, когда изобретать новый тег или когда использовать атрибут, но в целом:

Элемент используется, когда:

· содержимое имеет длинную или переменную длину

· порядок имеет значение (порядок атрибутов игнорируется)

· информация действительно является “контентом".

Атрибут используется, когда:

· информация изменяет элемент таким образом, который естественным образом не является частью содержимого

· когда вы хотите ограничить возможные используемые значения

· очевидно,что информация-это метаданные.

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

Стандарты на основе XML

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

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

Конечно, если вы не являетесь крупной компанией или кем-то с большим влиянием, вероятность того, что кто-то будет использовать ваш диалект в качестве стандарта, довольно мала.

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

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

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

Проверка XML - DTD и схемы

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

Например, если вы пишете программу для обработки документа книги, вы вполне можете сделать предположение в программе, что <Title><Title></Title> всегда будет присутствовать. Ваша программа, очевидно, потерпит неудачу, если ей будет предоставлен XML-документ, который не соответствует вашему стандарту. Вы можете потратить дополнительные усилия, чтобы сделать вашу программу надежной против неправильных XML-документов, но лучший метод-устранить неправильные XML-документы.

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

Чтобы указать, что вы считаете допустимым XML-файлом, вам необходимо создать определение типа документа (DTD) или XML-схему.

В любом случае вы указываете грамматику, которую будет использовать XML-документ. Учитывая XML - документ и соответствующий DTD или схему, можно проверить, что документ действителен, т. Е. Соответствует грамматике, а затем продолжить его обработку, зная, что он описан в DTD/Schema.

Идея задания грамматики для XML-документов, предназначенных для определенной цели, является неотъемлемой частью технологий, основанных на XML. Любое приложение, использующее одну из этих настроек XML, может работать безопасно, зная, что если оно было разработано для работы с XML-документом, построенным в соответствии с DTD/схемой, то оно сможет его обработать.

Это еще один пример того, как XML позволяет изолированно создавать генераторы и потребители XML-документов. Грамматика XML гарантирует, что они будут работать вместе, даже если они никогда не встречались.

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

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

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

Связанные технологии XML

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

Вы наверняка сталкивались с такими жаргонами, как XSLT, XPath, XLink и так далее. Даже такие технологии, как SOAP, которые не имеют X в своих именах, на самом деле связаны с XML именно этим простым способом. То есть это специальные настройки базовой технологии XML для определенных целей. Каждый из них поставляется со своей собственной специфической грамматикой, определенной в файле DTD или схемы.

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

XHTML

XML-совместимый XHTML теперь более или менее вытеснен HTML5. Идея заключалась в том, что версия HTML, реализованная в строгом XML в комплекте со схемой, означала бы, что браузер может проверить, правильно ли отформатирована страница, прежде чем даже пытаться ее отобразить. Однако большая проблема с XHTML заключалась в том, что он не включал HTML в качестве подмножества, и если вы думаете об этом, как это может быть. Это было слишком большим потрясением для большинства конструкторов веб-страниц, и это никогда не прижилось. Стандартом является HTML 5, а XHTML почти забыт.

SOAP и веб - сервисы

SOAP - это основанная на XML спецификация того, как одна программа может использовать другую через Интернет. SOAP определяет, как данные будут упакованы и переданы между двумя программами, и, следовательно, позволяет взаимодействовать. Среди других технологий XML, связанных с веб-сервисами, UDDI позволяет автоматически обнаруживать веб-сервисы, думайте об этом как о “желтых страницах” веб-сервисов, а WSDL описывает, как использовать конкретный веб-сервис.

SOAP был изобретен Microsoft и активно продвигался как часть .NET framework. Однако обычно считалось, что он слишком сложный и раздутый. Он предоставил очень сложный способ получить то, что также может быть сложно сделано.

Со временем альтернативный подход к веб - службам - REST-стал более популярным, поскольку он был нейтральным по отношению к технологиям и атаковал проблему в лоб. REST использует пользовательские URL-адреса для организации использования веб-службы. Веб-служба на основе REST вполне может возвращать свои данные в формате XML или с использованием JSON

XQuery

XQuery-это стандарт XML для построения запросов к базе данных. Конечно, XML является естественным выбором для вывода базы данных, если она будет дополнительно обработана, и Microsoft SQL Server, например, поддерживает результаты XML. Существуют также собственные базы данных XML, которые используют XML в качестве основной единицы хранения.

XPath, SAX, DOM, XPointer и XSLT

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

XPath можно рассматривать как обобщение URL-адреса в стиле HTML. Он позволяет указать точные местоположения в XML - документе. Например, если вы хотите указать тег <C>, вложенный в <C><A> и <A><B>, вы должны использовать /A/B/C. По сути, это обозначение для указания местоположения в древовидной структуре.

XSLT предназначен для обработки XML-документов, но он определяет автоматические преобразования, которые будут применяться. Так, например, вы можете создать документ XSLT, который преобразует страницу XHTML в стандартную HTML-страницу.

XPointer-это просто XML-версия того, что мы все знаем как URL, т. Е. Он используется для связи XML-документов вместе.

SAX и DOM-это два API, которые позволяют обрабатывать XML - документ.

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

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