Понимание различных спецификаций, связанных с XML

#xml #xslt #xpath #xquery #w3c

#xml #xslt #xpath #xquery #w3c

Вопрос:

Я оцениваю использование низкоуровневого синтаксического анализатора XML в библиотеке. Первое, на что я посмотрел, было expat , в котором говорится, что он поддерживает «XML 1.0», или, по крайней мере, его Википедия. Затем, когда я перехожу на страницу W3, чтобы посмотреть, что такое «XML 1.0», он разбивает вещи на несколько разных разделов:

введите описание изображения здесь

Итак, мой вопрос в том, может ли кто-нибудь дать мне высокоуровневый обзор того, где различные элементы вписываются в стандарт XML? Например, если что-то говорит, что оно поддерживает «XML 1.0», означает ли это, что оно также поддерживает XPath версии X (1? 2? 3?), Или как «XML» переводится на поддержку во всех его различных компонентах? В частности, мне было любопытно, какую версию XPath / XQuery поддерживают различные библиотеки. Кроме того, почему язык запросов определяется отдельно от структуры «хранилища»?

Ответ №1:

Поддержка XML 1.0 должна быть совместимой с W3C Extensible Markup Language (XML) 1.0

  • в настоящее время в пятом издании

Поддержка XML 1.1 должна быть совместимой с W3C Extensible Markup Language (XML) 1.1

  • в настоящее время находится во втором издании
  • Изменения включают в себя разрешение дополнительных символов Юникода в именах компонентов и дополнительных символов Юникода в содержимом документа, добавление NEL (#x85) в список символов EOL для удобства мэйнфреймов IBM, Определение нормализованного XML и т. Д. См. Обоснование и список изменений для XML 1.1.

Поддержка XML 1.0 или 1.1 также не подразумевает поддержку XSLT, XPath, XQuery, XSD или любого другого связанного стандарта XML. Если библиотека претендует на поддержку одного из этих связанных стандартов, в ней должно быть конкретно указано, какую версию этих стандартов она поддерживает.

Комментарии:

1. спасибо, при кратком осмотре кажется, что XPath 2 и 3 поддерживаются очень редко (ни один из основных браузеров не поддерживает его). Это точно, или кажется, что Xpath 2/3 вообще набирает обороты?

2. Он подходит для браузеров, инструментов Microsoft и многих библиотек с открытым исходным кодом. Коммерческие инструменты, такие как Saxonica (creme de la creme), Syncro Soft и многие другие, поддерживают последние версии всех / большинства соответствующих стандартов XML.

3. @David542, поставщики браузеров предпочли бы отказаться от своего стека XML, но в других областях есть XPath 2 (например nuget.org/packages/XPath2 для .NET) или 3.1 (BaseX реализует XQuery 3.1, подмножеством которого в основном является XPath 3.1). И Saxon существует в версии HE с открытым исходным кодом для Java и .NET, также поддерживающей XPath 3.1, XSLT 3.0 и XQuery 3.1. Для .NET вы можете найти более полный список на github.com/maxtoroq/dotnet-xml

4. @David542 Действительно, вы правы, многие из превосходных (и, как правило, бесплатных и / или с открытым исходным кодом) продуктов, которые были поставлены во время пика волны XML-рекламы в 1998-2003 годах, никогда не обновлялись для поддержки более поздних стандартов. Вы можете грубо разделить пользователей XML сегодня на две категории: обычные пользователи, использующие XML очень простым способом, для которых стандарты и продукты 20-летней давности вполне адекватны, и серьезные пользователи, для которых XML является важной частью их бизнес-стратегии, которые получают большую пользу от более современных стандартови продукты.