Стоит ли отменять пространства имен XML


Есть ли способ игнорировать пространства имен во время преобразования XSL?

Проверка пространства имен отключена на сервере, который обрабатывает XSL-преобразования (потому что парень, который написал XSL, не понимал пространства имен). Я должен внести изменения в XSL, но я не могу проверить его, потому что не существует каких-либо пространств имен, то есть.

так что он не соответствует ни одному из элементов в XML, потому что все они имеют квалификацию с пространствами имен.

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

Так что мне нужно сделать, это найти способ игнорировать пространства имен во время преобразования XSL. Я имею доступ к MSXML, XMLSpy (не могу найти здесь вариант), и если мне действительно нужно, я могу что-то подписать на С# или на аналогичном языке.

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

В ответ на комментарий о более подробной информации:

Это виртуальный сервер Windows 2003, запускающий экземпляр Servet Methode (www.eidosmedia.com). Я не знаю, какой метод использует этот сервлет для выполнения преобразований XSL. Они игнорируют пространства имен, потому что человек, который первоначально написал XSL, не понял их и не включил в XSL. Итак, теперь все XSL файлы (сотни) не имеют пространств имен.

Это может быть интересной задачей, чтобы исправить все эти файлы за один раз, но это не то, что мне нужно прямо сейчас (и руководитель отдела никогда не согласится на это в любом случае из-за объема тестирования). Все, что я хочу знать, — это доступный инструмент (или техника), который позволит мне использовать эти XSL файлы как есть и использовать их для преобразования соответствующего документа XML без учета пространств имен. Мне кажется, что инструмент должен существовать, потому что парень, который написал оригинальный XSL, должен был использовать что-то похожее для проверки самих преобразований.

Пространство имён по умолчанию

24.05.2020, 13:26

Пространство имён
Добрый день. Вот начал изучать по книге asp.net mvc 4 , такая ситуация создал решение в нём.

Пространство имён!
Как лучше указывать пространство имён? using namespace std вначале? или std. вроде бы проще.

Пространство имён
чуть ниже часть кода игры, и меня интересует в нём переменная game. game является аргументом.

пространство имён
Здравствуйте. Из C# я примерно представляю что такое пространство имён. Но возникает вопрос.

XML пространства имен

Пространства имен позволяют избежать конфликта имен XML элементов.

Конфликты имен

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

Следующий код XML содержит информацию о HTML таблице:

Следующий код XML содержит информацию о столе (предмет мебели), который по англ. тоже table:

Если эти два фрагмента кода XML будут сведены вместе, то возникнет конфликт имен. Так как оба документа содержат элемент , хотя и с разным контентом и значением.

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

Разрешение конфликта имен при помощи префикса

В XML избежать конфликта имен можно при помощи префикса имени элемента.

Следующий код XML содержит информацию о таблице HTML и о столе:

В этом примере не будет конфликта имен, так как два элемента имеют разные имена.

Пространства имен XML – Атрибут xmlns

При использовании в XML префиксов необходимо определить, так называемое, пространство имен префикса.

Пространство имен определяется благодаря атрибуту xmlns в начальном теге элемента.

Декларация пространства имен имеет следующий синтаксис — xmlns:префиксURI«.

В данном примере, атрибут xmlns в теге определяет префиксам h: и f: квалифицирующее пространство имен.

Когда пространство имен определено для какого-то элемента, то все его дочерние элементы с тем же префиксом ассоциируются с его пространством имен.

Пространства имен могут декларироваться либо непосредственно в самом элементе, либо в корневом элементе XML документа:

Замечание: URI пространства имен не используется парсером для получения какой-либо информации. Цель всего этого состоит в том, чтобы дать пространству имен уникальное имя. Тем не менее, часто компании используют пространство имен, как указатель на веб-страницу с информацией об этом пространстве имен.

Унифицированный идентификатор ресурса (URI)

Унифицированный идентификатор ресурса (URI) это символьная строка, идентифицирующая интернет-ресурс.

В наиболее общей форме URI является единым указателем ресурса (URL), который идентифицирует доменный адрес в интернете. Другой, более частный вид URI — единообразное имя ресурса (URN).

В наших примерах мы будем использовать только URL.

Пространства имен по умолчанию

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


Следующий код XML содержит информацию о таблице HTML:

