Если ваш скрипт ссылается на пространство имен xmi
, он должен быть включен в основной элемент скрипта.
Таким образом, stylesheet
должен содержать xmlns:xmi="..."
.
Ниже приведен пример сценария.
Я также добавил xsl:output
для включения отступа и xsl:strip-space
для
отфильтровывать ненужные пробелы.
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xmi="http://www.omg.org/spec/XMI/20131001">
<xsl:output method="xml" indent="yes"/>
<xsl:strip-space elements="*"/>
<xsl:template match="packagedElement[@xmi:type='uml:Association']"/>
<xsl:template match="node()|@*">
<xsl:copy><xsl:apply-templates select="node()|@*"/></xsl:copy>
</xsl:template>
</xsl:stylesheet>
Я заметил, что в комментарии к вашему вопросу вы добавили
xmlns: xmi = "omg.org/XMI" в элемент таблицы стилей , но
в вашем источнике XML есть более длинная версия, а именно: xmlns: xmi = "http://www.omg.org/spec/XMI/20131001".
Я временно изменил xmlns: xmi на вашу «укороченную» версию и вывод
стал другим.
Так что следите не только за включением необходимых пространств имен,
но также относятся ли они к тому же адресу.