Ich nehme einige Daten aus XML und übersetze es in Turtle/N3. Ich möchte @ Prefix und Namespace-URLs am Anfang hinzufügen. Die ursprüngliche XML ist so etwas wie:In XQuery, wie die Zeichenfolge Ausgangsinhalt von der Übersetzung in Entität zu halten?
<xxx>
<country
name="XX"
population="NN">
...
</country>
...
</xxx>
ich die XQuery schreiben:
declare function local:genPopulation()as xs:string* {
let $countries:=doc("mondial-3.0.xml")//country
for $elt in $countries
let $population := $elt/@population[1]
let $countryName := $elt/@name
return (concat(":",$countryName,":population :",$population,".
"))
};
"
","@prefix rdf: <http://www.w3.org/1999/02/22‐rdf‐syntax‐ns#> .","
",
"@prefix : <http://lyle.smu.edu/cse7347/> .","
",
local:genPopulation()
Die Ausgabe lautet:
<?xml version="1.0" encoding="UTF-8"?>
@prefix rdf: <http://www.w3.org/1999/02/22‐rdf‐syntax‐ns#> .
@prefix : <http://lyle.smu.edu/cse7347/> .
:Albania:population :3249136.
:Andorra:population :72766.
..
...
Die Ausgabe übersetzt das Original "<" und ">" zu "<" und ">". Wie behalten Sie diese Zeichenfolge unverändert? Ich möchte die Ausgabe wie:
@prefix rdf: <http://www.w3.org/1999/02/22‐rdf‐syntax‐ns#> .
@prefix : <http://lyle.smu.edu/cse7347/> .
:Albania:population :3249136.
...
Ihre Ausgabe wird als XML serialisiert. Versuchen Sie, eine Serialisierungsoption hinzuzufügen. deklariere Ausgabe: method "text"; – chrisis
@chrisis Ich füge 'declare namespace output = "http://www.w3.org/2010/xslt-xquery-serialization"; deklariere die Option output: method "text"; "am Anfang und es funktioniert! Vielen Dank! – Mayoco
@chrisis Bitte machen Sie Ihren Kommentar zu einer Antwort, damit diese richtig bestätigt und abgestimmt werden kann. – joewiz