Следующий код XML содержит информацию о предмете мебели — столе:

Реальное использование пространства имен

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

Пространства имен XML

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

Рассмотрим два примера, в которых используются элементы с одинаковым именем:

При объединении элементов заказа в магазине и мебели в комнате в один документ может возникнуть конфликт имен элементов. Для разрешения этого конфликта нужно задать пространства имен для этих элементов. Для определения принадлежности элемента к определенному пространству имен используются префиксы:

Для каждого префикса необходимо задать ссылку на пространство имен, которое он представляет. Это можно сделать с помощью атрибута «xmlns»:

Консорциум W3C рекомендует использовать в качестве идентификатора пространства имен унифицированные индикаторы ресурсов (Uniform Resource Indicators, URI), которые на практике обычно представлены строкой URL. При разборе XML-документа этот адрес не используется XML-процессором для поиска информации, однако обычно компании используют пространство имен как указатель на реальную веб-страницу, содержащую информацию об этом пространстве имен. Примером такого использования могут служить ссылки на пространство имен XSD схем документов: https://www.w3.org/2001/XMLSchema.

Мастер Йода рекомендует:  Создание гостевой книги PHP

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

Дополнительную информацию по языку XML можно найти в соответствующем разделе сайта консорциума W3C: https://www.w3.org/XML/.

Не нашли то, что искали? Воспользуйтесь поиском:

Лучшие изречения: Для студентов недели бывают четные, нечетные и зачетные. 9427 — | 7438 — или читать все.

188.64.174.135 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

Отключите adBlock!
и обновите страницу (F5)

очень нужно

Стоит ли отменять пространства имен XML?

Как показывает опыт, пространства имен XML часто становятся причиной замешательства, а также одним из основных факторов, осложняющих освоение разработка сайтов Донецк. В предлагаемой статье автор заявляет, что пространства имен XML не могут предложить хорошего решения тех проблем, для которых они изначально создавались; они также не являются необходимым элементом в большинстве случаев практического использования XML. Он рекомендует исключить пространства имен из употребления или существенно сократить их использование. В тех случаях, когда они необходимы, разработчики должны выбирать самые оптимальные варианты, а также общепринятые соглашения, для того чтобы ограничить синтаксическую вариабельность, предлагаемую в спецификациях. Это позволит упорядочить пространства имен, что облегчит их понимание.ПроблемаПо словам автора, очень часто разработчики, использующие XML, не совсем понимают, что такое пространства имен, а если и понимают, то испытывают трудности в практической работе и при исправлении связанных с ними ошибок. Современные пространства имен XML требуют более двух недель для освоения всех нюансов. Примером проблем, связанных с пространствами имен, может быть следующий часто задаваемый вопрос (см. раздел Ресурсы):* Определяет ли рекомендация пространств имен XML что-либо, кроме системы наименований, в которой используются имена, состоящие из двух частей, для атрибутов и типов элементов? — Нет.Автор статьи заявляет, что, судя по его опыту, очень немногие разработчики, использующие XML, реально понимают пространства имен. Они являются предметом частых и острых дискуссий в различных форумах разработчиков. Будет справедливым отметить, что спецификация пространств имен XML является одной из наиболее спорных среди основных спецификаций XML.Каковы преимущества пространства имен XML?Итак, использование пространств имен XML связано с рядом реальных или мнимых трудностей. Но пространства имен должны давать и определенные преимущества. Вот что об этом можно найти во введении в соответствующую спецификацию:»В приложениях языка XML отдельный документ XML может включать элементы и атрибуты (далее они именуются «словарь разметки»), которые определяются для составных программных модулей, где они используются. Одной из причин такого использования является именно модульность: если существует словарь разметки, который хорошо понимаем и для которого есть подходящее программное обеспечение, то проще использовать его, чем каждый раз изобретать что-то новое.Такие документы, содержащие составные словари разметки, представляют проблему для распознавания, а также создают опасность конфликтов между собой. Программные модули должны быть способны распознавать тэги и атрибуты, для обработки которых они разработаны, даже при опасности возникновения «конфликта» в том случае, когда разметка, предназначенная для другого программного пакета, использует те же самые типы элементов или имена атрибутов».Таким образом, проблемы, которые должны быть решены, лежат в области распознавания и конфликтов в том случае, когда одновременно используются несколько составных документов.Далее автор обращается к еще одному распространенному вопросу о пространствах имен XML:Какова цель создания пространств имен XML?Пространства имен XML созданы для того, чтобы присваивать каждому элементу и атрибуту уникальное имя. Это позволяет выполнять целый ряд действий, таких как:* объединять фрагменты различных документов без возникновения конфликтов имен (см. пример ниже);* писать модули кодов, которые могут многократно использоваться и вызываться для определенных элементов и атрибутов. Уникальные имена гарантируют, что такие модули будут вызываться только для необходимых элементов и атрибутов;* определять элементы и атрибуты, которые могут использоваться в других схемах или реальных документах без опасности вызвать конфликт имен. Например, элементы XHTML могут использоваться в каталоге запчастей для их описания, а нулевые атрибуты, определенные в схемах XML, — для обозначения пропущенных значений.Автор советует обратить внимание на следующий пример. Представленная проблема состоит в том, что элемент Address появляется в двух отдельных документах в двух различных контекстах и при этом имеет различные значения.В таком случае возникает следующий вопрос:Это не является проблемой, пока данные типы элементов существуют только в отдельных документах. Но что произойдет, если они будут объединены в рамках одного документа, например, списка отделов с адресами и web-серверами?Это — постановка проблемы, а ниже приведен пример разрешения неоднозначности общего элемента при объединении двух документов.Объединенный документ выглядит следующим образом.

