XSLT-如何获取xmlid的类型并为其调用应用模板?

XSLT-如何获取xmlid的类型并为其调用应用模板?,xml,xslt,Xml,Xslt,我是XSLT的新手。我正在使用MagicDraw并将sysml模型导出到UMLXMI2.5版本。 生成的xmi的格式如下 <xmi:XMI xmlns:uml='http://www.omg.org/spec/UML/20131001'> <uml:Model xmi:type='uml:Model' xmi:id='eee_1045467100313_135436_1' name='Model'> <xmi:Extension extender='MagicDra

我是XSLT的新手。我正在使用MagicDraw并将sysml模型导出到UMLXMI2.5版本。 生成的xmi的格式如下

<xmi:XMI xmlns:uml='http://www.omg.org/spec/UML/20131001'>
<uml:Model xmi:type='uml:Model' xmi:id='eee_1045467100313_135436_1' name='Model'>
<xmi:Extension extender='MagicDraw UML 18.4'>
<packagedElement xmi:type='uml:Class' xmi:id='_18_4_1_8a70262_1495692226026_145378_13658' name='a'>
<ownedAttribute xmi:type='uml:Port' xmi:id='_18_4_1_8a70262_1495692263168_183171_13795' name='p1' visibility='public' aggregation='composite'/>
</packagedElement>
<packagedElement xmi:type='uml:Class' xmi:id='_18_4_1_8a70262_1495692227629_410625_13704' name='b'>
<ownedAttribute xmi:type='uml:Port' xmi:id='_18_4_1_8a70262_1495692268225_236623_13810' name='p1' visibility='public' aggregation='composite'/>
</packagedElement>
<packagedElement xmi:type='uml:Class' xmi:id='_18_4_1_8a70262_1495692251639_26689_13750' name='IB'/>
</uml:Model>
<sysml:Block xmi:id='_18_4_1_8a70262_1495692226026_635824_13659' base_Class='_18_4_1_8a70262_1495692226026_145378_13658'/>
<sysml:Block xmi:id='_18_4_1_8a70262_1495692227629_766722_13705' base_Class='_18_4_1_8a70262_1495692227629_410625_13704'/>
    <sysml:InterfaceBlock xmi:id='_18_4_1_8a70262_1495692251640_837375_13751' base_Class='_18_4_1_8a70262_1495692251639_26689_13750'/>

我写过这样的xslt

<?xml version="1.0" encoding="utf-8"?>    
<xsl:stylesheet 
  xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
  <xsl:output method="xml"/>
  <xsl:strip-space elements="*"/>

  <!--Handling of the Header-->
  <xsl:template match="/XMI">
    <simulinkExportBlocks>
        <xsl:for-each select="Block">
            <xsl:apply-templates select="Block"/>
        </xsl:for-each>
    </simulinkExportBlocks>
  </xsl:template>

  <xsl:template match="Block">
    <compositeBlock><xsl:apply-templates select="text()|B|I|U|DEF|LINK"/></compositeBlock>
  </xsl:template>

</xsl:stylesheet>

我正在尝试编写xsl文件,用于将UML2.5XMI转换为自定义xml

uml元素在一个地方定义,在另一个地方用于图表表示

我想为块、接口块、连接器等每个元素创建自定义xml标记

如何在xsl文件中使用xml id对其进行分类


有人能在这方面帮助我吗。

请在您的问题中写下必要的信息,如xml块(而不是作为注释),并提供您到目前为止尝试过的内容,以及更多的澄清,如分类的含义和您想要的输出类型。谢谢Gerriet:)好的,您大大改进了问题,虽然还不太清楚预期的输出是什么,但分类意味着什么,以及在两个地方的外观如何影响到这一点。首先,我建议学习基于属性选择节点的选项,如