我在使用XSLT方面很新穎。將XML文件轉換爲空白節點的RDF
我正在編寫從XML(元數據)文檔到XML/RDF的XSL轉換,並且我還在改進原始文檔的基礎模型。具體而言,原來的文件描述了一個人,在某些時候它列出了所有的人的名字:
<?xml version="1.0" encoding="UTF-8"?>
<Person RecordID="abcd">
<PersonNames>
<PersonName>
<Surname>Doe</Surname>
<FirstName>John</FirstName>
</PersonName>
<PersonName>
<Surname>Doe</Surname>
<FirstName>Janine</FirstName>
</PersonName>
<PersonName>
<Surname>Smith</Surname>
<FirstName>Janine</FirstName>
</PersonName>
</PersonNames>
</Person>
我不想這個人的URI這樣做單獨連接到每一個項目,作爲目前還不清楚'喬史密斯'從來不是這個人的名字。我寧願爲每個名稱使用一個空白節點,然後將FirstName和Surname鏈接到相應的空白節點;然而,我找不到一個解決方案來生成一個空白節點的ID(我會在xsl:for-each循環中遍歷所有人的名字),然後我可以在循環外調用並引用。
直觀上,我會爲這些元素中的每一個創建一個id personNameID,然後,在循環外(以及子樹外),我將添加相應的三元組。結果會是這樣的:
<rdf:RDF 'namespaces'>
<localontology:Person>
... person's metadata ...
<foaf:name rdf:nodeID="name1">
<foaf:name rdf:nodeID="name2">
....
</localontology:Person>
<rdf:Description rdf:nodeID="name1">
<localontology:firstName 'FirstName in name1'>
<localontology:surname 'Surname in name1'>
</rdf:Description>
<rdf:Description rdf:nodeID="name1">
<localontology:firstName 'FirstName in name2'>
<localontology:surname 'Surname in name2'>
</rdf:Description>
我真的不知道我可以使用哪些函數/構造...有人可以幫助嗎?
你的問題不清楚:你的例子要求的輸出是什麼(假設你發佈的是輸入)? –
對不起,在完成編輯之前,我按下了「發佈」按鈕!這種方式足夠清楚嗎? – klaraspina
對不起,沒有。我不知道「三元組」或「空白節點」是什麼意思。 –