Пространство имен XML по умолчанию для проекта должно быть пространством имен MSBuild XML

я клонировал ASP.NET Core SignalR Repo локально, и попробуйте открыть решение из следующей среды.

IDE

DOT NET CLI

Я в конечном итоге вижу много таких сообщений об ошибках:

..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj : ошибка: пространство имен XML по умолчанию проекта должно быть Пространство имен MSBuild XML. Если проект создан в MSBuild Две тысячи три формат, пожалуйста, добавьте xmlns=»https://schemas.microsoft.com/developer/msbuild/2003″ к элемент. Если проект был создан в старой версии 1.0 или 1.2 формат, пожалуйста, преобразуйте его в формат MSBuild 2003. ..\Repos\SignalR\src\Microsoft.AspNetCore.SignalR\Microsoft.AspNetCore.SignalR.csproj

Я хочу знать как исправить это правильный путь.

4 ответа:

проекты, которые вы пытаетесь открыть, находятся в новом формате .Net Core csproj. Это означает, что вам нужно использовать Visual Studio 2020, который поддерживает этот новый формат.

для Немного истории, первоначально .Net Core используется project.json вместо *.csproj . Однако, после некоторых значительных внутренних обсуждений в Microsoft, они решили вернуться к csproj но с гораздо более чистым и обновленным форматом. Однако этот новый формат поддерживается только в VS2020.

Если вы хотите чтобы открыть проекты, но не хотите ждать до 7 марта для официального выпуска VS2020, вы можете использовать код Visual Studio вместо этого.

я столкнулся с этой проблемой при открытии Service Fabric GettingStartedApplication в Visual Studio 2015. Оригинальное решение было построено на .NET Core в VS 2020, и я получил ту же ошибку при открытии в 2015 году.

вот шаги, которые я последовал, чтобы решить эту проблему.

    щелкните правой кнопкой мыши на проекте (ошибка загрузки) и отредактируйте его в visual studio.
Мастер Йода рекомендует:  Самый понятный хакерский курс по взломам на Kali Linux

увидел следующую строку в теге проекта :

следуйте инструкциям, приведенным в сообщении об ошибке, чтобы добавить xmlns=»https://schemas.microsoft.com/developer/msbuild/2003″ этот тег

теперь должно выглядеть так:

  • перезагрузка проекта дала мне следующую ошибку (ваша может отличаться в зависимости от того, что входит в ваш проект)

увидел, что ни один элемент не имеет атрибута обновления как ниже:

прокомментировал это, как показано ниже.

видел, что версия есть в csproj xml, как показано ниже (дополнительные строки PackageReference удалены для краткости)


лишил атрибут версии

теперь я получить следующее:

Бинго! обновление visual Studio One-way вышло! Пусть VS творит волшебство!

проект загружен, но со ссылочными ошибками lib.

исправлены ошибки ссылки lib индивидуально, путем удаления и замены в NuGet, чтобы получить проект работает!

