0

ArgoUML からエクスポートされた XMI ドキュメントを処理しています。という形の要素を持っています。

<UML:DataType href='http://argouml.org/profiles/uml14/default-uml14.xmi#-84-17--56-5-43645a83:11466542d86:-8000:000000000000087C'/>

フォームのアイテムを指す

<UML:DataType xmi.id="-84-17--56-5-43645a83:11466542d86:-8000:000000000000087C"
              name="Integer"
              isSpecification="false"
              isRoot="false"
              isLeaf="false"
              isAbstract="false"/>

xslt ファイルの先頭で xmlns:UML="org.omg.xmi.namespace.UML" を既に宣言しています。私は次のようなものを使用する必要があると思います:

<xsl:variable name="typeref" select="@href"/>
<xsl:variable name="ns" select='substring-before($typeref, "#")'/>
<xsl:variable name="identifier" select='substring-after($typeref, "#")'/>
<xsl:value-of xmlns:UML="$ns" 
              select='//UML:DataType[@xmi.id="$identifier"]/@name'/>

私のUML属性タイプは整数であると推測しますが、これは私に与えます

SystemId Unknown; Line #136; Column #94; A location step was expected following the '/' or '//' token.

xmlns を AAA に変更すると、エラーは発生しませんが、空のタグが表示されます。Debian スクイーズで Xalan2 を使用しています。私は何が欠けていますか?

4

1 に答える 1

0

気にしないでください。名前空間とURIを混同するという古典的な間違いを犯しているだけです。私が本当に必要としていたのは <xsl:value-of select='document($ns)//UML:DataType[@xmi.id=$identifier]/@name'/> でした

于 2011-03-13T16:55:30.990 に答える