Я обрабатываю документ XMI, экспортированный из ArgoUML.Он имеет элементы вида
<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"/>
Я уже объявил xmlns: UML = "org.omg.xmi.namespace.UML" в верхней части файла xslt.Я думаю, что я должен использовать что-то вроде:
<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 - Integer, но это дает мне
SystemId Unknown; Line #136; Column #94; A location step was expected following the '/' or '//' token.
Если я изменю xmlns на AAA, я получу не ошибку, а пустой тег.Я использую Xalan2 на Debian Squeeze.Чего мне не хватает?