📄 xml_saxdatabinding.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<!--Translated by 王华红 Luke Wang( Loope@sohu.com ) 2001-8-27 -->
<head>
<meta name="generator" content="Microsoft FrontPage 4.0">
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>XML Application Developer's Guide: Programmatic manipulation of XML</title>
<meta name="Author" content="kt">
<link type="text/css" href="../jbdocs.css" rel="stylesheet">
</head>
<body bgcolor="#fefef2" style="FONT-SIZE: 9pt">
<!--****************PROGRAMMATIC MANIPULATION****************-->
<a name="programmatic_manipulation"></a>
<p><b><font color="#0080FF" size="3">可编程XML操作</font></b></p>
<hr>
译者名字: Luke(JD032) <br>
邮件地址:<a href="mailto:Loope@sohu.com">Loope@sohu.com<!--BNDX="XML documents:manipulating programmatically"--></a>
<blockquote class="bsku">
<p><font color="#FF0000">可编程XML操作是Jbuilder企业版的功能。</font></p>
</blockquote>
<p>典型的XML 可编程操作可以使用解析器或一个数据绑定方案。JBuilder 支持这两种方法,且分别提供了工具。</p>
<ul>
<li> DOM 和 JAXP 的SAX向导和库定义。 </li>
<li> BorlandXML 可以从DTD生成JAVA代码。</li>
<li> Castor 可以从Schema 生成JAVA代码。 </li>
</ul>
<p>这些和Jbuider绑定在一起的预定义的库:JDOM、JAXP、Xerces、BorlandXML、Castor,等等,都可以加到你的项目中去。你可以在<i>Project
Properties</i>对话框中把它们加进去。选择<i>Project|Project Properties</i> ,然后选择<a href="../ui/dialogs/dlgpathspage.html">Paths
page</a>,点击<i>Required Libraries,</i>然后把所需的库加进去。一旦把库加进去后,Jbuilder的CodeInsight就可以访问它们。在编辑框里写代码的时候,就可以在弹出窗口中显示其数据成员和方法、参数,就象使用自己的源代码一样。</p>
<a name="xml_sax"></a>
<p><font size="3" color="#000080"><b>创建一个SAX文档</b></font></p>
<!--BNDX="SAX (Simple API for XML);Simple API for XML (SAX);SAX handlers:creating;SAX Handler wizard"-->
<blockquote class="bsku"><font color="#FF0000">这个功能在Jbuilder 企业版里提供。</font></blockquote>
<p>SAX是XML的简单的API,是一个事件驱动的XML解析器的标准接口。有两类XML的API:基于树形的API和事件驱动的API。</p>
<p>基于树形的API 把XML文档变成内部树形结构,允许程序遍历该树。基于树形的API 的标准是文档对象模型DOM(Document Object Model)。</p>
<p>SAX是事件驱动的API,通过回调(callback)直接把解析结果报告给应用程序。和GUI图形化用户接口处理事件一样,应用程序通过句柄实现来处理各种事件。</p>
<p>举例来说,一个事件驱动的API看起来应象下面的一样: </p>
<p>
<br>
<?xml version="1.0"?><br>
<br>
<page><br>
<title>Event-based example</title><br>
<content>Hello, world!</content><br>
</page><br>
</p>
<p>有以下事件:</p>
<p>
<br>
start document<br>
start element: page<br>
start element: title<br>
characters: Event-based example<br>
end element: title<br>
start element: content<br>
characters: Hello, world!<br>
end element: content<br>
end element: page<br>
end document<br>
</p>
<p>JBuilder 使得用SAX操作XML文档更容易,SAX句柄向导可以创建SAX解析器的实现模板,包含解析XML的方法。</p>
<p>使用SAX句柄向导步骤:</p>
<ol>
<li>选择File|New ,打开对象面板,点击XML标签,然后双击SAX句柄向导的图标打开向导。</li>
<li>输入类名和包名,或者接受默认的名字。
<p><img src="images/xsaxwiz.gif"></p>
</li>
<li>选择想重载的接口或方法,单击Next。</li>
<li>选择你想要的SAX解析器选项,点击Finish。
<p>向导将生成SAX解析器的实现,你还需在方法里加入自己的实现代码。</p>
</li>
<li> 配置项目属性的<a href="../ui/dialogs/dlgrunparam.html">Run page</a> ,选择运行的主程序,在程序参数字段里指定要解析的XML文件。
<p><img src="images/xsaxrunpage.gif" width="408" height="523" alt="Run page" border="0"></p>
</li>
</ol>
<p>想了解关于SAX的更多信息,请访问<a href="../../../www.megginson.com/SAX/index.html">http://www.megginson.com/SAX/index.html</a>.
</p>
<p>想看SAX句柄向导的教程,请看<a href="../tutorials/xml_sax/xml_sax.html">"教程: Sax Handler"</a>。</p>
<a name="databinding"></a>
<p><font size="3" color="#000080"><b>数据绑定</b></font></p>
<!--BNDX="XML databinding;databinding;BorlandXML databinding;Castor databinding;Java classes:generating from schema;Java classes:generating from DTD;schema files (.xsd)"-->
<blockquote class="bsku"><font color="#FF0000">这个功能在JBuilder企业版里提供。</font></blockquote>
<p> 数据绑定意思是说数据访问和数据处理,然后把处理后的数据写入数据库或者在XML文档里显示。XML文档可以看作是数据库和应用程序之间的传输机制。通过把一个JAVA对象和XML文档绑定来进行传输。数据绑定是通过生成JAVA类来实现的,这些类受到DTD或XML
schema里语法限制。你可以用这些类来创建符合语法的XML文档,读符合语法的XML文档,也可以在修改文档时检验和语法不一致的地方。 </p>
<p>JBuilder 提供了几种数据绑定方式:BorlandXML 和open-source Castor 。BorlandXML 使用DTD文件,而open-source
Castor从schema 文件 (.xsd)生成JAVA类。</p>
<p>请看: <a href="../../../www.oasis-open.org/cover/xmlDataBinding.html">"XML数据绑定"</a>
,即http://www.oasis-open.org/cover/xmlDataBinding.html </p>
<!--****************BORLANDXML****************-->
<a name="borlandxml"></a>
<p><font color="#000080" size="2"><b>BorlandXML</b></font></p>
<!--BNDX="BorlandXML databinding;generating Java classes:BorlandXML;marshalling and unmarshalling:conversion between Java and XML;Databinding wizard;Java classes:generating with Databinding wizard"-->
BorlandXML提供了一种数据绑定机制,它隐藏了XML的细节,减少了复杂度,易于实现。BorlandXML是一个基于模板的类生成器,用于从Document
Type Definition (DTD)文件生成JavaBean类。你不用关心XML文件的细节,只需用简单的Javabean编程转换来处理XML数据。
<p>BorlandXML 分两步用DTD来生成Java 类。第一步:BorlandXML 从DTD生成一个类模型。这个类模型文件是一个带.bom扩展名的XML文件。这个文件描述了目标类的结构且提供了定制类的方法。第二步,BorlandXML
从带.bom后缀文件生成JAVA类。</p>
<p>BorlandXML 支持以下功能:
<ul>
<li>JavaBean 处理:使用bean来构造一个XML文档或者访问文档数据。 </li>
<li>在XML文件和JAVA类之间的 Marshalling 或 Unmarshalling 转换:
<ul>
<li>Marshalling: 从JavaBean对象输出一个XML文档- Java to XML 。</li>
<li>Unmarshalling: 把一个XML文档读入到JavaBean对象中去- XML to Java 。 </li>
</ul>
</li>
<li>文档检验:在marshalling 对象到XML之前,或在unmarshalling XML文档到JavaBean对象之后,都要检验JavaBean
对象。 </li>
<li>PCDATA定制:允许PCDATA定制来支持不同的基本数据类型,如整型和长整型,还支持定制属性名字。 <br>
</li>
<li> 变量名字:允许为有前缀或后缀的元素或属性生成不同的名字。</li>
</ul>
<p> 使用数据绑定向导从DTD生成JAVA类:</p>
<ol>
<li>在项目窗格的DTD文件上单击右键,选择<i>Generate Java</i> 打开数据绑定向导。在DTD文件字段里已经自动添上了文件名。也可以通过
File|New ,选择XML 标签来进入数据绑定向导。</li>
<li>选择仅基于DTD的BorlandXML 作为数据绑定类型,然后点击 Next。</li>
<li>添好所需的字段,如:所用DTD文件的名字和位置,还有根元素。</li>
<li> 输入要插入到DOCTYPE声明里的PUBLIC 或SYSTEM 标志符。
<p><img src="images/xdatabindingwiz_borland_step2.gif" width="617" height="427" alt="Databinding wizard" border="0"></p>
</li>
<li>点击Finish。</li>
<li>在项目窗格中,扩展开所生成的包的节点,可以看到向导所生成的.java文件。</li>
</ol>
<p>想看使用BorlandXML 数据绑定的教程,请看<a href="../tutorials/xml_data_borland/xml_data_borland.html">"教程:使用BorlandXML的DTD数据绑定"</a>。</p>
<a name="castor"></a>
<p><font color="#000080"><b>Castor</b></font></p>
<!--BNDX="Castor XML databinding framework;Java classes:generating from schema;generating Java classes:Castor;Databinding wizard"-->
<p>Castor 是一个XML数据绑定的架构,把一个XML schema 的实例映射到一个表示数据的对象模型。这个对象模型包括一组类,还有类和字段信息的描述信息。</p>
<p>Castor 用marshalling 架构包含一组<i>ClassDescriptors </i>和<i> FieldDescriptors</i>
,描述一个对象怎样marshalled 和怎样从XML文件unmarshalled 。 </p>
<p>对不熟悉"marshal" 和 "unmarshal"的人来说,其实就是简单的对对象的字节流的转换操作。"marshalling"操作就是把对象转换为数据流,反之,"unmarshalling"
就是从字节流到对象的转换。 </p>
<p>Castor 用schema 创建JAVA类,而不是DTD文件。Schema (XSD),更健壮和灵活,比起DTD来更多优点。Schemas 是XML文档,不象DTD文件中包含非XML的语法。Schemas
也支持namespaces ,可以防止名称冲突,提供了更好的数据类型扩展和继承支持。 </p>
<p>使用数据绑定的向导,从XML schema 生成JAVA类的步骤如下:</p>
<ol>
<li>在项目窗格里的schema (XSD) 文件名上右键,选择<i>Generate Java</i>进入数据绑定向导。XML schema文件名字段已自动填好。也可以通过
File|New,选择XML标签,然后进入数据绑定向导。 </li>
<li>选择支持XML schemas 的Castor 作为数据绑定类型,单击 Next。</li>
<li>填好所需字段,如包名,选好所选选项。
<p><img src="images/xdatabindingwiz_castor.gif" width="636" height="427" alt="Databinding wizard" border="0"></p>
</li>
<li>点击 Finish。</li>
<li>扩展项目窗格里的包节点,可以看到.java文件已由向导生成。</li>
</ol>
<p>注意:默认情况下,Castor的marshaller写的XML文档没有缩进,因为缩进使所生成的XML文件变得很大。要把缩进功能开启,请打开Castor的属性文件,修改以下内容:<i>org.exolab.castor.indent=true</i>。在这格文件里你还可以修改其他属性。这个castor.properties文件是由向导自动生成的,放在项目源文件目录下。
</p>
<p><br>
想看Castor 的教程,请到<a href="../tutorials/xml_data_castor/xml_data_castor.html">"教程:使用Castor的Schema
数据绑定"</a>。</p>
<p>Castor 的文档和例子可以在JBuilder 完全安装的附加目录下找到。或者访问网站<a href="../../../castor.exolab.org/default.htm">http://castor.exolab.org</a>。</p>
<br><br>
<!--****************ENTERPRISE DATA****************-->
<a name="interface"></a>
<hr>
<p><font size="3" color="#000080"><b>数据库商业数据接口</b></font></p>
<!--BNDX="XML database support;XML model-based components;XML template-based components;XMLDBMSTable component;XMLDBMSQuery component;XTable component;XQuery component;XML-DBMS;"-->
<blockquote class="bsku"><font color="#FF0000">数据库商业数据接口是Jbuilder企业版的功能。</font></blockquote>
<p>JBuilder支持的XML数据库有以下两类:基于模型(model-based)和基于模板(template-based)。基于模型(model-based)方案用一个映射文档来决定在XML结构和数据库元数据的传输。基于模型(model-based)组件:<i>XMLDBMSTable</i>
和 <i>XMLDBMSQuery</i> ,是用XML-DBMS 实现的。这是一个和JBuilder 绑定的开放原代码的XML中间件。</p>
<p>基于模板(template-based)方案使用模板,即一套规则。基于模板(template-based)的组件:<i>XTable</i> 和 <i>XQuery</i>
,非常灵活,且在XML文档和查询的数据库元数据之间没有预先定义的关系。</p>
<p>想了解更多XML数据库组件的信息,请看<a href="xmldb.html">"使用JBuilder 的XML 数据库组件"</a>。</p>
<p>也可以访问 <span class="bscan"> </span> <a href="../../../www.rpbourret.com/xmldbms/default.htm">XML-DBMS</a>
即 http://www.rpbourret.com/xmldbms/</p>
</body>
</html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -