A XMLBean Tip
来源:互联网 发布:linux运维面试技巧 编辑:程序博客网 时间:2024/05/22 07:51
A XMLBean Tip
XMLBean的确是一个非常方便的工具,可以根据XSD来生成Java Class,使得我们以非常舒服的面向对象的方式读写XML,比.Net世界里面的XmlDocument和XmlNode对象来得更加直观。不过,Java世界里面的文档真的是令人不敢恭维,从代码生产的粗陋的Java Doc就当作API Ref,根本不能和微软的MSDN相提并论,这在我使用Java的多种开发工具和Lib的时候,一次次地加深了这样的印象。
前段时间我使用XMLBean来生成xml串,我的过程是这样的:1、使用XMLSpy写好XSD,然后使用XMLBean帮我生成Java Class。2、使用这些Java Class来创建Document,数据来源则是数据库 3、获得生成的document的XML String。3、适应Web Service将这些XML String发送到远程服务器。4、远程服务器会根据XSD对收到的XML进行校验,以检查是否符合规范。 结果问题来了,远程服务器(程序是另外一个公司的人写的,但使用的是相同的XSD)总是校验不通过。经过检查,我发现XMLBean生成的XML Element的节点标签和XSD中定义的并不完全一致,比如我在XSD中定义了:
而生成的xml中则是
这样设置了以后,XMLBean就不会自作聪明的把XSD里面我们定义的比较长的Element Tag Name和XML NS设置为比较简略的缩写名称了。
前段时间我使用XMLBean来生成xml串,我的过程是这样的:1、使用XMLSpy写好XSD,然后使用XMLBean帮我生成Java Class。2、使用这些Java Class来创建Document,数据来源则是数据库 3、获得生成的document的XML String。3、适应Web Service将这些XML String发送到远程服务器。4、远程服务器会根据XSD对收到的XML进行校验,以检查是否符合规范。 结果问题来了,远程服务器(程序是另外一个公司的人写的,但使用的是相同的XSD)总是校验不通过。经过检查,我发现XMLBean生成的XML Element的节点标签和XSD中定义的并不完全一致,比如我在XSD中定义了:
<xs:element name="MyVeryLongTagName">
<MVLTN></MVLTN>
这样的内容,从表面上来看,XMLBean为我生成了Tag的缩写形式,而这不是我想要的。查了XMLBean的粗陋的Java Doc,试了多个API才解决了问题,现在将小Tip列出来: 保证生成的XML的Element的Tag名称和XSD中定义的名称完全一致,需要作额外的工作,如: MyXmlDocument doc = MyXmlDocument.Factory.newInstance();
//create and set xml node value
//set XmlOptions
XmlOptions opt = new XmlOptions();
Map map = new HashMap();
map.put("my Xml namespace","xmlnsNameInXml");
map.put("my element tag name","elementTagNameInXml");
//set use implicit namespaces
opt.setSaveImplicitNamespaces(map);
//get xml string
String xmlString = doc.xmlText(opt);
//create and set xml node value
//set XmlOptions
XmlOptions opt = new XmlOptions();
Map map = new HashMap();
map.put("my Xml namespace","xmlnsNameInXml");
map.put("my element tag name","elementTagNameInXml");
//set use implicit namespaces
opt.setSaveImplicitNamespaces(map);
//get xml string
String xmlString = doc.xmlText(opt);
这样设置了以后,XMLBean就不会自作聪明的把XSD里面我们定义的比较长的Element Tag Name和XML NS设置为比较简略的缩写名称了。
- A XMLBean Tip
- xmlbean
- A Tip
- A Sql Tip
- A Google Chrome Tip
- About grobal variable--a tip
- A little kernel debug tip
- learning xmlbean
- XmlBean学习心得
- XMLBean使用
- XMLBean应用
- tip
- Tip
- tip
- Tip:
- TIP
- Tip
- tip
- 存储过程和c#调用
- error:LUT has improper length 错误处理
- 如何在 Windows XP 中将 FAT16 或 FAT32 卷转换为 NTFS 文件系统
- TIPS:QTP自带的Recovery场景文件
- R/3 是什么?[转]
- A XMLBean Tip
- Cacls.exe 命令行下修改文件访问控制权限
- Apache2.2.6整合Tomcat6.0.18 (绝对实践过)
- INSTALLSHIELD 12 关于Device Driver wizard 向导无法加载SYS文件问题说明
- IE 下VML动画的奇怪现象:GWTCanvas基于定时器的图形动画当鼠标移动时停止动画效果(直接用VML写代码效果也一样)
- jsp编译指令中的加载指令 及常用对象
- apache + apache c++ 扩展 + mysql + php + php c++ 扩展
- Symbian 文件流存储简单操作
- 多重引导管理器Grub使用详解