AEM 内容包导入出现 "SAXException: unknown type" 错误
AEM Content Package import gives "SAXException: unknown type" error
我正在尝试将包含 JSON 数据的 CRX 内容包上传到 AEM,但我遇到了错误。
目前,我只是想在页面下创建一个空的 JSON 对象,以证明我的 XML 文件的结构。
我的包中 .content.xml
文件的结构如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root jcr:primaryType="cq:Page">
<jcr:content jcr:primaryType="cq:PageContent">
<data jcr:primaryType="nt:file">
<jcr:content
jcr:primaryType="nt:resource"
jcr:mimeType="application/json"
jcr:data="{}"/>
</data>
</jcr:content>
</jcr:root>
我已经对 jcr:data
属性 中的大括号(即 {}
)进行了实体编码,以尝试避免在导入时遇到编码问题。我得到的错误是:
E /path/to/node (org.xml.sax.SAXException: unknown type:
java.lang.IllegalArgumentException: unknown type: )
即使 JCR 使用 HTML 个实体作为转义特殊字符的手段,SAX 本身也在解码之前的实体,并在尝试解析数据时遇到问题。
SAX 将花括号识别为定义类型的特殊字符(无论它们是否编码为 HTML 实体)。
错误消息看起来是空的原因是因为 JSON 对象本身是空的,例如如果 JSON 数据是 {hello world}
,则返回的错误将是 unknown type: hello world
。
要解决此问题,即使使用 HTML 个实体,也需要使用反斜杠对大括号进行转义,例如两者:
jcr:data="\{\}"
或
jcr:data="\{\}"
将正常工作。
我正在尝试将包含 JSON 数据的 CRX 内容包上传到 AEM,但我遇到了错误。
目前,我只是想在页面下创建一个空的 JSON 对象,以证明我的 XML 文件的结构。
我的包中 .content.xml
文件的结构如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<jcr:root jcr:primaryType="cq:Page">
<jcr:content jcr:primaryType="cq:PageContent">
<data jcr:primaryType="nt:file">
<jcr:content
jcr:primaryType="nt:resource"
jcr:mimeType="application/json"
jcr:data="{}"/>
</data>
</jcr:content>
</jcr:root>
我已经对 jcr:data
属性 中的大括号(即 {}
)进行了实体编码,以尝试避免在导入时遇到编码问题。我得到的错误是:
E /path/to/node (org.xml.sax.SAXException: unknown type:
java.lang.IllegalArgumentException: unknown type: )
即使 JCR 使用 HTML 个实体作为转义特殊字符的手段,SAX 本身也在解码之前的实体,并在尝试解析数据时遇到问题。
SAX 将花括号识别为定义类型的特殊字符(无论它们是否编码为 HTML 实体)。
错误消息看起来是空的原因是因为 JSON 对象本身是空的,例如如果 JSON 数据是 {hello world}
,则返回的错误将是 unknown type: hello world
。
要解决此问题,即使使用 HTML 个实体,也需要使用反斜杠对大括号进行转义,例如两者:
jcr:data="\{\}"
或
jcr:data="\{\}"
将正常工作。