надеюсь, это поможет другой код путешественник : — D

@DavidG ответ правильный, но я хотел бы добавить, что если вы строите из командной строки, эквивалентное решение состоит в том, чтобы убедиться, что вы используете соответствующую версию msbuild (в данном конкретном случае это должна быть версия 15).

выполнить msbuild /? посмотреть какую версию вы используете или where msbuild чтобы проверить, из какого места среда берет исполняемый файл и при необходимости обновить (или указать нужное место) инструменты.

скачать последний инструмент MSBuild от здесь.

Если вы получаете эту ошибку, пытаясь построить приложение .Net Core 2.0 на VSTS, убедитесь, что ваше определение сборки использует Hosted VS2020 очереди агента.

Стоит ли отменять пространства имен XML?

10424 просмотра

4 ответа

8302 Репутация автора

Проверка пространства имен отключена на сервере, который обрабатывает преобразования XSL (потому что тот, кто написал XSL, не понимал пространства имен). Я должен внести изменения в XSL, но я не могу проверить его, потому что не определены пространства имен, т.е.

поэтому он не соответствует ни одному из элементов в XML, потому что все они квалифицированы как пространства имен.

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

Поэтому мне нужно найти способ игнорировать пространства имен во время преобразования XSL. У меня есть доступ к MSXML, XMLSpy (здесь я не могу найти нужную опцию), и, если мне действительно нужно, я могу что-то написать на C # или аналогичном языке.

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

В ответ на комментарий о более подробной информации:

Это виртуальный сервер Windows 2003, на котором запущен экземпляр сервлета Methode (www.eidosmedia.com). Я не знаю, какую технику использует этот сервлет для выполнения XSL-преобразований. Они игнорируют пространства имен, потому что человек, который первоначально написал XSL, не понимал их и не включил их в XSL. Так что теперь все XSL-файлы (сотни) не имеют пространств имен.

Это может быть интересной задачей, чтобы исправить все эти файлы за один раз, но это не то, что мне сейчас нужно (и руководитель отдела никогда бы не согласился на это в любом случае из-за большого количества испытаний). Все, что я хочу знать, — это наличие инструмента (или методики), который позволит мне принимать эти XSL-файлы как есть и использовать их для преобразования соответствующего XML-документа без учета пространств имен. Мне кажется, что инструмент должен существовать, потому что парень, который написал оригинальный XSL, должен был сам использовать нечто подобное для проверки преобразований.

Ответы (4)

5 плюса

259154 Репутация автора

Вы можете выполнить преобразование, чтобы удалить все пространства имен из вашего ввода до вашего «реального» преобразования. Но . я не уверен, стоит ли тебе это делать. Это ужасно

Будет ли это вариант?

(как показали комментарии — это не так)

Автор: Tomalak Размещён: 10.03.2009 01:22

плюса

163502 Репутация автора

Сколько пространств имен существует в преобразуемом XML?

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

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

1 плюс

72367 Репутация автора

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

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

Размещенный Tomalak преобразователь сделает это — и в отличие от использования регулярных выражений, он сделает это, не испортив все остальное в XML. И это тоже не очень большая работа. Цепные преобразования довольно просты.

плюса


1 Репутация автора

Работал на меня.

Мы должны отказаться от ответов, которые разочаровались в проблеме, прежде чем выполнять поиск в Google.

Вопрос по xsd, xml-namespaces, schema, namespaces, xml &#8211 Для чего нужны пространства имен XML?

Это то, что мне всегда трудно объяснить другим: почему существуют пространства имен XML? Когда мы должны их использовать, а когда нет? Каковы распространенные подводные камни при работе с пространствами имен в XML?

Кроме того, как они связаны со схемами XML? Должны ли схемы XSD всегда быть связаны с пространством имен?

В моих словах: если вы должны использовать какой-то формат XML для внешней компании (например) и вам необходимо предоставить в документе XML некоторую информацию, которая имеет такое же имя, вам нужно пространство имен. Пример:

и вы хотите объединить некоторые данные в этот документ, который имеет то же имя, но другой смысл (так что значение), вы должны использовать пространство имен:

