Java JAXB和XML规范化
我希望根据 如果我这样写:Java JAXB和XML规范化,java,jaxb,marshalling,w3c,Java,Jaxb,Marshalling,W3c,我希望根据 如果我这样写: marshaller.setProperty(marshaller.JAXB_格式化的_输出,Boolean.TRUE) 行吗 如果没有,JAXB能完成这项工作吗?不,根据我的说法,我不会依赖于JAXB\u格式化的\u输出属性。您可以使用您提到的规范中的示例对其进行测试。以下是我的初步答案: 1-文件采用UTF-8编码 默认情况下,JAXB封送到UTF-8编码 2-在解析之前,输入上的换行符标准化为#xA JAXB不保留换行符,因此这实际上不适用 3-属性值被规范化,
marshaller.setProperty(marshaller.JAXB_格式化的_输出,Boolean.TRUE)代码>
行吗
如果没有,JAXB能完成这项工作吗?不,根据我的说法,我不会依赖于JAXB\u格式化的\u输出
属性。您可以使用您提到的规范中的示例对其进行测试。以下是我的初步答案:
1-文件采用UTF-8编码
默认情况下,JAXB封送到UTF-8编码
2-在解析之前,输入上的换行符标准化为#xA
JAXB不保留换行符,因此这实际上不适用
3-属性值被规范化,就像由验证处理器一样
您可以在Unmarshaller
上指定XmlSchema
,使JAXB实现使用验证处理器:
4-替换字符和已解析的实体引用
大多数JAXB实现将这项工作委托给所使用的底层解析器
5-CDATA节将替换为其字符内容
标准JAXB API不允许封送到CDATA节,因此在这里您可以
6-删除XML声明和文档类型声明(DTD)
JAXB不编写DTD声明。可以通过执行以下操作删除XML声明:
marshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
7-空元素转换为开始-结束标记对
JAXB不会将空元素作为开始-结束标记对写入。应该能够想出一个解决办法
8-文档元素外部以及开始和结束标记内部的空白被规范化
9-保留字符内容中的所有空白(不包括换行规范化过程中删除的字符)
JAXB实现保留字符内容中的所有空白(在开始/元素标记之间)
10-属性值分隔符设置为引号(双引号)
reference和MOXy-JAXB实现使用双引号作为属性值分隔符
11-属性值和字符内容中的特殊字符替换为字符引用
JAXB将用替换&
代码>,谢谢:)For:7-如果我创建一个空对象,空元素将转换为开始-结束标记对jaxb write没关系,我想我终于找到了一个库:谁根据w3c提供了规范化