XSL для <schema xmlns = "http://www.w3.org/2001/XMLSchema"> - PullRequest
1 голос
/ 09 мая 2011

Что будет эквивалентной таблицей стилей XSL для <schema xmlns="http://www.w3.org/2001/XMLSchema">

1 Ответ

0 голосов
/ 09 мая 2011

Обновление : ОП предоставил свой код.

Используйте

<xsl:for-each select="x:schema/x:element">

Вместо :

<xsl:for-each select="schema/element">

Поиск / чтение о «пространстве имен по умолчанию в XPath». Это F A Q

Это преобразование :

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:x="http://www.w3.org/2001/XMLSchema">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="/">
     <xsl:value-of select="/x:schema/x:a/x:b/x:c"/>
 </xsl:template>
</xsl:stylesheet>

при применении к этому документу XML :

<schema xmlns="http://www.w3.org/2001/XMLSchema">
 <a>
  <b>
   <c>d</c>
  </b>
 </a>
</schema>

дает желаемый результат :

d

Объяснение : Любое имя без префикса в выражении XPath всегда считается "без пространства имен". Если документ XML имеет пространство имен по умолчанию, то любой элемент этого документа находится в пространстве имен по умолчанию (а не в «пространстве имен нет»). Поэтому для такого документа без префикса имена не выбирают ни одного узла - потому что ни один узел в этот документ не находится в пространстве имен.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...