【问题标题】:How to include XML in a CDATA如何在 CDATA 中包含 XML
【发布时间】:2016-09-24 03:38:30
【问题描述】:

我需要在其他 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编码,但我在那个字段有大小限制,不想增加大小

【问题讨论】:

  • 您打算包含在 CDATA 中的 XML 是否也有 CDATA 节点?
  • 不,没有
  • 如果你不能发布整个 xml 包含,你能发布解析器吐出的具体错误吗?
  • 感谢您的关注。包括一个真实的例子(减少)
  • 你的例子是完全有效的。也许您的编辑器使用了错误的字符编码?

标签: java xml xml-serialization


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-30
    • 1970-01-01
    • 2022-01-07
    相关资源
    最近更新 更多