最近项目一直负责项目中的webservice的开发.使用的是xfire来完成.使用xstream根据xml生成javabean。但是发现生成javabean的属性类型都是String。后面经过讨论。决定使用xsd生存javabean这样生成的属性类型就能够可控.
在xsd学习中推荐下w3c的xsd 教程,文档也很详情http://www.w3school.com.cn/schema/schema_intro.asp.
由于水平有限所以 首先使用工具根据xml生存xsd然后再自己在进行对应的需改.
首先介绍下xsd的头部:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3school.com.cn"
xmlns="http://www.w3school.com.cn"
elementFormDefault="qualified">
...
...
</xs:schema>
-------------------
所有的xsd都是以<xs:schema>开头 里面的属性解释http://www.360doc.com/content/10/1104/10/2224885_66474422.shtml
进入正文:
首先写一个xml文件
<OTRequest Version=""><TransactionName>必填项:指令名称,固定值 OTA_TourTeamInfoRQ ★</TransactionName>
<Header>
<SessionID>预留字段,不填</SessionID>
<Invoker>调用者 不填</Invoker>
<Encoding>字符编码</Encoding>
<Locale>区域 不填</Locale>
<SerialNo>预留字段,不填</SerialNo>
<TimeStamp>时间戳 YYYYmmDD HH:MM:SS</TimeStamp>
<Application>子系统名称 String类型 填写"travelpkg" ★</Application>
</Header>
<DestinationSystemCodes>
<UniqueID>String 不填</UniqueID>
</DestinationSystemCodes>
<IdentityInfo>
<OfficeID>代理Office号 预留字段不填</OfficeID>
<UserID>接口用户名 ★</UserID>
<Password>接口用户密码 ★</Password>
<Role>角色 预留字段 不填</Role>
</IdentityInfo>
<Source>
<OfficeCode>代理Office号 String类型 预留字段,不填</OfficeCode>
<UniqueID>供应商Code String ★</UniqueID>
<BookingChannel>预定渠道代码(默认填写:HOTELBE) 预留字段,不填</BookingChannel>
</Source>
<TeamInfoRQ>
<ExternalUserInfo>
<ExternalUserID>外部登录人员用户ID String ★</ExternalUserID>
<ExternalUserName>外部登录人员用户真实姓名 String ★</ExternalUserName>
</ExternalUserInfo>
<BeginDate> 团出发日期有效期开始 YYYYMMDD 如:20110625 </BeginDate>
<EndDate> 团出发日期有效期截止 YYYYMMDD 如:20110925 </EndDate>
</TeamInfoRQ>
</OTRequest>
--------------------------
首先是
<xs:element name="OTRequest"> <!--就是xml的开头 包含了其他的类型 是一个复杂的类型-->
<xs:complexType> <!--定义复杂类型。-->
<xs:sequence><!--要求子元素必须按顺序出现。每个子元素可出现 0 到任意次数。在其中可能牵涉到哪些属性必须存在.-->
<xs:element ref="TransactionName"/> <!--引用了name为TransactionName 的元素 -->
<xs:element ref="Header"/>
<xs:element ref="DestinationSystemCodes"/>
<xs:element ref="IdentityInfo"/>
<xs:element ref="Source"/>
<xs:element ref="TourBookRQ"/>
</xs:sequence>
<xs:attribute name="Version" type="xs:string" use="required"/>
</xs:complexType>
<xs:element name="TransactionName" type="xs:string" default="OTA_TourTeamInfoRQ" maxOccurs="1" minOccurs="1"/> <!--定义了name为TransactionName的元素 并设置了类型为string 默认值是:OTA_TourTeamInfoRQ 我们可以设置如long,int,double等类型..在上面的xml中有★表示该元素必须存在 那么在xsd中如果设置呢? 我想到了一中比较的笨的方法 设置元素的maxOccurs和minOccurs属性值为1.
maxOccurs:规定 element 元素在父元素中可出现的最大次数。该值可以是大于或等于零的整数。若不想对最大次数设置任何限制,请使用字符串 "unbounded"。 默认值为 1。
minOccurs:规定 element 元素在父元素中可出现的最小次数。该值可以是大于或等于零的整数。默认值为 1。如果父元素是 schema 元素,则不能使用该属性。
-->
</xs:element>
分享到:
相关推荐
生成XML文件的定义规范文件XSD,能够严格定义XML文件的内容样式,对于刚学习XSD的人有一定的帮助。
XML Schema Definition (XSD)的学习笔记和C#验证的例子,适合入门学习。
xml dtd xsd 的编写 标准格式可以供学习参考用
学习XML教程最简单的实践成果。还有配套XSD文件,可以一同导入SQL数据库。
xsd的元素介绍,对各个元素进行了比较。
xsd基础知识介绍,java初级入门者,可以参考学习这个知识。
一个dtd和xsd文档和对应的xml文件,仅供学习参考 一个dtd和xsd文档和对应的xml文件,仅供学习参考
主要介绍了Spring加载XSD文件发生错误的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
本仓库发布的MyActions项目中涉及的任何解锁和解密分析脚本,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确,可行和有效,请根据情况自行判断。 本项目内所有资源文件,禁止任何公众号,自媒体...
随机决策理论-贝叶斯决策与马尔可夫决策-xsd (1).pptx
1、学习如何使用XMLSPY集成开发环境完成XML Schema相关的开发工作。 2、掌握XML Schema与DTD之间的区别,能够完成两者之间的转换;掌握在XML Schema中如何定义元素和属性,如何使用限制、列表和合并派生自己的简单...
【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或...
【模型】-AUTOSAR学习资料无人驾驶-AUTOSAR_MMOD_XMLSchema
很好的东西,很快学习XML,以及XSD,DTD基本内容和进阶。
在此教程中,你将学习如何在应用程序中读取和创建 XML Schema 语言,XML Schema 为何比 DTD 更加强大,以及如何在您的应用程序中使用 XML Schema。 什么是 XML Schema? XML Schema 的作用是定义 XML 文档的合法构建...
学习XML教程最简单的实践成果。还有配套XSD文件,可以一同导入SQL数据库。
4.1 学习文档【dubbo-学习文档-20170831.zip】 01.DDubbo开源.pptx 02DeveloperGuide-zh-Dubbo.pdf 03Dubbo功能介绍.pdf 04dubbo源码解析2.0.pdf 4.2 编译部署资料 zookeeper 安装包:zookeeper-3.4.6.tar.gz ...
一本关于XML Schema的打包教程,深入浅出,系统性强,并附有相应实例。
Arelle, Arelle开源XBRL平台 是一个为XBRL提供开放源码工具的项目。目的开始满足在商业viable的需求,例如支持开发扩展模块和测试套件设施,在 compact 框架,并支持学术培训和项目。特性支持用于版本控制报告和生产...