如何基于多XSD文件生成符合CREATEE_ABC_REQ的XML?
多XSD关联场景下生成XML的方法
一、Eclipse IDE 正确生成步骤
如果之前用Eclipse生成失败,大概率是没确保所有依赖XSD的路径正确,按以下步骤操作:
- 将
CREATEE_ABC_REQ.XSD、ABC-Messaging.xsd、EX-Bulk-Types.xsd三个文件放在同一个项目目录下,保证根XSD里xs:include的schemaLocation和实际文件路径完全匹配 - 右键点击
CREATEE_ABC_REQ.XSD文件,选择 Generate > XML File - 在弹出的对话框中,确认根元素选择
CREATEE_ABC_REQ,对应的命名空间为http://abc.def.com/service/SOMEService - 点击Next,设置生成XML的保存路径和文件名(比如
CREATEE_ABC_REQ.xml) - 点击Finish,Eclipse会自动解析所有关联的XSD,生成符合结构的XML骨架
二、使用JDK自带XJC工具生成(可选)
如果Eclipse的方式不顺畅,可以用JDK内置的XJC工具:
- 打开命令行,进入三个XSD所在的目录
- 执行命令:
xjc CREATEE_ABC_REQ.XSD,工具会自动解析关联的XSD并生成对应的Java实体类 - 编写简单的Java代码,实例化
CREATEE_ABC_REQ类,填充HEADER等必填字段,再通过JAXB的Marshaller将对象序列化为XML文件
三、手动编写符合约束的XML示例
如果不想依赖工具,也可以根据XSD结构手动编写XML骨架,以下是符合要求的示例:
<?xml version="1.0" encoding="UTF-8"?> <CREATEE_ABC_REQ xmlns="http://abc.def.com/service/SOMEService"> <HEADER> <SOURCE>TEST_SOURCE_001</SOURCE> <OPERATION>CREATE_ABC_REQ</OPERATION> </HEADER> <BODY> <ABC-Master-Full> <!-- SAMPLE和SAMPLE2为可选字段,长度不超过35字符即可 --> <SAMPLE>Sample_Text_1</SAMPLE> <SAMPLE2>Sample_Text_2</SAMPLE2> </ABC-Master-Full> </BODY> </CREATEE_ABC_REQ>
内容的提问来源于stack exchange,提问作者Kamalraj
相关产品推荐
相关产品推荐

