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中定义了:
<!----><xs:element name="MyLongElementName">而生成的xml中则是
这样设置了以后,XMLBean就不会自作聪明的把XSD里面我们定义的比较长的Element Tag Name和XML NS设置为比较简略的缩写名称了。
</xs:element>
前段时间我使用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">
<!----><xs:element name="MyLongElementName">而生成的xml中则是
<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设置为比较简略的缩写名称了。
</xs:element>
相关推荐
XMLBean读写操作示例,作为XMLBean入门是很好的例子 Eclipse
XmlBean 使用说明及jar包 XmlBean 使用说明及jar包
xmlbean介绍及应用
xmlbean API
利用XMLBean轻轻松松读写XML-入门教程
用xmlbean和xmlstream进行xml和javabean的转换案例
JDOM 操作xml 解析读取xml文件 修改 删除 增添xml指定节点信息的XmlBean
xmlBean eclipse插件
xmlbean生成jar xsd文件生成jar常见问题
NULL 博文链接:https://wulinhaoxia5.iteye.com/blog/1294451
XMLBean详解, 一、关于XML解析 二、XMLBean简介 三、准备XMLBean和XML文档 四、XMLBean使用步骤 ..... 六、利用XMLBean写XML文件
转《利用XMLBean轻轻松松读写XML》 XML在Java应用程序里变得越来越重要, 广泛应用于数据存储和交换. 比如我们常见的配置文件,都是以XML方式存储的. XML还应用于Java Message Service和Web Services等技术作为数据...
正常情况下,每个XML文件都有一个Schema文件,XML Schema文件是一个XML的约束文件,它定义了XML文件的结构和元素.以及对元素和结构的约束. 通俗地讲,如果说XML文件是数据库里的记录,那么Schema就是表结构定义.
xmlbean的多个例子,官网上下载的,大家分享一下
xml 与 bean 互相转换 工具类 1、bean类的属性需要遵守BEAN规范,否则 无法 读存BEAN值。 2、bean类的属性如果 是集合 只支持数组以及List、Map、Set。 3、bean类属性(boolean除外)前面两个字母要么全部小写,要么...
jaxb XMl和BEAN互转实例(内含jar包),将jaxb封装成一个Util工具类,只需要通过对BEAN进行简单的注解就可以直接实现xml和bean之间的互转
xml 转Java bean工具
POI操作excel的需要的所有jar包,包含XSSF和SXSSF操作2007.xlsx文档所依赖的jar包(3.7-3.10)+dom4j.jar+xmlbean.jar
介质准备Eclipse3.12下载地址:...如果使用WebLogicServer,可以不用单独安装JDK,使用产品中自带的JDK即可Eclipse配置定义:%XMLBEAN_HOME%:XMLBean的安装目录%JAVA_HOME%:JDK安装目录建立Java项目