Использовать группы схем XML в преобразовании XSL - PullRequest
2 голосов
/ 30 ноября 2011

У меня есть определения групп в схеме XML. Вот так:

<attributeGroup name="my_attributes">
    <attribute ref="ns:foo" />
    <attribute ref="ns:bar" />
</attributeGroup>

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

<xsl:template matchGroup="my_attributes">
    <foobar>
        <xsl:copy-of select="@*"/>
        <xsl:value-of select="." />
    </foobar>
</xsl:template>

1 Ответ

1 голос
/ 30 ноября 2011

Можно ли создать шаблон, соответствующий такой группе?Может быть что-то вроде этого:

<xsl:template matchGroup="my_attributes"> 
    <foobar> 
        <xsl:copy-of select="@*"/> 
        <xsl:value-of select="." /> 
    </foobar> 
</xsl:template>

Нет, инструкция XSLT <xsl:template> не имеет атрибута matchGroup, и любой совместимый процессор XSLT должен вызвать синтаксическую ошибку по этой причине.

Что-то вроде этого, вероятно, близко к тому, что вы ищете:

<xsl:template match="@ns:foo[../@ns:bar]">
 <!-- Processing here -->
</xsl:template>

Значение шаблона соответствия выше :

Соответствует любому атрибуту с local-name() foo , который находится в пространстве имен, с которым связан префикс "ns:" , и чей"родитель"( элемент, к которому прикреплен этот атрибут) * имеет еще один атрибут с именем * ns:bar.

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