2009-09-11 56 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转换为适当的字符。

相关问题