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

Veja também