對jaxb的應用,歡迎板磚,廢話不多說了
首先我們要從sun下載一個jaxb的壓縮包,在命令行模式下,將目錄轉到jaxb-ri-20101209.jar,用命令java -jar jaxb-ri-20101209.jar
這樣,在該目錄下會生成一個文件夾jaxb-ri-20101209,文件夾中有bin,docs,lib,samples,看目錄就應該明白,在此就不做解釋了。
在命令行中進入到安裝目錄的bin文件夾下運行xjc指令,如果不出現“xjc”is not recogized。。。證明安裝成功
使用xsd文件生成java類的方法
在命令行中進入文件夾jaxb-ri-20101209目錄的bin文件夾
輸入命令
xjc -d c:\test -p com.primeton.governor.dict.xmlloader c:\test\test.xsd
c:\test生成java類的目錄
com.primeton.governor.dict.xmlloader生成java類的包路徑
c:\test\test.xsd xsd文件的目錄
例如
test.xsd文件
- <?xml version="1.0" encoding="UTF-8"?>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
- <xs:element name="resource">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="servlet-mapping"/>
- <xs:element ref="servlet-class"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="servlet-mapping">
- <xs:complexType mixed="true">
- <xs:attribute name="id" use="required" type="xs:NCName"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="servlet-class">
- <xs:complexType mixed="true">
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="test"/>
- </xs:sequence>
- <xs:attribute name="name" use="required" type="xs:NCName"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="test" type="xs:integer"/>
- </xs:schema>
生成的java類爲
ObjectFactory.java
Resource.java
ServletClass.java
ServletMapping.java
其中一個java類Resource.java,@XmlAccessorType,@XmlType,這是給引擎使用的
- @XmlAccessorType(XmlAccessType.FIELD)
- @XmlType(name = "", propOrder = {
- "servletMapping",
- "servletClass"
- })
- @XmlRootElement(name = "resource")
- public class Resource {
- @XmlElement(name = "servlet-mapping", required = true)
- protected ServletMapping servletMapping;
- @XmlElement(name = "servlet-class", required = true)
- protected ServletClass servletClass;
- /**
- * Gets the value of the servletMapping property.
- *
- * @return
- * possible object is
- * {@link ServletMapping }
- *
- */
- public ServletMapping getServletMapping() {
- return servletMapping;
- }
- /**
- * Sets the value of the servletMapping property.
- *
- * @param value
- * allowed object is
- * {@link ServletMapping }
- *
- */
- public void setServletMapping(ServletMapping value) {
- this.servletMapping = value;
- }
- /**
- * Gets the value of the servletClass property.
- *
- * @return
- * possible object is
- * {@link ServletClass }
- *
- */
- public ServletClass getServletClass() {
- return servletClass;
- }
- /**
- * Sets the value of the servletClass property.
- *
- * @param value
- * allowed object is
- * {@link ServletClass }
- *
- */
- public void setServletClass(ServletClass value) {
- this.servletClass = value;
- }
- }
如何將xml文件轉換爲xsd文件
首先我們要從sun下載一個trang的壓縮包,解壓縮後會有一個trang.jar的文件
在命令行中進入trang.jar所在的目錄,輸入如下命令:
java -jar trang.jar XXX1.xml XXX2.xsd
XXX1.xml爲當前文件夾目錄下的xml文件,也是要轉換的xml文件
XXX2.xsd文件爲轉換後的xsd文件
例如要轉換的xml文件爲test.xml
- <resource>
- <servlet-mapping id="sm">*.action</servlet-mapping>
- <servlet-class name="sc">
- TestListence
- <test>1</test>
- </servlet-class>
- </resource>
轉換爲的xsd文件
- <?xml version="1.0" encoding="UTF-8"?>
- <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
- <xs:element name="resource">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="servlet-mapping"/>
- <xs:element ref="servlet-class"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="servlet-mapping">
- <xs:complexType mixed="true">
- <xs:attribute name="id" use="required" type="xs:NCName"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="servlet-class">
- <xs:complexType mixed="true">
- <xs:sequence>
- <xs:element minOccurs="0" maxOccurs="unbounded" ref="test"/>
- </xs:sequence>
- <xs:attribute name="name" use="required" type="xs:NCName"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="test" type="xs:integer"/>
- </xs:schema>