Конечно — вы можете изменить имя атрибута. Например, чтобы «my_unique_color», Будь в другом документе, там снова может быть атрибут с таким же именем. Таким образом, если у вас есть уникальное пространство имен (например, наш веб-домен), вы всегда можете использовать одни и те же имена элементов и / или атрибутов без каких-либо проблем.

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

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

Мастер Йода рекомендует:  Магазин App Store превратился в настоящую денежную реку

XMLПространство имен в основном название языка, очень похоже наАнглийский» или «עברית», Я помогаю получателю XML-документа разобрать его и извлечь из него информацию.

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

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

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

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

Схема нетТребуется, чтобы пространство имен было полезным.

Хорошо, если проверка не выполняется, конечно. Но тогда для чего же пространство имен? = 😎

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

например следующие узлы

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

Оба держат тег с именем «место нахождения», но тег означает разные вещи для каждого и содержит разные поля.

Теперь этокруто: но что если вам нужно или вы хотите хранить XML из обоих в одной базе данных? Или, что более интересно, что, если обе базы данных хотят хранить фрагменты XML из некоторой другой, общей базы данных (например, базы данных учетных записей).

Пространства имен XML ассоциируются с каждым тегом XML как URI, так что перед именем тега перед ним стоит URL, что ‘s часть имени тега (для этого в реальных документах XML используется сокращение). Тщательно выбирая URI, легко быть уверенным, что имена тегов не будут конфликтовать — этоКак будто два тега местоположения были названы совершенно по-разному, так чтонет путаницы В качестве бонуса два совершенно разных тега местоположения могут включать данные из базы данных учетных записей и явно указывать, что они говорят об одном и том же.

То, что делает все это полезным, это XPATH.

С учетом вышесказанного, вы можете начать писать выражения XPATH, которые говорят что-то вроде: найди меня любой accounts:account overdue разделы в любом месте в этом XML. Или: найди меня accounts:warning message элементы в любом месте в этом конкретном фрагменте XML, где предупреждающее сообщение является дочерним узлом (каким бы глубоким он ни был) personnel:payment узел или vehicle:status узел.

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

Какие’Это выплата? Зачем это делать? Поскольку вы можете искать в лог-файле XML, извлеките все просроченные сообщения учетных записей, где бы они ни появлялись,не путая их ссообщение» теги, произведенные другими системами, перерабатывать ‘их в xhtml и отображать их жирным красным цветом с помощью тега css:все без написания клочка процессуального кода.

Мое понимание этого ответа заключается в том, что XML ‘Пространство имен — это, по сути, тег для группировки или идентификации группы элементов XML?

Есть ли способ игнорировать пространства имен во время преобразования XSL?

Проверка пространства имен отключена на сервере, который обрабатывает XSL-преобразования (потому что парень, который написал XSL, не понимал пространства имен). Я должен внести изменения в XSL, но я не могу проверить его, потому что не существует каких-либо пространств имен, то есть.

так что он не соответствует ни одному из элементов в XML, потому что все они имеют квалификацию с пространствами имен.

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

Так что мне нужно сделать, это найти способ игнорировать пространства имен во время преобразования XSL. Я имею доступ к MSXML, XMLSpy (не могу найти здесь вариант), и если мне действительно нужно, я могу что-то подписать на С# или на аналогичном языке.

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

В ответ на комментарий о более подробной информации:

Это виртуальный сервер Windows 2003, запускающий экземпляр Servet Methode (www.eidosmedia.com). Я не знаю, какой метод использует этот сервлет для выполнения преобразований XSL. Они игнорируют пространства имен, потому что человек, который первоначально написал XSL, не понял их и не включил в XSL. Итак, теперь все XSL файлы (сотни) не имеют пространств имен.

Это может быть интересной задачей, чтобы исправить все эти файлы за один раз, но это не то, что мне нужно прямо сейчас (и руководитель отдела никогда не согласится на это в любом случае из-за объема тестирования). Все, что я хочу знать, — это доступный инструмент (или техника), который позволит мне использовать эти XSL файлы как есть и использовать их для преобразования соответствующего документа XML без учета пространств имен. Мне кажется, что инструмент должен существовать, потому что парень, который написал оригинальный XSL, должен был использовать что-то похожее для проверки самих преобразований.

Стоит ли отменять пространства имен XML?

Пэрэнд Тони Дэйруджэр (Parand Tony Darugar)
Перевод:

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

Добавить комментарий