Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache Wink可以忽略不可打印的xml字符吗?_Xml_Jaxb_Control Characters_Apache Wink - Fatal编程技术网

Apache Wink可以忽略不可打印的xml字符吗?

Apache Wink可以忽略不可打印的xml字符吗?,xml,jaxb,control-characters,apache-wink,Xml,Jaxb,Control Characters,Apache Wink,我的应用程序使用Wink和JDK1.6内置的JAXB提供程序支持RESTAPI。 有时我会收到包含控制字符的PUT请求 就我的应用程序而言,控制字符构成了有效且有意义的输入。 但是,应用程序抛出臭名昭著的异常,表示它无法消化这些字符: Message: An invalid XML character (Unicode: 0x13) was found in the element content of the document.] at org.apache.wink.common.inter

我的应用程序使用Wink和JDK1.6内置的JAXB提供程序支持RESTAPI。 有时我会收到包含控制字符的PUT请求

就我的应用程序而言,控制字符构成了有效且有意义的输入。 但是,应用程序抛出臭名昭著的异常,表示它无法消化这些字符:

Message: An invalid XML character (Unicode: 0x13) was found in the element content of the document.]
at org.apache.wink.common.internal.providers.entity.xml.JAXBXmlProvider.readFrom(JAXBXmlProvider.java:107)
at org.apache.wink.server.internal.registry.ServerInjectableFactory$EntityParam.getValue(ServerInjectableFactory.java:190)
at org.apache.wink.common.internal.registry.InjectableFactory.instantiate(InjectableFactory.java:67)
at org.apache.wink.server.internal.handlers.CreateInvocationParametersHandler.handleRequest
可能没有办法告诉JAXB提供者忽略这些字符,因为在某个时候我必须解析Xml,而非法就是非法。。。
我怎样才能做到这一点?是否有方法指示Rest客户端在发送这些字符之前转义它们

控制字符是XML,因此您的数据不是XML。它的问题与X类似,除了Y之外,就是很难定义一个API,其中Y可以是个人认为应该是的任何东西。JAXB不太可能满足您的需求。如果可以接受,您可以使用过滤器去除非法字符;否则,您将不得不对合法字符数据中的数据进行编码或转义,例如使用。

控制字符,因此您的数据不是XML。它的问题与X类似,除了Y之外,就是很难定义一个API,其中Y可以是个人认为应该是的任何东西。JAXB不太可能满足您的需求。如果可以接受,您可以使用过滤器去除非法字符;否则,您必须对合法字符数据中的数据进行编码或转义,例如使用。

所述字符不是不可打印的XML字符。它们是不可打印的非XML字符。

所讨论的字符不是不可打印的XML字符。它们是不可打印的非XML字符。

控制字符是不可打印的,因此您的数据不是XML。试图定义它的麻烦在于,除了Y之外,它与X类似,因为很难定义一个API,其中Y可以是个人认为应该是什么。JAXB不太可能满足您的需求。如果可以接受,您可以使用过滤器去除非法字符;否则,您将不得不用法定字符数据(如Base64)对数据进行编码或转义。@McDowell请作为答案发布,我将接受。谢谢。@McDowell它能在JSon中工作吗?唉,不能用JSon字符串编码非控制字符,因为控制字符是这样的,所以您的数据不是XML。试图定义它的麻烦在于,除了Y之外,它与X类似,因为很难定义一个API,其中Y可以是个人认为应该是什么。JAXB不太可能满足您的需求。如果可以接受,您可以使用过滤器去除非法字符;否则,您将不得不用法定字符数据(如Base64)对数据进行编码或转义。@McDowell请作为答案发布,我将接受。谢谢。@McDowell它能在JSon中工作吗?唉,没有控制字符不能在JSon字符串中编码,因为我将编写一个过滤器。给定编码和ServletInputStream,是否有一种简单的方法来确定我刚才读取的字符是否为控制字符?您需要从see确定文档编码,并对其进行解码以确定是否支持。您可以根据XML规范中的进行测试。然后向转发链提供您自己的流。假设我确定编码为UTF8。我看到Character类包含一个方法isISOControl,它有一个输入Unicode码点的版本。它可以工作还是需要另一个转换?字符.isISOControl'\n';计算结果为true,因此这不是您想要的结果。这个问题以前有人问过——例如,参见。在servlet筛选器中从类似XML的数据中筛选无效字符范围的问题可能值得提出自己的问题,不过如果回答者质疑为什么要向此类服务发送无效数据而不是使用更合适的格式,请不要感到惊讶。我将编写一个筛选器。给定编码和ServletInputStream,是否有一种简单的方法来确定我刚才读取的字符是否为控制字符?您需要从see确定文档编码,并对其进行解码以确定是否支持。您可以根据XML规范中的进行测试。然后向转发链提供您自己的流。假设我确定编码为UTF8。我看到Character类包含一个方法isISOControl,它有一个输入Unicode码点的版本。它可以工作还是需要另一个转换?字符.isISOControl'\n';计算结果为true,因此这不是您想要的结果。这个问题以前有人问过——例如,参见。在servlet过滤器中从类似XML的数据中过滤无效字符范围的问题可能值得提出自己的问题,不过如果回答者质疑为什么要向这样的服务发送无效数据而不是使用更合适的格式,请不要感到惊讶。