📄 jaxb.htm
字号:
<P>
·你还可以通过(File)菜单中的“open”子菜单,选择以前保存过的图形文件,将它显示在画布上。</P>
<P><STRONG>3. JAXB使用过程分析</STRONG></P>
<P>·下载JAXB开发工具包</P>
<P> JAXB1.0
的正式版本的一个实现(大家一定要记住,JAXB只是一个标准,Sun公司提供的此工具包只能说是这个标准的一个实现)已经发布了。由于XML在Web
Services中的大量应用,所以,JAXB1.0作为Web Services 开发包的一部分,可以从WSDP1.1
下载。其中jaxb包含在jaxb-1.0子目录下。</P>
<P>·设置环境变量 </P>
<P>
要使用JAXB,在下载JAXB开发包以后,还要设置一些环境变量,主要是设置classpath的路径,以提供JAXB包所带的库文件的位置。一般来说,可以写一个专门用来设置环境变量的执行文件。例如,在Windows
上可以写这样一个setenv.bat的文件:</P>
<P> </P>
<P>set JAVA_HOME=c:\application\java\jdk1.4.1_01<BR>set
JWSDP_HOME=c:\application\wsdp1.1<BR>set JAXB_HOME=%JWSDP_HOME%\jaxb-1.0<BR>set
JAXB_LIBS=%JAXB_HOME%\lib<BR>set JAXP_LIBS=%JWSDP_HOME%\jaxp-1.2.2\lib<BR>set
JWSDP_LIBS=%JWSDP_HOME%\jwsdp-shared\lib</P>
<P>set PATH=%JAXB_HOME%\bin;%JWSDP_HOME%\jwsdpshared\bin;%PATH%</P>
<P>set CLASSPATH=%JAXB_LIBS%\jaxb-<A
href="http://www.itisedu.com/phrase/200604241228185.html"
target=_new>api</A>.jar;%JAXB_LIBS%\jaxb-ri.jar;%JAXB_LIBS%\jaxb-xjc.jar;%JAXB_LIBS%\jaxb-libs.jar;%JAXP_LIBS%\jaxb-api.jar;%JAXP_LIBS%\endorsed\xercesImpl.jar;%JAXP_LIBS%\endorsed\xalan.jar;%JAXP_LIBS%\endorsed\sax.jar;%JAXP_LIBS%\endorsed\dom.jar;%JWSDP_LIBS%\jax-qname.jar;%JWSDP_LIBS%\namespace.jar;.</P>
<P>·确定XML Schema</P>
<P> 要确定XML
Schema意味着你要确定一个规则,来约束你的XML文档,使所有符合这个规则的XML文档看上去都很类似。例如,在这个例子中,我们希望XML文档的格式如下:</P>
<P><?xml version="1.0" encoding="UTF-8" standalone="yes" ?><BR><SHAPECONTAINER><BR>
<SHAPE><BR>
<XPOSITION>185</XPOSITION>
<BR>
<YPOSITION>83</YPOSITION>
<BR>
<SHAPENAME>circle</SHAPENAME>
<BR>
<SHAPECOLOR>red</SHAPECOLOR> <BR>
</SHAPE><BR>
<SHAPE><BR>
<XPOSITION>169</XPOSITION>
<BR>
<YPOSITION>177</YPOSITION>
<BR>
<SHAPENAME>circle</SHAPENAME>
<BR>
<SHAPECOLOR>green</SHAPECOLOR> <BR>
</SHAPE><BR>
<SHAPE><BR>
<XPOSITION>358</XPOSITION>
<BR>
<YPOSITION>155</YPOSITION>
<BR>
<SHAPENAME>rect</SHAPENAME>
<BR>
<SHAPECOLOR>green</SHAPECOLOR><BR>
</SHAPE><BR></SHAPECONTAINER></P>
<P>
文如其意,用不着太多的解释,大家就能明白上面的XML文档所包含的意思。<SHAPECONTAINER>表示了画布,在画布中有各种各样的形状,每个形状都包含了一些显示信息,例如x,y坐标,形状的类型和颜色等。在应用程序中想要操纵此XML文档,还要根据这个XML文档,产生一个Schema文档。例如:(此schema下载)</P>
<P><xsd:schema
xmlns:xsd="http://www.w3.org/2001/XMLSchema"><BR>
<xsd:element type="xsd:string"
name="appversion"></xsd:element><BR>
<xsd:element type="ShapeContainerType"
name="shapeContainer"></xsd:element><BR>
<xsd:complexType
name="ShapeContainerType"><BR>
<xsd:sequence><BR>
<xsd:element type="ShapeType" name="shape" maxOccurs="unbounded"
minOccurs="1"></xsd:element><BR>
</xsd:sequence><BR>
</xsd:complexType><BR>
<xsd:complexType
name="ShapeType"><BR>
<xsd:sequence><BR>
<xsd:element type="xsd:int"
name="xposition"></xsd:element><BR>
<xsd:element type="xsd:int"
name="yposition"></xsd:element><BR>
<xsd:element type="ShapeNameType"
name="shapename"></xsd:element><BR>
<xsd:element type="ShapeColorType"
name="shapecolor"></xsd:element><BR>
</xsd:sequence><BR>
</xsd:complexType><BR> <xsd:simpleType
name="ShapeColorType"><BR>
<xsd:restriction
base="xsd:string"><BR>
<xsd:enumeration
value="green"></xsd:enumeration><BR>
<xsd:enumeration
value="red"></xsd:enumeration><BR>
</xsd:restriction><BR>
</xsd:simpleType><BR> <xsd:simpleType
name="ShapeNameType"><BR>
<xsd:restriction
base="xsd:string"><BR>
<xsd:enumeration
value="circle"></xsd:enumeration><BR>
<xsd:enumeration
value="rect"></xsd:enumeration><BR>
</xsd:restriction><BR>
</xsd:simpleType><BR></xsd:schema></P>
<P> 这个Schema描述了对xml文档的约束。例如,</P>
<P> <xsd:complexType
name="ShapeContainerType"><BR>
<xsd:sequence><BR>
<xsd:element type="ShapeType" name="shape" maxOccurs="unbounded"
minOccurs="1"></xsd:element><BR>
</xsd:sequence><BR>
</xsd:complexType></P>
<P> 它规定了<SHAPECONTAINER>这个节点内可以包含一个或多个<SHAPE>的节点。而
</P>
<P><xsd:complexType name="ShapeType"><BR>
<xsd:sequence><BR>
<xsd:element type="xsd:int"
name="xposition"></xsd:element><BR>
<xsd:element type="xsd:int"
name="yposition"></xsd:element><BR>
<xsd:element type="ShapeNameType"
name="shapename"></xsd:element><BR>
<xsd:element type="ShapeColorType"
name="shapecolor"></xsd:element><BR>
</xsd:sequence><BR> </xsd:complexType></P>
<P> 则规定了每个<SHAPE>节点必须包含x,y坐标、形状类型和颜色等属性。</P>
<P>
在schema的其他部分还规定了“颜色”属性由“红色”和“绿色”组成,形状“类型属性”由“圆形”和“方形”组成。另外,在Schema中还使用了一些专用的描述符,例如“complexType”,“simpleType”,“element”,“sequence”以及大量的"NameSpace"的知识,我就不一一介绍了,想要详细了解XML
Schema,请访问“参考资料”。</P>
<P>
Schema和XML文档之间的关系,就好象Java中类与实例的关系。每个符合schema的XML文档,都是这个Schema的一个实例;而Schema本身是一个模板,它规定了XML文档应该是什么样的。</P>
<P>·使用编译工具生成相应的Java类</P>
<P>
有了Schema文件以后,我们就可以利用JAXB工具包,让它来替我们生成操纵符合这个Schema规定的所有XML实例文档的所有Java源代码。</P>
<P>如果已经设置好了环境变量的话(请参考“设置环境变量”),那么只需要运行JAXB包所带的“xjc”运行程序,例如</P>
<P>%JAXB_HOME%\bin\xjc.bat demo.xsd -d src -p epri.jaxb</P>
<P> 其中 </P>
<P>
·%JAXB_HOME%是你安装JAXB工具包的位置,通常在jwsdp工具包的子目录下。</P>
<P> ·demo.xsd 是Schema的文件名,一般以xsd作为文件名的后缀。</P>
<P> ·-d 的选项,是指定系统生成的Java源代码所放置的目录</P>
<P> ·-p 的选项,是指定系统生成的Java源代码所在的Java
Package的名称。</P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -