2011-03-17 53 views
0

我使用各種變換在零件中生成XML文檔。特別是,我生成一個包含所有名稱空間聲明的頭文件,然後將其預先添加到文檔中。然而,轉換不知道這一點,因此堅持另一個聲明。這通常不會成爲問題,但數百萬這些東西是生成並存儲在數據庫中的,因此有大量冗餘聲明是浮動的,這相當麻煩。從XSL變換的結果中排除名稱空間聲明

如何關閉命名空間聲明的生成?我已經看到exclude-result-prefixes屬性,但是其文檔聲明所用的名稱空間的聲明將被添加,這似乎使該選項毫無意義。

+0

您寫了_「我正在使用各種變換生成部分XML文檔」_。這是否意味着您正在使用多個樣式表,其中包括其他導入的樣式表?如果是這樣,那麼你最好在每個'xsl:stylesheet'元素中聲明所有的命名空間,以便允許命名空間前綴fixup機制完成它的工作。 – 2011-03-17 16:04:07

回答

0

XSLT轉換的輸出將始終是格式良好的(和名稱空間良好的)XML。如果你想要的東西不是,你就失敗了。

我會質疑你的設計。這似乎是一個糟糕的主意,其後果你開始發現。

+0

懷疑這可能是答案。我認爲設計背後有一些原因(我沒有提出它),但它似乎是足夠的,它不是xslt會支持的東西。 – Submonoid 2011-03-17 17:46:20