предотвращение импорта одной и той же таблицы стилей - PullRequest
0 голосов
/ 23 февраля 2012

Мы используем инструмент моделирования, который генерирует wsdl из компонентов. Инструмент генерирует несколько файлов wsdl и один wsdl, который импортирует все необходимые wsdl (некоторые из них являются общими объектами, необходимыми для нескольких веб-сервисов). Я написал xsl, который объединяет все файлы в один, но это приводит к тому, что некоторые wsdls включаются более одного раза, а иногда и как дочерние элементы. Это шаблон, который обрабатывает элементы импорта:

<xsl:template match="wsdl:import">
  <xsl:apply-templates select="document(@location)"/>
</xsl:template>

Я бы хотел проверить, был ли файл уже импортирован, и если это так, игнорировать его. Есть ли способ сделать это в xsl? Спасибо.

1 Ответ

0 голосов
/ 23 февраля 2012
<xsl:key name="imports-by-location" match="wsdl:import" use="@location"/>

<xsl:template match="wsdl:import">
    <xsl:if test="generate-id() = generate-id(key('imports-by-location', @location))">
        <xsl:apply-templates select="document(@location)"/>
    </xsl:if>
</xsl:template>

Для получения дополнительной информации см. метод Мюнхена (например, http://www.jenitennison.com/xslt/grouping/muenchian.html)

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