2015-09-22 42 views
1

我使用Saxon HE 9.6將一些XML轉換爲使用XQuery的Yin元素。不需要的字符串在構造函數中使用typedef

當我使用XQuery構造函數生成Yin分組和typedef元素時,我在輸出中收到不需要的xmlns=""字符串。

例如,當我使用包含一個構造:

typedef name="some_name" 

所生成的樣子

typedef xmlns="" name="some_name" 

注意,元件被封閉在小於/大於在兩個字符的輸出構造函數和輸出。

爲什麼xmlns=""正在生成,我該如何防止它?

+0

您好!我編輯了你的問題,使其更具可讀性,例如識別代碼。編輯標題以便更容易找到,並添加標籤以使其更易於看到。 – Marcelo

回答

0

xmlns =「」有什麼問題?每個XML元素和屬性總是在一個名稱空間中。你看到的是全局命名空間。

如果您在另一個命名空間的另一個元素內部看到此內容,則很可能在您創建新元素時,您沒有定義與父元素的命名空間匹配的特定命名空間。在這種情況下,您會看到每個元素的特定全局名稱空間。

<foo xmlns="http://www.example.com/foo"> 
    <bar>baz</bar> 
</foo> 

如果我添加在編程元素<bar2>baz2</bar2>,我可能就結了:

<foo xmlns="http://www.example.com/foo"> 
    <bar>baz</bar> 
    <bar2 xmlns="">ba2</bar2> 
</foo> 
+0

問題是xmlns字符串正在被XQuery添加,而不是由我的構造函數本身添加,並且也不一致。不是每個元素都有,甚至沒有每個typedef或分組元素。真正的問題是,我用一個名爲「pyang」的工具對XQuery輸出進行後處理,該工具從我用XQuery創建的Yin構造中生成Yang對象模型,並且由於額外的xmlns字符串,pyang會生成錯誤。我需要知道他們爲什麼會自動生成(但並非總是),以及是否有辦法阻止XQuery執行此操作。 –

相關問題