2009-09-11 63 views

回答

2

結果是否意味着是XML文件?正如你所說,XML不允許字符U + 000B。因此,根據定義,任何包含該字符的文件都不是有效的XML文件。這裏的大圖是什麼?你爲什麼需要那個角色?你可以選擇哪些替代方案?

如果您嘗試創建文本文件作爲XSLT轉換的結果,則這是另一回事。

+0

我需要把它轉換成XML文檔,然後把這個文檔轉換成Java Object(jPOS ISOMessage Object通過網絡發送) XML文件的值之一應該是U + 000B,是否可能? – 2009-09-11 09:17:32

+1

不是沒有逃避,沒有。你可以選擇另一個你不會在別處使用的「特殊」(但支持)字符,然後恰當地在兩個字符之間切換。相當可怕,但它會奏效。 – 2009-09-11 09:20:04

+0

您的意思是在XSLT中,我將生成的XML的值設置爲支持特定字符而不是U + 000B,然後當轉到使用此XML文件的代碼時,我將此字符的值更改回U + 0000B? – 2009-09-11 09:29:54

0

在添加到XML文檔之前,您還可以編碼包含0x0B到Base64的有效負載。

這將依賴於您的輸出轉換的使用者能夠從Base64轉換回原始編碼。

+0

生成的XML文檔從XSL文件獲取其硬編碼值 – 2009-09-11 09:18:28

0

如果相關的XML格式支持這些字符,我希望它們駐留在某些支持CDATA的元素中。

你可以把你的角色放入CDATA部分嗎? XSLT有一個用於創建CDATA節的構造(< xsl:cdata >)。在內部,您可以使用XML實體引用編碼您的角色< xsl:entity-ref/>。

讀取您的XML文件的解析器應該能夠將這些entityrefs轉換爲適當的字符。

相關問題