Включение файла XML в файл XML / XSL

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

я сказал бы, что необходимо всегда стремиться к наименее хрупким тестам, Вы можете тот полностью тест Ваша функция/модуль, но если Вы имеете 1 или 2, которые являются хрупкими, необходимо быть хорошо в большинстве случаев.

23
задан Jookia 16 January 2011 в 02:09
поделиться

2 ответа

я. Вот как любой документ или фрагмент XML может быть встроен в таблицу стилей XSLT и использован во время преобразования :

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:my="my:my">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <my:menu>
   <menu>
     <choice>A</choice>
     <choice>B</choice>
     <choice>C</choice>
   </menu>
 </my:menu>

 <xsl:template match="/">
  <xsl:copy-of select="document('')/*/my:menu/*"/>
 </xsl:template>
</xsl:stylesheet>

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

<menu xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:my="my:my">
   <choice>A</choice>
   <choice>B</choice>
   <choice>C</choice>
</menu>

Помните : любой XML может быть встроен в таблицу стилей XSLT, если он включен в элемент пространства имен (пространство имен, а не пространство имен XSLT), и этот элемент переноса находится на глобальном уровне (дочерний элемент элемента <xsl:stylesheet> (верхний)).

II. Доступ к файлу меню XML, который находится в отдельном файле XML :

Для этого нам нужно лишь немного изменить предыдущий пример:

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>


 <xsl:template match="/">
  <xsl:copy-of select="document('menu.XML')/*"/>
 </xsl:template>
</xsl:stylesheet>

Если меню Файл XML находится в файле 'menu.XML' (в том же каталоге, что и файл таблицы стилей XSLT, тогда это преобразование дает точно такой же результат , что и предыдущий:

<menu>
   <choice>A</choice>
   <choice>B</choice>
   <choice>C</choice>
</menu>

. 1122]: в обоих случаях мы используем стандартную функцию XSLT document()

Как правило, определяется переменная глобального уровня, значение которой является результатом вызов функции document(). Затем эта переменная и ее содержимое доступны через выражения XPath во время преобразования.

36
ответ дан 29 November 2019 в 01:55
поделиться

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

1
ответ дан 29 November 2019 в 01:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: