resolve-QName
Descrição
A função fn:resolve-QName resolve um QName com base nos namespaces em escopo de um elemento. O argumento $qname é uma string com um nome qualificado, com prefixo (por exemplo, prod:number) ou sem (por exemplo, number). O argumento $element é o elemento cujos namespaces em escopo dizem qual URI de namespace está ligado ao prefixo. Se $qname não tiver prefixo, vale a declaração de namespace padrão de $element. Se não houver namespace padrão em escopo, o QName construído não tem namespace.
Repare que o prefixo nunca é resolvido pelo contexto da consulta. Por exemplo, se você ligar o prefixo pre ao namespace http://datypic.com/pre no prólogo da consulta, isso não importa ao chamar fn:resolve-QName com o primeiro argumento pre:myName. O que importa é só como o prefixo está ligado em $element. Se você quer usar o contexto da consulta, use o construtor xs:QName, como em xs:QName("pre:myName").
Parâmetros |
Descrição |
|---|---|
qname:string() |
o QName a resolver |
element:element() |
o elemento que define o escopo |
Exemplos
Os exemplos abaixo usam este documento de entrada:
<xsl:stylesheet xmlns:ord="http://datypic.com/ord"
xmlns:dty="http://datypic.com"
xmlns:dty2="http://datypic.com/ns2">...
<xsl:variable name="root" as="item()*">
<root>
<order xmlns:ord="http://datypic.com/ord"
xmlns="http://datypic.com">
<!-- ... -->
</order>
</root>
</xsl:variable>
XPath |
Resultado |
|---|---|
resolve-QName('myName', $root) |
A QName whose namespace is empty, whose prefix is empty, and whose local part is myName |
resolve-QName('myName', $root/dty:order) |
A QName whose namespace is http://datypic.com, whose prefix is empty, and whose local part is myName |
resolve-QName('ord:myName', $root) |
Error FONS0004 |
resolve-QName('ord:myName', $root/dty:order) |
A QName whose namespace is http://datypic.com/ord, whose prefix is ord, and whose local part is myName |
resolve-QName('dty2:myName', $root/dty:order) |
Error FONS0004 |