2016-03-25 2 views
2

На странице w3schools.com есть advantages/strengths listed about XML Schemas.Понимание определения синтаксического анализатора XML

Что означает следующий пункт:

Вы можете использовать XML-парсер для разбора файлов Схемы

+3

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

+0

За исключением того, что, поскольку вопрос спрашивает, что такое «синтаксический анализатор XML», мы должны быть более точными. Saxon не является парсером XML. –

ответ

2

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

К сожалению, вы обнаружите, что многие люди злоупотребляют термином, используя его правильно. Есть много вопросов о StackOverflow (я видел пару сегодня), где люди говорят о «написании парсера XML», когда то, что они на самом деле делают, это писать приложение XML, которое обрабатывает вывод XML-парсера.

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

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

В ответ на комментарий @Zafar, Saxon не является парсером XML (хотя нередко можно найти людей, называющих это). Saxon включает в себя ряд инструментов для обработки XML, используя такие языки, как XPath, XSLT и XQuery, но Saxon не анализирует сам XML; он обращается к службам внешнего анализатора XML для этого. Однако способность использовать общие XML-инструменты, такие как Saxon, является еще одним преимуществом представления ваших данных в XML и, вероятно, имеет еще большую ценность, чем возможность повторного использования самого анализатора XML.

+0

"относится к схемам" означает xsd? Что подразумевается под «любым другим видом структурированных данных». – ilm

1

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

  • XSLT может разобрать XML-схему для генерации документации или преобразования одного XML-схемы к другой связанной с XML Схема.
  • Schematron может анализировать XML-схему, чтобы проверить соответствие руководствам/политике сектора или других организаций.
  • JAXB и xsd.exe могут анализировать XML-схему до генерировать классы в Java или .NET, которые поддерживают сортировку и unmarshalling автоматически.

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

Смежные вопросы