如何在CDATA

时间:2016-05-26 08:37:30

标签: java xml xml-serialization

我需要在其他XML文档的文本字段中包含完整的XML文档

例如

<mytexttag>
   <![CDATA[    
      here the xml document starting with <?xml version="1.0"
   ]]>     
</mytexttag>

我必须使用固定的XSD,我无法适应它。

read CDATA仍然是文档的一部分,这意味着这些字符串之间的数据包含可以解释为XML标记的数据,但不应该是。

但我不知道我是否可以绕过这些限制。目前,如果我包含完整的XML,我会解析错误

这可能是一个真实的例子

<?xml version="1.0" encoding="UTF-8"?>
<mytexttag>
    <![CDATA[ <n1:ClientInvoiceExtension xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:n1="http://www.myclient.es/facturae/ClientInvoiceExtension/v1.0" xsi:schemaLocation="http://www.myclient.es/facturae/ClientInvoiceExtension/v1.0/ClientInvoiceExtension_v1_0.xsd"><Version>1.0</Version><LineExtension><InvoiceFamily>ejempló con carañññ</InvoiceFamily><ContractCode>el code</ContractCode><PurchaseRequestCode>String</PurchaseRequestCode><DerivationCode>String</DerivationCode>ContractFileCode>String</ContractFileCode><Patient><IPF>PASAPORTE</IPF><PatientId>String</PatientId><FullName>String</FullName></Patient><Process><Contingency>String</Contingency><Year>0</Year><Province>String</Province><Number>String</Number></Process><MazCenterId>String</MazCenterId><MazCenterProvince>String</MazCenterProvince><Diagnostic>String</Diagnostic><Medical>String</Medical><RecipeNumber>String</RecipeNumber><MazEmployeeFullName>String</MazEmployeeFullName>       <HealthcareDeliveryCode>String</HealthcareDeliveryCode> </LineExtension></n1:MazInvoiceExtension>]]>     
</mytexttag>

当插入特殊字符如'áóñ'我的xml编辑器说它是无效的xml

我可以考虑在base64中进行编码,但是我在该字段中有一个大小限制,而不是增加大小

1 个答案:

答案 0 :(得分:1)

问题是您的XML包含的字符不是以UTF-8格式编码的......