Kaç tane düğümde çalıştığımı hatırlamak için bir sayaç kullanmalıyım. Bu yüzden global var $ classCounter tanımladım. Bazı bilinmeyen nedenlerden ötürü, bir hata alıyorum bu hatadan ne anlama geldiğini anlamıyorum. XQuery'de global bir sayaç nasıl uygulanır?XQuery: global var fonksiyonunu kullanarak
bütün xqy dosyasıdır:
declare namespace rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#";
declare namespace owl="http://www.w3.org/2002/07/owl#";
declare namespace xsd="http://www.w3.org/2001/XMLSchema#";
declare namespace rdfs="http://www.w3.org/2000/01/rdf-schema#";
import module namespace functx="http://www.functx.com";
declare variable $srcDoc:="test_xsd.xml"; (:need to adjust the input XSD file here:)
declare variable $defaultXMLNS:="http://www.test.com#";
declare variable $defaultXMLBase:=$defaultXMLNS;
declare variable $classCounter:=0;
declare function local:owlClassNameBuilerHelper($pnode as node()*)
as xs:string?
{
$classCounter:=classCounter+1;
let $tmp:=""
return
(
"haha"
(:if(functx:if-empty($pnode/@name, "-1")!="-1") (:if the name attr doesn't exist:)
then data($pnode/ancestor::element[1]/@name) (:get the name attr of first ancestor named element:)
else data($pnode/@name):)
)
};
element rdf:RDF
{
namespace {""} {$defaultXMLNS},
namespace {"owl"} {"http://www.w3.org/2002/07/owl#"},
namespace {"xsd"} {"http://www.w3.org/2001/XMLSchema#"},
namespace {"rdfs"} {"http://www.w3.org/2000/01/rdf-schema#"},
attribute xml:base {$defaultXMLBase}
}
komut satırı: Ben ile uğraşan var kaç düğüm hatırlamak için bir sayaç kullanmak gerekir
zorba -i -f -q test.xqy
Lütfen bir [SSCCE] (http://sscce.org) belirtin. Sorunun ilgili kısmının kodun atlanmış bölümünde yer almasından korkuyorum. Lütfen asgari bir örnek bulmaya çalışın (a) Buradan mesaj gönderebilirsiniz ve (b) çok uzun değil. Olduğu gibi, bu soru neredeyse cevaplanamaz ve bundan dolayı kapalı olabilir. –
XQuery Scripting'i kullanıyor musunuz? Bu, göstermeniz gereken çok önemli bir şey. –
@JensErat güncellendi –