2009-04-16 21 views
2

試圖幫助這裏的朋友...有一些輸出可以通過將xml節點輸出到文件中的外部工具生成。他需要使這個XML格式良好,並在其上應用xsl樣式表。如何導入包含具有自定義名稱空間的元素的XML外部實體?

因此,我們有b.xml(由工具生成)和Encomp.xml,將b.xml的內容導入爲這樣的XML外部實體(如果您想嘗試此操作,請在同一文件夾中創建3個xml文件出)

Encomp.xml

<?xml version="1.0" encoding="utf-8"?> 

<!DOCTYPE document [ <!ENTITY data SYSTEM 'b.xml'>]> 
<Root-Element xmlns:log="http://log4net.sourceforge.net/"> 
    &data; 
</Root-Element> 

B.XML

<log:MyNode Name="Node1"/> 
<log:MyNode Name="Node2"/> 
<log:MyNode Name="Node3"/> 

A.XML

<MyNode Name="Node1"/> 
<MyNode Name="Node2"/> 

現在的問題是,這種做法與像A.XML(其中的節點不與命名空間限定的)內容的作品,但對於B.XML不起作用。

我的猜測是,可能命名空間在DOCTYPE行未定義,它只在下一行聲明。我如何得到這個工作?

回答

2

B.XML需要包括屬性xmlns:log="http://log4net.sourceforge.net/"

編輯:其實這並沒有真正解決任何問題,底線是,DTD不明白xmlns聲明和別名反正。因此,你最終會遇到其他錯誤。

+0

b.xml是從一個外部工具出來..不能改變它的輸出。無論如何,我可以在Container xml中包含名稱空間來完成此工作。 – Gishu 2009-04-16 13:57:06

相關問題