繁体   English   中英

用Java生成有效的XML名称

[英]Generate valid XML name in Java

是否有任何帮助程序会将字符串转换/转义为有效的XML名称?

例如,我有字符串max(OfAll) ,需要生成一些XML,例如

<max(OfAll)>SomeText</<max(OfAll)>

显然这不是一个有效的名称,是否有一些辅助方法可以将字符串转换为有效的xml名称?

(为了进行比较,.NET有一些上面的xml片段将是的方法:

 <max_x028_OfAll_x028_>SomeText</<max_x028_OfAll_x028_>)

.NET示例中的编码类似于ISO9075中定义的编码。 我认为jdk中没有内置的实现,但是这种编码也被alfresco或jackrabbit之类的内容存储库用于其XML导入/导出和查询api。 快速搜索发现了这两种实现,它们都可以在开源许可下使用:

apache commons-lang项目中的StringEscapeUtils是可能在其他情况下使用的一类。 它可以转义要在XML文档中使用的文本,我不知道要转义XML元素名称的任何内容。

您能否生成更易读的内容,例如

<aggregation type="max(OfAll)">SomeText</aggregation>

有很多库可用于将对象编组/解组到xml以及返回到xml,包括JAXB (JDK的一部分), JiBXCastorXStream

我不知道有什么辅助方法,但是这里的规则http://www.w3.org/TR/REC-xml/#NT-Name非常简单,因此应该很容易实现。

应当清楚,正常的XML转义(用字符实体替换不适当的字符)不会产生有效的XML标识符。

根据记录,您所做的通常称为“名称修改”。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM