??xml version="1.0" encoding="utf-8" standalone="yes"?>国产成一区二区,污香蕉视频在线观看,在线日本制服中文欧美http://www.aygfsteel.com/mlh123caoer/category/6208.html无ؓ(f)则可为,无ؓ(f)则至深! zh-cnMon, 24 Oct 2011 16:29:08 GMTMon, 24 Oct 2011 16:29:08 GMT60DB DMLQDCLQDDL具体包含哪些操作http://www.aygfsteel.com/mlh123caoer/archive/2011/08/25/357307.html草儿草儿Thu, 25 Aug 2011 13:50:00 GMThttp://www.aygfsteel.com/mlh123caoer/archive/2011/08/25/357307.htmlhttp://www.aygfsteel.com/mlh123caoer/comments/357307.htmlhttp://www.aygfsteel.com/mlh123caoer/archive/2011/08/25/357307.html#Feedback0http://www.aygfsteel.com/mlh123caoer/comments/commentRss/357307.htmlhttp://www.aygfsteel.com/mlh123caoer/services/trackbacks/357307.htmlDDL 
Data Definition Language (DDL) statements are used to define the database structure or schema. Some examples: 

CREATE - to create objects in the database 
ALTER - alters the structure of the database 
DROP - delete objects from the database 
TRUNCATE - remove all records from a table, including all spaces allocated for the records are removed 
COMMENT - add comments to the data dictionary 
RENAME - rename an object 

DML 
Data Manipulation Language (DML) statements are used for managing data within schema objects. Some examples: 

SELECT - retrieve data from the a database 
INSERT - insert data into a table 
UPDATE - updates existing data within a table 
DELETE - deletes all records from a table, the space for the records remain 
MERGE - UPSERT operation (insert or update) 
CALL - call a PL/SQL or Java subprogram 
EXPLAIN PLAN - explain access path to data 
LOCK TABLE - control concurrency 

DCL 
Data Control Language (DCL) statements. Some examples: 

GRANT - gives user's access privileges to database 
REVOKE - withdraw access privileges given with the GRANT command 

TCL 
Transaction Control (TCL) statements are used to manage the changes made by DML statements. It allows statements to be grouped together into logical transactions. 

COMMIT - save work done 
SAVEPOINT - identify a point in a transaction to which you can later roll back 
ROLLBACK - restore database to original since the last COMMIT 
SET TRANSACTION - Change transaction options like isolation level and what rollback segment to use 

草儿 2011-08-25 21:50 发表评论
]]>
使用变参执行SQL语句http://www.aygfsteel.com/mlh123caoer/archive/2007/09/05/142885.html草儿草儿Wed, 05 Sep 2007 06:12:00 GMThttp://www.aygfsteel.com/mlh123caoer/archive/2007/09/05/142885.htmlhttp://www.aygfsteel.com/mlh123caoer/comments/142885.htmlhttp://www.aygfsteel.com/mlh123caoer/archive/2007/09/05/142885.html#Feedback0http://www.aygfsteel.com/mlh123caoer/comments/commentRss/142885.htmlhttp://www.aygfsteel.com/mlh123caoer/services/trackbacks/142885.htmlPrepareStatementҎ(gu)QD例如下:(x)  阅读全文

草儿 2007-09-05 14:12 发表评论
]]>
软g开发技术常用术语英中对?/title><link>http://www.aygfsteel.com/mlh123caoer/archive/2007/08/26/139506.html</link><dc:creator>草儿</dc:creator><author>草儿</author><pubDate>Sun, 26 Aug 2007 08:45:00 GMT</pubDate><guid>http://www.aygfsteel.com/mlh123caoer/archive/2007/08/26/139506.html</guid><wfw:comment>http://www.aygfsteel.com/mlh123caoer/comments/139506.html</wfw:comment><comments>http://www.aygfsteel.com/mlh123caoer/archive/2007/08/26/139506.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.aygfsteel.com/mlh123caoer/comments/commentRss/139506.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/mlh123caoer/services/trackbacks/139506.html</trackback:ping><description><![CDATA[<p>A.I. 人工<br>A2A integration A2A整合<br>abstract 抽象?br>abstract base class (ABC)抽象基类<br>abstract class 抽象c?br>abstraction 抽象、抽象物、抽象?br>access 存取、访?br>access function 讉K函数<br>access level讉KU别<br>account 账户<br>action 动作<br>activate Ȁz?br>active zd?br>actual parameter 实参<br>adapter 适配?br>add-in 插g<br>address 地址<br>address space 地址I间<br>address-of operator 取地址操作W?br>ADL (argument-dependent lookup)<br>ADO(ActiveX Data Object)ActiveX数据对象<br>advanced 高?br>aggregation 聚合、聚?br>algorithm 法<br>alias 别名<br>align 排列、对?br>allocate 分配、配|?br>allocator分配器、配|器<br>angle bracket 括?br>annotation 注解、评?br><span id=more-140></span><br>API (Application Programming Interface) 应用(E序)~程接口<br>app domain (application domain)应用?br>appearance 外观<br>append 附加<br>application 应用、应用程?br>application framework 应用E序框架<br>Approximate String Matching 模糊匚w<br>Arbitrary Precision Arithmetic 高精度计?br>architecture 架构、体pȝ?br>archive file 归文g、存文?br>argument引数(传给函式的?。参见parameter<br>array 数组<br>arrow operator 头操作W?br>ASP(Active Server Page)zd服务器页?br>ASP.NET worker process ASP.NET工作者进E?br>assembly 装配件、配?br>assembly language 汇编语言<br>assembly manifest 装配件清?br>assert(ion) 断言<br>assign 赋?br>assignment 赋倹{分?br>assignment operator 赋值操作符<br>associated 相关的、相兌?br>associative container 兌式容?对应sequential container)<br>asynchronous 异步?br>atomic 原子?br>atomic operation 原子操作<br>attribute Ҏ(gu)、属?br>audio 音频<br>authentication service 验证服务<br>authorization 授权<br>B2B integration B2B整合、B2B集成(business-to-business integration)<br>background 背景、后?q程)<br>backup 备䆾<br>backup device备䆾讑֤<br>backup file 备䆾文g<br>backward compatible 向后兼容、向下兼?br>bandwidth 带宽<br>Bandwidth Reduction 带宽压羃<br>base class 基类<br>base type 基类?br>batch 批处?br>BCL (base class library)基类?br>Bin Packing 装箱问题<br>binary 二进?br>binary function 双参函数<br>binary large object二进制大对象<br>binary operator 二元操作W?br>binary search 二分查找<br>binary tree 二叉?br>binding l定<br>bit ?br>bitmap 位图<br>bitwise 按位…<br>bitwise copy 为单元进行复Ӟ位元逐一复制,按位?br>bitwise operation 按位q算<br>block 块、区块、语句块<br>bookkeeping 记<br>boolean 布林?真假|true或false)<br>border Ҏ(gu)<br>bounds checking 边界(g)?br>boxing 装箱、装p{?br>brace (curly brace) 大括受花括号<br>bracket (square brakcet) 中括受方括号<br>breakpoint 断点<br>browser applications 览器应?E序)<br>browser-accessible application 可经由浏览器讉K的应用程?br>bug 臭虫<br>build ~连(专指~译和连?br>built-in 内徏、内|?br>bus ȝ<br>business 业务、商?看场?<br>business Logic 业务逻辑<br>business rules 业务规则<br>buttons 按钮<br>by/through 通过<br>byte 位元l?? bitsl成)<br>cache 高速缓?br>calendar 日历<br>Calendrical Calculations 日期<br>call 调用<br>call operator 调用操作W?br>call-level interface (CLI)调用U接?CLI)<br>callback 回调<br>candidate key 候选键 (for database)<br>cascading delete U联删除 (for database)<br>cascading update U联更新 (for database)<br>casting 转型、造型转换<br>catalog 目录<br>chain ?function calls)<br>character 字符<br>character format 字符格式<br>character set 字符?br>check box 复选框<br>check button 复选按?br>CHECK constraints CHECKU束 (for database)<br>checkpoint (g)查点 (for database)<br>child class 子类<br>CIL (common intermediate language)通用中间语言、通用中介语言<br>class c?br>class declaration cd?br>class definition cd?br>class derivation list cȝ承列?br>class factory cd<br>class hierarchy cdơ结?br>class library cd<br>class loader c装载器<br>class template cL?br>class template partial specializations cL杉K分特?br>class template specializations cL板特?br>classification 分类<br>clause 子句<br>cleanup 清理、清?br>CLI (Common Language Infrastructure) 通用语言基础设施<br>client 客户、客L(fng)<br>client application 客户端应用程?br>client area 客户?br>client cursor 客户端游?(for database)<br>client-server 客户?服务器、客L(fng)/服务?br>clipboard 剪脓(chung)?br>Clique 最大团<br>clone 克隆<br>CLS (common language specification) 通用语言规范<br>code access security 代码讉K安全<br>code page 代码?br>COFF (Common Object File Format) 通用对象文g格式<br>collection 集合<br>COM (Component Object Model) lg对象模型<br>Combinatorial Problems l合问题<br>combo box l合?br>command line 命o(h)?br>comment 注释<br>commit 提交 (for database)<br>communication 通讯<br>compatible 兼容<br>compile time ~译期、编译时<br>compiler ~译?br>componentlg<br>composite index 复合索引、组合烦(ch)?(for database)<br>composite key 复合键、组合键 (for database)<br>composition 复合、组?br>Computational Geometry 计算几何<br>concept 概念<br>concrete具体?br>concrete class 具体c?br>concurrency q发、ƈ发机?br>configuration 配置、组?br>Connected Components q通分?br>connection q接 (for database)<br>connection pooling q接?br>console 控制?br>constant 帔R<br>Constrained and Unconstrained Optimization 最值问?br>constraint U束 (for database)<br>construct 构g、成分、概c(din)构造(for languageQ?br>constructor (ctor) 构造函数、构造器<br>container 容器<br>containment包容<br>context 环境、上下文<br>control 控g<br>Convex Hull 凸包<br>cookie (不译)<br>copy 拯<br>CORBA 通用对象h中介架构(Common Object Request Broker Architecture)<br>cover 覆盖、涵?br>create/creation 创徏、生?br>crosstab query 交叉表查?(for database)<br>CRTP (curiously recurring template pattern)<br>Cryptography 密码<br>CTS (common type system)通用cdpȝ<br>cube 多维数据?(for database)<br>cursor 光标<br>cursor 游标 (for database)<br>custom 定制、自定义<br>data 数据<br>data connection 数据q接 (for database)<br>Data Control Language (DCL) 数据控制语言(DCL) (for database)<br>Data Definition Language (DDL) 数据定义语言(DDL) (for database)<br>data dictionary 数据字典 (for database)<br>data dictionary view 数据字典视图 (for database)<br>data file 数据文g (for database)<br>data integrity 数据完整?(for database)<br>data manipulation language (DML)数据操作语言(DML) (for database)<br>data mart 数据集市(jng) (for database)<br>data member 数据成员、成员变?br>data pump 数据抽取 (for database)<br>data scrubbing 数据清理 (for database)<br>data source 数据?(for database)<br>data source 数据?(for database)<br>Data source name (DSN) 数据源名U?DSN) (for database)<br>data structure数据l构<br>Data Structures 基本数据l构<br>data table 数据?(for database)<br>data warehouse 数据仓库 (for database)<br>data-aware control数据感知控g (for database)<br>data-bound 数据l定 (for database)<br>database 数据?(for database)<br>database catalog 数据库目?(for database)<br>database diagram 数据关系?(for database)<br>database file 数据库文?(for database)<br>database object 数据库对?(for database)<br>database owner 数据库所有?(for database)<br>database project 数据库工E?(for database)<br>database role 数据库角?(for database)<br>database schema 数据库模式、数据库架构 (for database)<br>database script 数据库脚?(for database)<br>datagram 数据报文<br>dataset 数据?(for database)<br>dataset 数据?(for database)<br>DBMS (database management system)数据库管理系l?(for database)<br>DCOM (distributed COM)分布式COM<br>dead lock 死锁 (for database)<br>deallocate 归还<br>debug 调试<br>debugger 调试?br>decay 退?br>decision support 决策支持<br>declaration 声明<br>declarative referential integrity (DRI)声明引用完整?DRI) (for database)<br>deduction 推导<br>default ~省、默认?br>DEFAULT constraint默认U束 (for database)<br>default database 默认数据?(for database)<br>default instance 默认实例 (for database)<br>default result set 默认l果?(for database)<br>defer 推迟<br>definition 定义<br>delegate 委托<br>Delegates 一般译法ؓ(f)”委托”Q微软没有对q个术语q行正式解释或翻译?br>delegation 委托<br>dependent name<br>deploy 部v<br>dereference 解引?br>dereference operator (提领)q算?br>derived class zc?br>design by contract 契约式设?br>design pattern 设计模式<br>destroy 销?br>destructor(dtor)析构函数、析构器<br>Determinants and Permanents 行列?br>device 讑֤<br>DHTML (dynamic HyperText Markup Language)动态超文本标记语言<br>dialog 对话?br>Dictionaries 字典<br>digest 摘要<br>digital 数字?br>DIME (Direct Internet Message Encapsulation)直接Internet消息装<br>directive (~译)指示W?br>directory 目录<br>dirty pages脏页 (for database)<br>dirty read 脏读 (for database)<br>disassembler 反汇~器<br>DISCO (Discovery of Web Services)Web Services的查?br>Discrete Fourier Transform LFourier变换<br>disk ?br>dispatch 调度、分z、派发(我喜?#8220;调度”Q?br>DISPID (Dispatch Identifier)分派标识W?br>distributed computing 分布式计?br>distributed query 分布式查?(for database)<br>DNA (Distributed interNet Application) 分布式网间应用程?br>document 文<br>DOM (Document Object Model)文档对象模型<br>dot operator (?Ҏ(gu)作符<br>double-byte character set (DBCS)双字节字W集(DBCS)<br>DP——Dynamic Programming——动态规?br>Drawing Graphs Nicely 囄描绘<br>Drawing Trees ?wi)的描?br>driver 驱动(E序)<br>DTD (document type definition) 文cd定义<br>dump 转储<br>dump file 转储文g<br>dynamic assembly 动态装配g、动态配?br>dynamic binding 动态绑?br>dynamic cursor 动态游?(for database)<br>dynamic filter 动态筛?(for database)<br>dynamic locking 动态锁?(for database)<br>dynamic recovery 动态恢?(for database)<br>dynamic snapshot 动态快?(for database)<br>dynamic SQL statements 动态SQL语句 (for database)<br>e-business ?sh)子商?br>EAI (enterprise application integration)企业应用E序集成(整合)<br>EBCO (empty base class optimization) I基cM化(机制Q?br>Edge and Vertex Connectivity 割边/割点<br>Edge Coloring Ҏ(gu)?br>EDI (Dlectronic Data Interchange)?sh)子数据交?br>efficiency 效率<br>efficient 高效<br>encapsulation 装<br>enclosing class 外围cd(与l(f)状类?nested class有关)<br>end user 最l用?br>end-to-end authentication 端对端n份验?br>engine 引擎<br>entity 实体<br>enum (enumeration) 枚D<br>enumerators 枚D成员、枚丑֙<br>equal 相等<br>equality 相等?br>equality operator {号操作W?br>error log 错误日志 (for database)<br>escape character 转义W、{义字W?br>escape code 转义?br>Eulerian Cycle / Chinese Postman Euler回\/中国邮\<br>evaluate 评估<br>event 事g<br>event driven 事g驱动?br>event handler 事g处理?br>evidence 证据<br>exception 异常<br>exception declaration 异常声明<br>exception handling 异常处理、异常处理机?br>exception specification 异常规范<br>exception-safe 异常安全?br>exclusive lock 排它?(for database)<br>exit 退?br>explicit 昑ּ<br>explicit specialization 昑ּ特化<br>explicit transaction 昑ּ事务 (for database)<br>export 导出<br>expression 表达?br>facility 设施、设?br>Factoring and Primality Testing 因子分解/质数判定<br>fat client 胖客L(fng)<br>feature Ҏ(gu)、特?br>Feedback Edge/Vertex Set 最大无环子?br>fetch 提取<br>field 字段 (for database)<br>field 字段(java)<br>field length 字段长度 (for database)<br>file 文g<br>filter {?(for database)<br>finalization l结<br>finalizer l结?br>Finite State Machine Minimization 有穷自动机简?br>firewall 防火?br>firmware Zg<br>flag 标记<br>flash memory 闪存<br>flush h<br>font 字体<br>For GUI 界面<br>foreign key (FK) 外键(FK) (for database)<br>form H体<br>formal parameter 形参<br>forward declaration 前置声明<br>forward-only 只向前的<br>forward-only cursor 只向前游?(for database)<br>fragmentation 片 (for database)<br>framework 框架<br>full specialization 完全特化<br>function 函数<br>function call operator (即operator ()) 函数调用操作W?br>function object 函数对象<br>function overloaded resolution函数重蝲册<br>function template函数模板<br>functionality 功能<br>functor 仿函?br>GAC (global assembly cache) 全局装配件缓存、全局配g~存<br>game 游戏<br>GC (Garbage collection) 垃圾回收(机制)、垃圾收?机制)<br>generate 生成<br>Generating Graphs 囄生成<br>Generating Partitions 划分生成<br>Generating Permutations 排列生成<br>Generating Subsets 子集生成<br>generic 泛化的、一般化的、通用?br>generic algorithm通用法<br>genericity 泛型<br>getter (相对?setter)取值函?br>global 全局?br>global object 全局对象<br>global scope resolution operator 全局范围解析操作W?br>grant 授权 (for database)<br>granularity _度<br>Graph Data Structures ?br>Graph Isomorphism 同构<br>Graph Partition 囄划分<br>Graph Problems ?hard 图论-NP问题<br>Graph Problems ?polynomial 图论-多项式算?br>group l、群<br>group box 分组?br>GUI 囑Ş界面<br>GUID (Globally Unique Identifier) 全球唯一标识W?br>Hamiltonian Cycle Hamilton回\<br>hand shaking 握手<br>handle 句柄<br>handler 处理?br>hard disk 盘<br>hard-coded 编码的<br>hard-copy 截屏?br>hardware g<br>hash table 散列表、哈希表<br>header file头文?br>heap ?br>help file 帮助文g<br>hierarchical data 阶层式数据、层ơ式数据<br>hierarchy 层次l构、承体p?br>high level 高阶、高?br>hook 钩子<br>Host (application)宿主(应用E序)<br>hot key 热键<br>HTML (HyperText Markup Language) 文本标记语a<br>HTTP (HyperText Transfer Protocol) 文本传输协?br>HTTP pipeline HTTP道<br>hyperlink 链?br>icon 图标<br>IDE (Integrated Development Environment)集成开发环?br>identifier 标识W?br>IDL (Interface Definition Language) 接口定义语言<br>idle time I闲旉<br>if and only if当且仅当<br>IL (Intermediate Language) 中间语言、中介语a<br>image 图象<br>IME 输入?br>immediate base 直接基类<br>immediate derived 直接zc?br>immediate updating x更新 (for database)<br>implement 实现<br>implementation 实现、实现品<br>implicit 隐式<br>implicit transaction隐式事务 (for database)<br>import 导入<br>in-place active 现场Ȁz?br>increment operator 增加操作W?br>incremental update 增量更新 (for database)<br>Independent Set 独立?br>index 索引 (for database)<br>infinite loop 无限循环<br>infinite recursive 无限递归<br>information 信息<br>infrastructure 基础设施<br>inheritance l承、承机?br>initialization 初始?br>initialization list 初始化列表、初始值列?br>initialize 初始?br>inline 内联<br>inline expansion 内联展开<br>inner join 内联?(for database)<br>instance 实例<br>instantiated L(fng)化、实体化(常应用于template)<br>instantiation L(fng)体、具现化实体(常应用于template)<br>integrate 集成、整?br>integrity 完整性、一致?br>integrity constraint完整性约?(for database)<br>interacts 交互<br>interface 接口<br>interoperability 互操作性、互操作能力<br>interpreter 解释?br>interprocess communication (IPC)q程间通讯(IPC)<br>Intersection Detection 撞试<br>introspection 自省<br>invariants 不变?br>invoke 调用<br>isolation level 隔离U别 (for database)<br>item V条ƾ、项?br>iterate q代<br>iteration q代(回圈每次轮回UCؓ(f)一个iteration)<br>iterative 反复的、P代的<br>iterator q代?br>JIT compilation JIT~译 x~译<br>Job Scheduling 工程安排<br>Kd-Trees U段?br>key ?(for database)<br>key column 键列 (for database)<br>Knapsack Problem 背包问题<br>laser Ȁ?br>late binding q绑?br>left outer join 左向外联?(for database)<br>level 阶、层?br>library ?br>lifetime 生命期、寿?br>Linear Programming U性规?br>link q接、链?br>linkage q接、链?br>linker q接器、链接器<br>list 列表、表、链?br>list box 列表?br>literal constant 字面常数<br>livelock z锁 (for database)<br>load 装蝲、加?br>load balancing 负蝲q<br>loader 装蝲器、蝲入器<br>local 局部的<br>local object 局部对?br>lock ?br>log 日志<br>login d<br>login security moded安全模式 (for database)<br>Longest Common Substring 最长公共子?br>lookup table 查找?(for database)<br>loop 循环<br>loose coupling 松散耦合<br>lvalue 左?br>machine code 机器码、机器代?br>macro ?br>maintain l护<br>Maintaining Line Arrangements q面分割<br>managed code 受控代码、托代?br>Managed Extensions 受控扩充件、托扩?br>managed object 受控对象、托对?br>mangled name<br>manifest 清单<br>manipulator 操纵?iostream预先定义的一U东?<br>many-to-many relationship 多对多关p?(for database)<br>many-to-one relationship 多对一关系 (for database)<br>marshal 列集<br>Matching 匚w<br>Matrix Multiplication 矩阵乘法<br>Medial-Axis Transformation 中u变换<br>Median and Selection 中位?br>member 成员<br>member access operator 成员取用q算?有dot和arrow两种)<br>member function 成员函数<br>member initialization list成员初始值列?br>memberwise 以member为单?#8230;、members 逐一…<br>memberwise copy<br>memory 内存<br>memory leak 内存泄漏<br>menu 菜单<br>message 消息<br>message based Z消息?br>message loop 消息?br>message queuing消息队列<br>metadata 元数?br>metaprogramming元编E?br>method Ҏ(gu)<br>micro ?br>middle tier 中间?br>middleware 中间?br>MIME Multipurpose Internet Mail Extension 多用?Internet 邮g扩展<br>Minimum Spanning Tree 最生成树(wi)<br>Minkowski Sum Minkowski?br>modeling 建模<br>modeling language 建模语言<br>modem 调制解调?br>modifier 修饰字、修饰符<br>module 模块<br>most derived class最底层的派生类<br>Motion Planning q动规划<br>mouse 鼠标<br>multi-tasking 多Q?br>multi-thread 多线E?br>multicast delegate l播委托、多点委?br>multidimensional OLAP (MOLAP) 多维OLAP(MOLAP) (for database)<br>multithreaded server application 多线E服务器应用E序<br>multiuser 多用?br>mutable 可变?br>mutex 互斥元、互斥体<br>named parameter 命名参数<br>named pipe 命名道<br>namespace 名字I间、命名空?br>native 原生的、本地的<br>native code 本地码、本机码<br>Native Image Generator (NGEN)本地映像生成?br>Nearest Neighbor Search 最q点Ҏ(gu)?br>nested class 嵌套c?br>nested query 嵌套查询 (for database)<br>nested table 嵌套?(for database)<br>network |络<br>network card |卡<br>Network Flow |络?br>nondependent name<br>Numerical Problems 数值问?br>object 对象<br>object based Z对象?br>object file 目标文g<br>object model 对象模型<br>object oriented 面向对象?br>object pooling 对象池化<br>ODBC data source ODBC数据?(for database)<br>ODBC driver ODBC驱动E序 (for database)<br>ODR (one-definition rule)<br>OLE Automation objects OLE自动化对?(for database)<br>OLE Automation server OLE自动化服务器 (for database)<br>OLE DB consumer OLE DB使用?(for database)<br>OLE DB for OLAP 用于OLAP的OLE DB (for database)<br>OLE DB provider OLE DB提供?(for database)<br>one-to-many relationship 一对多关系 (for database)<br>one-to-one relationship 一对一关系 (for database)<br>online analytical processing (OLAP) 联机分析处理(OLAP) (for database)<br>online redo log 联机重做日志 (for database)<br>online transaction processing (OLTP) 联机事务处理(OLTP) (for database)<br>Open Data Services (ODS) 开攑ּ数据服务(ODS) (for database)<br>Open Database Connectivity (ODBC) 开攑ּ数据库连?ODBC) (for database)<br>operand 操作?br>operating system (OS) 操作pȝ<br>operation 操作<br>operator 操作W、运符<br>optimizer 优化?br>option 选项<br>outer join 外联?(for database)<br>overflow 上限溢位(相对于underflow)<br>overhead 额外开销<br>overload 重蝲<br>overload resolution 重蝲册<br>overloaded function 重蝲的函?br>overloaded operator 被重载的操作W?br>override 覆写、重载、重新定?br>package ?br>packaging 打包<br>palette 调色?br>parallel q行<br>parameter 参数、Ş式参数、Ş?br>parameter list 参数列表<br>parameterize 参数?br>parent class 父类<br>parentheses 圆括弧、圆括号<br>parse 解析<br>parser 解析?br>part 零g、部?br>partial specialization 局部特?br>pass by address 传址(函式引数的传递方?(非正式用?<br>pass by reference 传地址、按引用传?br>pass by value 按g?br>pattern 模式<br>PDA (personal digital assistant)个h数字助理<br>PE (Portable Executable) file 可移植可执行文g<br>performance 性能<br>persistence 持久?br>PInvoke (platform invoke service) q_调用服务<br>pixel 像素<br>placeholder 占位W?br>placement delete<br>placement new<br>Planarity Detection and Embedding q面性检和嵌入<br>platform q_<br>POD (plain old data (type))<br>POI (point of instantiation)<br>Point Location 位置查询<br>pointer 指针<br>poll 轮询<br>Polygon Partitioning 多边形分?br>polymorphism 多?br>pooling 池化<br>pop up 弹出?br>port 端口<br>postfix 后缀<br>precedence 优先?通常用于q算子的优先执行ơ序)<br>prefix 前缀<br>preprocessor 预处理器<br>primary key (PK)主键(PK) (for database)<br>primary table 主表 (for database)<br>primary template原始模板<br>primitive type 原始cd<br>print 打印<br>printer 打印?br>Priority Queues ?br>procedural q程式的、过E化?br>procedure q程<br>process q程<br>profile 评测<br>profiler 效能(性能)评测?br>program E序<br>programmer E序?br>programming~程、程序设?br>progress bar q度指示?br>project 目、工E?br>property 属?br>protocol 协议<br>pseudo code伪码<br>qualified l过资格修饰(例如加上scopeq算?<br>qualified name<br>qualifier 修饰W?br>quality 质量<br>queue 队列<br>race condition 竞争条gQ多U程环境常用语)(j)<br>radian 弧度<br>radio button 单选按?br>raise 引发(常用来表C发Z个exception)<br>random number 随机?br>Random Number Generation 随机数生?br>range 范围、区?br>Range Search 范围查询<br>rank {<br>raw 未经处理?br>re-direction 重定?br>readOnly只读<br>record 记录 (for database)<br>recordset 记录?(for database<br>recursion —?递归<br>recursive 递归<br>refactoring 重构<br>refer 引用、参?br>reference 引用、参?br>reference counting引用计数<br>referential integrity (RI)引用完整?RI) (for database)<br>reflection 反射<br>refresh data h数据 (for database)<br>register 寄存?br>regular expression 正则表达?br>relational database 关系数据?br>remote q程<br>remote request q程h<br>represent 表述Q表?br>resolution 解析q程<br>resolve 解析、决?br>result set l果?(for database)<br>retrieve data (g)索数?br>return q回<br>return type q回cd<br>return value q回?br>revoke 撤销<br>right outer join 叛_外联?(for database)<br>robust 健壮<br>robustness 健壮?br>roll back 回滚 (for database)<br>roll forward 前滚 (for database)<br>routine 例程<br>row ?(for database)<br>row lock 行锁 (for database)<br>rowset 行集 (for database)<br>RPC (remote procedure call)RPC(q程q程调用)<br>runtime 执行期、运行期、执行时、运行时<br>rvalue 叛_?br>Satisfiability 可满x?br>save 保存<br>savepoint 保存?(for database)<br>SAX (Simple API for XML)<br>scalable 可׾~的、可扩展?br>schedule 调度<br>scheduler 调度E序<br>schema 模式、纲目结?br>scope 作用域、生存空?br>scope operator 生存I间操作W?br>scope resolution operator 生存I间解析操作W?br>screen 屏幕<br>scroll bar滚动?br>SDK (Software Development Kit)软g开发包<br>sealed class 密封c?br>search 查找<br>Searching 查找<br>semantics 语义<br>semaphore 信号?br>sequential container序列式容?br>serial 串行<br>serialization/serialize 序列?br>server 服务器、服务端<br>server cursor服务端游标、服务器游标 (for database)<br>session ?x)?(for database)<br>Set and String Problems 集合与串的问?br>Set Cover 集合覆盖<br>Set Data Structures 集合<br>Set Packing 集合配置<br>setter 讑ր函?br>Shape Similarity 怼多边?br>shared lock ׃n?(for database)<br>Shortest Common Superstring 最短公q?br>Shortest Path 最短\?br>sibling 同<br>side effect 副作?br>signature {֐<br>Simplifying Polygons 多边形化<br>single-threaded 单线E?br>slider滑块<br>slot ?br>smart pointer 指针<br>SMTP (Simple Mail Transfer Protocol) 单邮件传输协?br>snapshot 截屏?br>snapshot 快照 (for database)<br>SOAP (simple object access protocol) 单对象访问协?br>software 软g<br>Solving Linear Equations U性方E组<br>Sorting 排序<br>source code 源码、源代码<br>specialization 特化<br>specification 规范、规?br>splitter 切分H口<br>SQL (Structured Query Language) l构化查询语a (for database)<br>stack 栈、堆?br>stack unwinding 叠辗转开?此词用于exception主题)<br>standard library 标准?br>standard template library 标准模板?br>stateless 无状态的<br>statement 语句、声?br>static cursor ?rn)态游?(for database)<br>static SQL statements ?rn)态SQL语句 (for database)<br>status bar 状态条<br>Steiner Tree Steiner?br>stored procedure 存储q程 (for database)<br>stream ?br>string 字符?br>String Matching 模式匚w<br>stub 存根<br>subobject子对?br>subquery 子查?(for database)<br>subroutine 子例E?br>subscript operator 下标操作W?br>subset 子集<br>subtype 子类?br>support 支持<br>suspend 挂v<br>symbol 记号<br>syntax 语法<br>system databases pȝ数据?(for database)<br>system tables pȝ?(for database)<br>table ?(for database)<br>table lock 表锁 (for database)<br>table-level constraint 表U束 (for database)<br>tape backup 带备䆾 (for database)<br>target 标的,目标<br>task switch 工作切换<br>TCP (Transport Control Protocol) 传输控制协议<br>template 模板<br>template argument deduction 模板参数推导<br>template explicit specialization 模板昑ּ特化<br>template parameter 模板参数<br>template template parameter<br>template-id<br>temporary object 临时对象<br>temporary table 临时?(for database)<br>text 文本<br>Text Compression 压羃<br>text file 文本文g<br>thin client 瘦客L(fng)<br>third-party W三?br>thread U程<br>thread-safe U程安全?br>throw 抛出、引?常指发出一个exception)<br>token W号、标记、o(h)牌(看场合)(j)<br>Topological Sorting 拓扑排序<br>trace 跟踪<br>transaction 事务 (for database)<br>transaction log 事务日志 (for database)<br>transaction rollback 事务回滚 (for database)<br>transactional replication 事务复制 (for database)<br>Transitive Closure and Reduction 传递闭?br>translation unit 译单元<br>Traveling Salesman Problem 旅行商问?br>traverse 遍历<br>Triangulation 三角剖分<br>trigger 触发?(for database)<br>tuple<br>two-phase commit 两阶D|?(for database)<br>two-phase lookup 两阶D|?br>type cd<br>UDDI(Universary Description, Discovery and Integration)l一描述、查询与集成<br>UML (unified modeling language)l一建模语言<br>unary function 单参函数<br>unary operator 一元操作符<br>unboxing 拆箱、拆p{?br>underflow 下限溢位(相对于overflow)<br>Unicode l一字符~码标准Q采用双字节对字W进行编?br>Union query 联合查询 (for database)<br>UNIQUE constraints UNIQUEU束 (for database)<br>unique index 唯一索引 (for database)<br>unmanaged code 非受控代码、非托管代码<br>unmarshal 散集<br>unqualified 未经限定的、未l修饰的<br>URI (Uniform Resource identifier) l一资源标识W?br>URL (Uniform Resource Locator) l一资源定位?br>user 用户<br>user interface 用户界面<br>value types 值类?br>variable 变量<br>vector 向量(一U容器,有点cMarray)<br>VEE (Virtual Execution Engine)虚拟执行引擎<br>vendor 厂商<br>Vertex Coloring Ҏ(gu)?br>Vertex Cover 点覆?br>viable 可行?br>video 视频<br>view 视图 (for database)<br>view 视图<br>virtual function 虚函?br>virtual machine 虚拟?br>virtual memory 虚拟内存<br>Voronoi Diagrams Voronoi?br>vowel 元音字母<br>Web Services web服务<br>WHERE clause WHERE子句 (for database)<br>wildcard characters 通配W字W?(for database)<br>wildcard search 通配W搜?(for database)<br>window H口<br>window function H口函数<br>window procedure H口q程<br>Windows authentication Windowsw䆾验证<br>wizard 向导<br>word 单词<br>word processor 字处理器<br>wrapper 包装、包装器<br>write enable 写启?(for database)<br>write-ahead log 预写日志 (for database)<br>write-only 只写<br>WSDL (Web Service Description Language)Web Service描述语言<br>XML (eXtensible Markup Language) 可扩展标记语a<br>XML Message Interface (XMI) XML消息接口<br>XSD (XML Schema Definition) XML模式定义语言<br>XSL (eXtensible Stylesheet Language) 可扩展样式表语言<br>XSLT (eXtensible Stylesheet Language Transformation)可扩展样式表语言转换<br>xxx based Zxxx?br>xxx oriented 面向xxx</p> <p>数据l构术语׃对照?br>abstract data type 抽象数据cd<br>activity on edge AOE|?br>activity on vertex AOV|?br>adjacency list L?br>adjacency matrix L矩阵<br>adjacency multilist L多重?br>adjacent edge 盔R?br>adjacent vertex 盔R点<br>ancestor 先<br>arc ?br>array 数组<br>articulation point q接?br>atomic data type 基本数据cd<br>augmenting path 增广路径<br>augmenting path graph 增广路径?br>average search length q_查找长度<br>balance merging sort q归ƈ排序<br>balance two-way merging 二\q归ƈ排序<br>banlanced binary tree q二叉?br>biconnected graph 重连通图<br>binary search 二分查找<br>binary search tree 二叉查找?br>binary sort tree 二叉排序?br>binary tree 二叉?br>bipartite graph 二部?br>blank string I白Q空|(j)?br>block search 分块查找<br>bottom 栈底<br>brother 兄弟<br>children 孩子<br>circular linked list 循环链表<br>cirular queue 循环队列<br>column major order 以列Z的顺序分?br>complete binary tree 完全二叉?br>complete graph 完全?br>connected component q通分?br>connected graph q通图<br>critical path 关键路径<br>cycle 回\Q环Q?br>data abstraction 数据抽象<br>data element 数据元素<br>data item 数据?br>data object 数据对象<br>data type 数据cd<br>decision tree 判定?br>deletion 删除<br>dense graph E密?br>depth 深度<br>deque(double-ended queue) 双端列表<br>descentdant 子孙<br>destination l点<br>digital analysis method 数字分析?br>digital search tree 数字查找?br>digraph(directed graph) 有向?br>diminishing increment sort 随小增量排序<br>direct access file 直接存取文g<br>directed acyclic graph 有向无环?br>directory structure 目录l构<br>division method 除法<br>doubly linked list 双向链表<br>doubly linked tree 双链?br>edge ?br>external sort 外部排序<br>file 文g<br>first-out list 先进先出表(队列Qfirst-in<br>first-out list 后进先出表(队列Qlast-in<br>fixed-aggregate data type 固定聚合数据cd<br>folding method 折叠?br>forest 林<br>front 队头<br>full binary tree 满二叉树(wi)<br>generalized list q义?br>grabh ?br>hash funticion 散列函数<br>hash search 散列查找<br>hash table 散列?br>head 弧头<br>head node 头结?br>head pointer 头指?br>heap sort 堆排?br>Huffman tree 哈夫曼树(wi)<br>immediate predecessor 直接前趋<br>immediate successor 直接后<br>immediately allocating method 直接定址?br>incident edge 兌?br>indegree 入度<br>indexed file 索引文g<br>indexed non-sequential file 索引非顺序文?br>indexed sequential file 索引序文g<br>initial node 初始l点<br>inorder traversal 中序遍历<br>insertion 插入<br>insertion sort 插入排序<br>internal sort 内部排序<br>inverted file 倒排文g<br>leaf 叶子<br>level 层次<br>linear linked list U性链?br>linear list U性表<br>linear structure U性结?br>link ?br>link field 铑֟<br>linked list 链表<br>logical structure 逻辑l构<br>master file L?br>matching 匚w<br>matrix 矩阵<br>maximum matching 最大匹?br>merge sort 归ƈ排序<br>mid-square method qx取中?br>minimum(cost)spanning tree 最(代h(hun)Q生成树(wi)<br>multi-dimentional array 多维数组<br>multilinked list 多重链表<br>multilist file 多重链表文g<br>node l点<br>nonlinear structure 非线性结?br>ordered pair 有序?br>ordered tree 有序?br>orthogonal list 十字链表<br>outdegree 出度<br>overflow 上溢<br>parents 双亲<br>partical order 偏序<br>path 路径<br>phyical structure 物理l构<br>ployphase merging sort 多步归ƈ排序<br>pointer 指针<br>pointer field 指针?br>pop 弹出<br>postorder traversal 后序遍历<br>predecessor 前趋<br>preorder traversal 先序遍历<br>push 压入<br>queue 队列<br>quick sort 快速排?br>radix sort 基数排序<br>random number method 随机数法<br>rear 队尾<br>replacement selection sort |换选择排序<br>root ?br>row major order 以行Z的顺序分?br>search (sequential search) U性查找(序查找Qlinear<br>searching 查找Q线?br>searching 查找<br>selection sort 选择排序<br>sequential file 序文g<br>shortest path 最短\?br>simple cycle 单回?br>simple path 单\?br>single linked list 单链?br>sink 汇点<br>sort 排序<br>sorting 排序Q分c?<br>source 源点<br>spanning forest 生成林<br>spanning tree 生成?br>spares graph E疏图<br>sparse matrix E疏矩?br>stack ?br>string IZQ零Ԍ(j)null<br>string ?br>string ?br>strongly connected graph 通图<br>subgraph 子图<br>substring 子串<br>subtree 子树(wi)<br>successor 后<br>symmetric matrix 对称矩阵<br>tail 弧尾<br>tail pointer 指?br>terminal node l端l点<br>threaded binary tree U烦(ch)二叉?br>top 栈定<br>topological order 拓扑有序<br>topological sort 拓扑排序<br>transposed matrix 转置矩阵<br>traversal of tree ?wi)的遍?br>traversing binary tree 遍历二叉?br>traversing graph 遍历?br>tree ?br>tree index ?wi)型索?br>truangular matrix 三角矩阵<br>unconnected graph 非连通图<br>underflow 下溢<br>undigraph(undirected graph) 无向?br>unordered pair 无序?br>unordered tree 无序?br>updating 更新<br>variable-aggregate data type 可变聚合数据cd<br>vertex 点<br>weakly connected graph p通图<br>weight ?br>weighted graph 加权?/p> <p>法常用术语׃对照<br>Approximate String Matching 模糊匚w<br>Arbitrary Precision Arithmetic 高精度计?br>Bandwidth Reduction 带宽压羃<br>Bin Packing 装箱问题<br>Calendrical Calculations 日期<br>Clique 最大团<br>Combinatorial Problems l合问题<br>Computational Geometry 计算几何<br>Connected Components q通分?br>Constrained and Unconstrained Optimization 最值问?br>Convex Hull 凸包<br>Cryptography 密码<br>Data Structures 基本数据l构<br>Determinants and Permanents 行列?br>Dictionaries 字典<br>Discrete Fourier Transform LFourier变换<br>Drawing Graphs Nicely 囄描绘<br>Drawing Trees ?wi)的描?br>Edge and Vertex Connectivity 割边/割点<br>Edge Coloring Ҏ(gu)?br>Eulerian Cycle / Chinese Postman Euler回\/中国邮\<br>Factoring and Primality Testing 因子分解/质数判定<br>Feedback Edge/Vertex Set 最大无环子?br>Finite State Machine Minimization 有穷自动机简?br>Generating Graphs 囄生成<br>Generating Partitions 划分生成<br>Generating Permutations 排列生成<br>Generating Subsets 子集生成<br>Graph Data Structures ?br>Graph Isomorphism 同构<br>Graph Partition 囄划分<br>Graph Problems ?hard 图论-NP问题<br>Graph Problems ?polynomial 图论-多项式算?br>Hamiltonian Cycle Hamilton回\<br>Independent Set 独立?br>Intersection Detection 撞试<br>Job Scheduling 工程安排<br>Kd-Trees U段?br>Knapsack Problem 背包问题<br>Linear Programming U性规?br>Longest Common Substring 最长公共子?br>Maintaining Line Arrangements q面分割<br>Matching 匚w<br>Matrix Multiplication 矩阵乘法<br>Medial-Axis Transformation 中u变换<br>Median and Selection 中位?br>Minimum Spanning Tree 最生成树(wi)<br>Minkowski Sum Minkowski?br>Motion Planning q动规划<br>Nearest Neighbor Search 最q点Ҏ(gu)?br>Network Flow |络?br>Numerical Problems 数值问?br>Planarity Detection and Embedding q面性检和嵌入<br>Point Location 位置查询<br>Polygon Partitioning 多边形分?br>Priority Queues 优先队列<br>Random Number Generation 随机数生?br>Range Search 范围查询<br>rate of convergence 收敛速度<br>robustness 鲁棒?br>Satisfiability 可满x?br>Searching 查找<br>Set and String Problems 集合与串的问?br>Set Cover 集合覆盖<br>Set Data Structures 集合<br>Set Packing 集合配置<br>Shape Similarity 怼多边?br>Shortest Common Superstring 最短公q?br>Shortest Path 最短\?br>Simplifying Polygons 多边形化<br>Solving Linear Equations U性方E组<br>Sorting 排序<br>Steiner Tree Steiner?br>String Matching 模式匚w<br>Text Compression 压羃<br>Topological Sorting 拓扑排序<br>Transitive Closure and Reduction 传递闭?br>Traveling Salesman Problem 旅行商问?br>Triangulation 三角剖分<br>Vertex Coloring Ҏ(gu)?br>Vertex Cover 点覆?br>Voronoi Diagrams Voronoi?</p> <p>English Simplified Chinese </p> <p>RIA – Rich Internet Application 丰富互联|应用程?br>Framework 框架<br>delivery. delivering (a RIA) 提供<br>design pattern 设计模式<br>application vs. architectural framework 应用E序与架构框?br>leveraging 利用<br>Factory, Flyweight, Observer, Decorator 工厂模式, 享元模式, 观察者模? 装饰模式 Singleton 单例<br>Mandelbrot Mandelbrot<br>manage state 理状?br>stateful client 状态客L(fng)<br>best practice 最?jng)_?br>architecting the user experience 构徏用户l验<br>widget H口部?br>upgrade 升<br>development tool 开发工?br>parent (of object), child 父(对象),子对?br>encapsulate 装<br>implementation 实现<br>data collection 数据集合<br>persistence framework 持箋性框?br>transaction framework 事务框架<br>logging framework 日志框架<br>aspect-oriented framewor 面向斚w的框?br>animation framework 动画框架<br>unit-testing framework 单元试框架<br>history management 历史理<br>layout management 布局理<br>cursor management 光标理<br>exception handling 异常处理<br>application-level services 应用E序层服?br>highly granular 高度微粒?br>software engineering 软g工程<br>instance (of a class) Q类的)(j)实例<br>subset 子集 user gestures 用户姿?br>drag’n'drop functionality 拖(拽)(j)攑֊?</p><img src ="http://www.aygfsteel.com/mlh123caoer/aggbug/139506.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/mlh123caoer/" target="_blank">草儿</a> 2007-08-26 16:45 <a href="http://www.aygfsteel.com/mlh123caoer/archive/2007/08/26/139506.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>XMLBeans 2.0http://www.aygfsteel.com/mlh123caoer/archive/2007/08/21/138303.html草儿草儿Tue, 21 Aug 2007 03:06:00 GMThttp://www.aygfsteel.com/mlh123caoer/archive/2007/08/21/138303.htmlhttp://www.aygfsteel.com/mlh123caoer/comments/138303.htmlhttp://www.aygfsteel.com/mlh123caoer/archive/2007/08/21/138303.html#Feedback0http://www.aygfsteel.com/mlh123caoer/comments/commentRss/138303.htmlhttp://www.aygfsteel.com/mlh123caoer/services/trackbacks/138303.htmlXMLBeans?/h3>

  W3C XML Schema是一个XML文Q该文档定义一l其他XML文档必须遵守才合法的规则。与早期XML模式语言如文档类型定义(document type definitionQDTDQ或单对象XMLQsimple object XMLQSOXQ相比,W(xu)3C XML Schemah许多优点Q它q提供了(jin)可供用户以多U方式用的丰富Ҏ(gu)集?/p>

  XMLBeans是完全与模式兼容的XML-Javal定工具Q用这个工具可以以对Java友好的方式访问XML的全部特性。XMLBean解决Ҏ(gu)是独一无二的,因ؓ(f)它提供XML数据的双重视图。XMLBeansl护一个信息和l构均未更改的原始XML文Qƈ提供一个基于Java的XML数据视图?/p>

  现在我们通过昄一些代码示例来演示XMLBeans 2.0中的一些特性。在每个CZ中,我们都会(x)提供模式以及(qing)一些操U|式的XMLBean表示的Java代码。模式和JavaCZ都可供下载?/p>

  下面我们来看下面的模式片断:(x)

   

  1 <xs:element name="order">
2   <xs:complexType>
3     <xs:sequence>
4       <xs:element name="orderNo" type="xs:string"/>
5       <xs:element name="item" nillable="true"
6          maxOccurs="unbounded" type="tns:itemType"/>
7       <xs:element name="address" type="tns:addressType"/>
8       <xs:element name="quantity" type="tns:quantityType"/>
10     </xs:sequence>
11   </xs:complexType>
12 </xs:element>

  要生成XMLBeansc,需要对模式q行~译。用scomp实用工具可以很轻村֜完成q个dQ因为它可以为所有简单和复杂的类型生成接口。所有类和接口的包名均派生自模式中指定的targetNamespace倹{详l情况请阅读Hetal Shah?a >Configuring XMLBeansQ中文版QDev2DevQ?005q?月)(j)?/p>

  现在我们看看如何生成实例文Q如何针Ҏ(gu)式检查文档的有效性,以及(qing)如何实例保存到文gpȝ?/p>

  下面所生成的OrderDocument接口是一个XMLBeansZQ意全局元素或类型创建的Ҏ(gu)“文”cdCZ?/p>

  AddressType和ItemType是ؓ(f)全局复杂cdaddressType和sizeType创徏的接口:(x)

   

   1 OrderDocument orderDoc = OrderDocument.Factory.newInstance();
2 Order order = orderDoc.addNewOrder();
3 order.setOrderNo("ORD1234");
4 order.setQuantity(4);
5
6 AddressType aType = order.addNewAddress();
7 aType.setCity("Kirkland");
8
9 ItemType iType = order.addNewItem();
10 iType.setId("ITEM003");
11
12 boolean isValid = orderDoc.validate(xopt);
13
14 orderDoc.save(new File("sample.xml"),xopt);

  q行此示例会(x)D构徏一个实例文,该文档将被验证ƈ?#8220;sample. xml”为名保存在本地文件系l中。该E序q会(x)此实例文的内容以?qing)验证测试的l果昄到命令提C符或Unix shell中:(x)

   

   1 <sam:order xmlns:sam="http://temp.openuri.org/Sample">
2   <sam:orderNo>ORD1234</sam:orderNo>
3   <sam:item>
4     <sam:id>ITEM003</sam:id>
5     <sam:description>Latest Item</sam:description>
6     <sam:size>Large</sam:size>
7   </sam:item>
8   <sam:address>
9     <sam:Name>BEA Systems, Inc</sam:Name>
10     <sam:Street>10230 NE Points Drive, Ste 300</sam:Street>
11     <sam:City>Kirkland</sam:City>
12     <sam:Zip>98033</sam:Zip>
13     <sam:State>WA</sam:State>
14     <sam:Country>USA</sam:Country>
15   </sam:address>
16   <sam:quantity>4</sam:quantity>
17 </sam:order>

  q是一个有效的实例文。在~译一个模式时Q从模式生成的API?x)与表示底层XML模式的XMLBeanscdpȝ盔R成。对模型相关信息的访问权限可通过使用模式cdpȝAPI获取?/p>

  在下一个示例中Q我们将展示如何使用getEnumerationValues()Ҏ(gu)~程式地讉K特定模式cd的多个枚丑ր{我们用的模式cd是sizeTypeQ它是带有三个可能值的枚Dcd。该模式片断如下所C:(x)

   

   1 <xs:simpleType name="sizeType">
2   <xs:restriction base="xs:token">
3     <xs:enumeration value="Small"/>
4     <xs:enumeration value="Medium"/>
5     <xs:enumeration value="Large"/>
6   </xs:restriction>
7 </xs:simpleType>

  SizeType是SchemaTypec,它包含关于simpleType模式cd的信息:(x)

  SchemaType schType = null;
XmlAnySimpleType [] xmlarray = null;
SizeType sType = SizeType.Factory.newInstance();
schType = sType.schemaType();
xmlarray = schType.getEnumerationValues();

  q行此代码示例(EnumerationSample.javaQ将D~程式地获取枚D值ƈ其重定向到System.outQ?/p>

  Enumeration values for ItemType :
Small
Medium
Large

  XmlCursor是XMLBeans中的一个有特性;它们提供一U操作或DXML实例文的直观方法。XmlCursorq提供了(jin)一U执行XQuery表达式的Ҏ(gu)。一旦加载了(jin)XML文Q就可以创徏一个游标来表示XML中的特定位置。因为用户可以用具有或不具有对应于XML的模式的游标Q因此游标是处理XML的理x法?/p>

  下一个示例演C如何用游标操作XMLBean实例。此CZ分析在第一个示例中创徏的sample.xml。一旦将该文件保存到内存中,׃(x)使用XmlCursor APID到quantity元素q将值更改ؓ(f)104Q?/p>

  orderDoc = OrderDocument.Factory.parse(new File("sample.xml"));
XmlCursor xcursor = orderDoc.newCursor();
xcursor.toFirstChild();
xcursor.toChild(3);
xcursor.toEndToken();
xcursor.toPrevChar(1);
xcursor.insertChars("10");
xcursor.disp ose();

  q行此示例会(x)生成下面的输出,它显CZ改后的XMLBean文档Z么会(x)无效Q?/p>

  Message: decimal
value (104) is greater than maxInclusive facet (5) for
quantityType in namespace http://temp.openuri.org/Sample
Location of invalid XML:
<xml-fragment xmlns:sam="http://temp.openuri.org/Sample"/>

  到目前ؓ(f)止,我们已经要介l了(jin)XMLBeansQ现在介l一?.0版本中的新特性?/p>

XMLBeans 2.0中的新特?/h3>

  通常Q通过观察产品的实际运行来?jin)解其中的新?gu)是比较便的Ҏ(gu)。我们将通过介绍一个利用了(jin)XMLBeans的某些重要特性的目来介l这些新Ҏ(gu)。众所周知QXMLBeans是一个Apache目Q所以它使用Atlassian的Jira问题跟踪和项目管理应用程序来跟踪bug、特性和其他问题。BEA对XMLBeans目q行?jin)投资,q拥有一个提供高质量软g的标准。这意味着BEA很关注XMLBeans之类目的质量。由于XMLBeans是开源项目,q且它用Apache的常见工具如JiraQ所以问题就在于BEA如何跟踪XMLBeans的质量指标?/p>

  用于揭示XMLBeans 2.0中的一些新Ҏ(gu)的计划是对这个问题的回答Q如何方便地从Jira攉质量指标Q?/p>

  下面的屏q快照显CZ(jin)XMLBeans的项目主面。请看图片的双Q在Project Summary区域下可以看C些与我们兛_(j)的质量指标问题相关的选项?/p>

?QXMLBeans Jira目面
?QXMLBeans Jira目面Q单d像查看大图)(j)

  Jira的一个好处就是它能提供问题数据的不同视图。在下图中,L(fng)名ؓ(f)Current View的标题。在屏幕快照中,目前选择的是Browser视图Q但q有其他选项Q包括一个打印视图、一个XML视图Q甚臌有一个Excel?sh)子表格视图Q?/p>

?QXMLBeans Jira Issue Navigator
?QXMLBeans Jira Issue NavigatorQ单d像查看大图)(j)

  熟?zhn)Jira以及(qing)XMLBeans跟踪质量指标的方式后Q我们可以通过多种方式攉质量指标。我们的选项包括屏幕抓取HTML、分析电(sh)子表g?qing)从URL获取XML。我们认为最合理的是从URLQ通过从Issue Navigator面单击XML链接而提供)(j)使用XML视图。该URL的内容看h与下面的XML文cMQ?/p>

  <?xml version="1.0" encoding="utf-8" ?>
<!--  RSS generated by JIRA 98 at Sun Dec 04 18:08:34 CET 2005
-->
<rss version="0.92">
<channel>
<title>ASF JIRA</title>
<link>http://issues.apache.org/jira</link>
<description>This file is an XML representation of some
issues</description>
<language>en</language>
<item>
<title>[XMLBEANS-232] Fast Xml Infoset</title>
<link>http://issues.apache.org/jira/browse/x</link>
<description>
<!-- left out for brevity -->
</description>
<environment><![CDATA[]]></environment>
<key id="12326193">XMLBEANS-232</key>
<summary>Fast Xml Infoset</summary>
<type id="4">Improvement</type>
<priority id="3">Major</priority>
<status id="1">Open</status>
<resolution>Unresolved</resolution>
<assignee>Unassigned</assignee>
<reporter username="rrusin">Rafal
Rusin</reporter>
<created>Wed, 30 Nov 2005 13:29:44 +0100
(CET)</created>
<updated>Sat, 3 Dec 2005 18:15:10 +0100
(CET)</updated>
<version>unspecified</version>
<fixVersion>unspecified</fixVersion>
<component>XmlObject</component>
<due></due>
<votes>0</votes>
<comments>
<comment author="dandiep" created="Sat, 3 Dec 2005
18:15:10 +0100 (CET)" level="">
<!-- ... -->
</comment>
</comments>
<customfields>
</customfields>
</item>
<item>
<!-- left out for brevity -->
</item>
</channel>
</rss>

  如果从上面的XML feed查看片断Q会(x)发现它被定义为RSS feed。我们的W一步是扑ֈ一个RSS 0.92版本的XML Schema模式Q这样就可以~译模式Qƈ通过使用XMLBeans的类gJavaBean的简单API来用XMLBeans分析URL。我们无法找到官Ҏ(gu)式,但可以找到规范,q可由此开始创建模式。随后,我们发现Ҏ(gu)规范创徏的模式与从Jira获取的RSS feed不匹配。我们该怎么做呢Q我们实际上惟一可以选择的就是ؓ(f)此RSS feed创徏一个模式,但这Ҏ(gu)且容易出错。进行了(jin)q一步的调查后,我们偶然发现?jin)新增的inst2xsdҎ(gu)?/p>

模式到实例再到模式的q程

   inst2xsd工具可作为命令行实用工具使用Q但用户也可以编E式C用API。其目的是采用一个XML实例q创Z个合法模式集。该工具也是可配|的Q它提供?jin)用于指定用哪U设计模式的选项Q包括Russian Doll、Salami Slice、Venetian BlindQ详l信息请参见模式设计指导原则Q?/p>

  该工兯能够枚举映到重复|q能够根据数据类型的最公分母创徏cd?/p>

  我们使用lcd:valq个g为创建最公分母cd的示例。该文本可由多个内置XML Schema数据cd表示Q例如字W串z的类型(xsd:string、xsd:normalizedString、xsd:tokenQ等{)(j)以及(qing)QNamecd。在本例中,inst2xsdҎ(gu)确定类型的方式是查扑։~为lcd的命名空间声明。如果找到该前缀Q该cd是QNameQ而不是某个可能基于字W串的类型?/p>

  现在看一下我们从Jira接收的RSS feed的结果是什么。如果我们已l将feed保存到名为jiraRssFeed.xml的实例中q已XMLBEANS_HOME\bin攑֜我们的\径中Q工作流如下:(x)

  /home/user>inst2xsd
Generates XMLSchema from instance xml documents.
Usage: inst2xsd [opts] [instance.xml]*
Options include:
-design [rd|ss|vb] - XMLSchema design type
rd  - Russian Doll Design - local elements and local types
ss  - Salami Slice Design - global elements and local
types
vb  - Venetian Blind Design (default) - local elements and
global complex types
-simple-content-types [smart|string] - Simple content types
detection (leaf text). Smart is the default
-enumerations [never|NUMBER] - Use enumerations. Default
value is 10.
-outDir [dir] - Directory for output files. Default is '.'
-outPrefix [file_name_prefix] - Prefix for output file names.
Default is 'schema'
-validate - Validates input instances against generated
schemas.
-verbose - print more informational messages
-license - print license information
-help - help information
/home/user>inst2xsd jiraRssFeed.xml -enumerations never
-design rd -verbose -validate
# this generates a schema named schema0.xsd

  q将生成名ؓ(f)schema0.xsd的(可配|)(j)文gQƈ且模式将与下面的片断cMQ?/p>

   1 <?xml version="1.0" encoding="UTF-8"?>
2 <xs:schema attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
3  <xs:element name="rss">
4    <xs:annotation>
5      <xs:documentation>RSS generated by JIRA 98...
</xs:documentation>
6    </xs:annotation>
7    <xs:complexType>
8      <xs:sequence>
9        <xs:element name="channel">
10          <xs:complexType>
11            <xs:sequence>
12              <xs:element type="xs:string" name="title"/>
13              <xs:element type="xs:anyURI" name="link"/>
14              <xs:element type="xs:string" name="description"/>
15              <xs:element type="xs:string" name="language"/>
15              <xs:element name="item" maxOccurs="unbounded"
minOccurs="0">

  从这个片断中我们发现Jira RSS feed所需的所有元素均已定义?/p>

  如果用户惌通过其他方式工作Q例如从XML Schema开始,XMLBeans的最新版本就提供?jin)这U功能。xsd2inst工具׃ؓ(f)用户提供?jin)从模式和全局元素创徏CZ文档的方式;该实例将包含单类型的倹{上qCU工L(fng)使用使得使用XML实例和模式变得非常简单?/p>

  在项目的q个阶段Q我们就拥有?jin)一个模式,使用q个模式可以通过scomp实用工具创徏一个XMLBeanscdjarQƈ可开始处理业务逻辑以及(qing)先前试攉的质量指标?/p>

  通过查看Jira RSS feed实例Q我们发现我们关注的bug详细信息攑֜名ؓ(f)item的元素中Q而且生成的模式将item元素作ؓ(f)数组。这意味着Q如果我们想要获得可能出现在所有项中的信息Q就需要P代所有项。现在我们看看如何通过一些代码实现这个目标。在下面的代码中Q我们会(x)遇到名字被指定ؓ(f)Ҏ(gu)参数的用户导致的所有问题:(x)

   1 public Vector getItemsFromReporter(String reporter) {
2
3  // Get the Jira RSS feed instance from a URL
4  URL jiraFeedUrl; = new URL("");
5
6  // Get instance objects
7  RssDocument rssDoc = RssDocument.Factory.parse(jiraFeedUrl);
8  RssDocument.Rss rss = rssDoc.getRss();
9  RssDocument.Rss.Channel channel = rss.getChannel();
10
11  // We will use this object to get most of our data
12  RssDocument.Rss.Channel.Item[] items = channel.getItemArray();
13
14  //We will store all of the valid results in a vector
15  Vector results = new Vector();
16
17  for (int i = 0; i < items.length; i++) {
18   RssDocument.Rss.Channel.Item item = items[i];
19
20   //Add item to results vector when reporter == username
21   if(item.getReporter().getUsername().compareTo(reporter) == 0)
22     results.add(item);
23   }
24  }
25
26  return results;
27 }

  可以看出Q这是非常整z的Java代码。但是,当项数变大时Q用此代码也会(x)影响性能。在最新的XMLBeans版本中,新增?jin)两个新?gu)来帮助解决q些问题。第一个特性是对JDK 5.0泛型的支持,W二个特性是对XPath和Xquery的支持。我们来看看如何泛型用于XMLBeans?/p>

泛型用于XMLBeans

  很明显,JDK 5.0泛型可帮助创建参数化的类和方法。Collections API是XMLBeans中首批用泛型的API之一。在XML Schema中,当元素包含的maxOccurs属性的值大?Ӟ默认情况下XMLBeans针对这些类型创Z个Java数组。ؓ(f)?jin)启用泛型,需要将一个附加参数添加到scompQƈ需要用一个兼容JDK 5.0的虚拟机?/p>

  默认情况下,用于从channel获取item元素的API包含如下Ҏ(gu)Q?/p>
 
RssDocument.Rss.Channel.Item getItemArray(int i)
获取item元素
RssDocument.Rss.Channel.Item[] getItemArray()
获取所有item元素的数l?/td>
void setItemArray(int i,RssDocument.Rss.Channel.Item item)
讄item元素
void setItemArray(RssDocument.Rss.Channel.Item[] itemArray)
讄所有item元素的数l?/td>

  但是Q执行了(jin)启用泛型的编译步骤后QAPI?x)有所变化Q?/p>

  /home/user>scomp
Compiles a schema into XML Bean classes and metadata.
Usage: scomp [opts] [dirs]* [schema.xsd]* [service.wsdl]*
[config.xsdconfig]*
Options include:
...
-javasource [version] - generate java source compatible for a
Java version (1.4 or 1.5)
...
#This is all it takes to enable Generics in your use of XMLBeans
/home/user>scomp -javasource 1.5 schema0.xsd

  使用上面的示例,可用的新Ҏ(gu)如下所C:(x)

java.util.List<RssDocument.Rss.Channel.Item> getItemList
获取item元素的列?/td>

  现在我们来看看泛型的使用如何能够化用于实现获取单个用h告的所有项的方法的代码Q?/p>

 1 public List getItemsFromReporter(String reporter) {
2
3  // We already loaded the data as above
4  // ...
5  RssDocument.Rss.Channel channel = rss.getChannel();
6
7  // We will use this object to get most of our data
8  List<RssDocument.Rss.Channel.Item> items =
channel.getItemList();
9
10  for (int i = 0; i < items.size(); i++) {
11    RssDocument.Rss.Channel.Item item =  items.get(i);
12
13    //Remove results from list
14    if (item.getReporter().getUsername().compareTo(reporter)
!= 0)
15        items.remove(i);
16    }
17  }
18
19  return items;
20 }

  q种Ҏ(gu)非常不错Q但q有一U更加简单的获取每个用户的项信息的方法——当(zhn)了(jin)解XPath?或XQuery之后?/p>

XQuery和XPath

  XMLBeans与XQuery和XPath的集成在2.0版本中有?jin)变化。版?中用了(jin)JaxenQ一UXPath实现Q,但与XMLBeans的集成不支持命名I间和前~。最新版本构ZSaxon 8.1.1版本所提供的XQuery实现的基之上。由于XQuery在Xpath之上构徏Q所以Saxonqؓ(f)XMLBeans提供?jin)XPath实现。ؓ(f)?jin)用XQuery和XPath的特性,XmlObjectc(所有XMLBeanscd都派生自它)(j)提供?jin)两个执行实例的查询和语句的?gu)。XmlObject API的execQuery()和selectPath()Ҏ(gu)q回一个匹配组件的数组。这些方法在XmlCursor对象上也存在Q但q回对象是用匹配值列表填充的另一个XmlCursor对象Q?/p>

 1 String xq = "for $e in //employee
where $e/name='Bob' return $e ";
2
3 // Input is a valid xml instance
4 XmlObject o = XmlObject.Factory.parse(input);
5
6 XmlObject[] xObjres = o.execQuery(xq);
7 XmlCursor xCurres = o.newCursor.selectPath(xq);

  从上面的代码片断中可以看出API相当易用Q而且(zhn)可以采取最方便的方式处理生成的数据。我们在W?行中构徏?jin)自q查询语句Qƈ在第6和第7行中使用不同的APIq行该查询。XQuery是一个强大的工具Q从下面的代码中可以看出获取Ҏ(gu)据变得多么简单:(x)

   1 public XmlObject[] getItemsFromReporter(String reporter) {
2
3  //Load Jira RSS feed data
4  URL jiraFeedUrl; = new URL("");
5
6  //This is the only object we need
7  RssDocument rssDoc = RssDocument.Factory.parse(jiraFeedUrl);
8
9  //Build the statement for the xpath engine
10  String xpathStatement =
"http://item[reporter/@username='"+reporter+"']";
11
12  //Execute the statement on the instance
13  //We could cast this to an Item[] if we wanted
14  XmlObject[] queryResult = rssDoc.selectPath(xpathStatement);
15
16  return queryResult;
17 }

  XQuery与XMLBeans同时使用其如虎添|使对XML的处理变得简单得多。如果要获取更多有关XQuery的信息,有无数的资源可供参考。我们徏议从Apache XMLBeans Web站点上的XMLBeansCZ开始?/p>

  到此Ӟ׃XMLBeans提供的最新特性,XMLBeans的质量指标跟t问题解x案实现v来已l非常容易了(jin)。我们用inst2xsd实用工具为实例创建模式,而不用从头编写,从而节省了(jin)旉。我们可以看到泛型的启用如何通过使业务逻辑变得Ҏ(gu)~写而提高了(jin)生力。最后,我们看到新增的XQuery集成如何提供操纵和查询XML的丰富特性?/p>

  q些仅仅是最新版本的XMLBeans中的基本新特性。一些其他特性得XMLBeans成ؓ(f)可满_理XML时的所有开发需要的理想工具。而下一个特性提供有关用XML和XML Schema时可能接收到的错误的更详l信息,从而帮助开发h员提高生产力?/p>

错误代码

  错误代码?.0版本中提供的另一个伟大特性。h们已创徏?jin)许多种?gu)Q以便将q个新特性与scomp之类的工具集成,q允许编E式地访问以便(比如_(d)(j)在IDE中用。XML Schema规范的附录C定义?jin)一个错误代码集Q它定义?jin)非法模式条ƾ。在分析、验证和~译q程中,可用错误监听程序编E式地访问错误代码。以前,错误消息的详l信息和模式一致性是小好。此外,q添加了(jin)有关错误所在位|以?qing)模式规范中的相兛_容的详细信息。错误代码本w以“cvc-complex-type.2.2”的Ş式定义,可参见http://www.w3c.org/TR/xmlschema-1/#cvc-complex-type条款2.2中的解释。下面我们来看看它的工作方式。我们从一个XML Schema开始,q对它验证一个实例。然后我们将查看旧的错误Qƈ与接收到的最新版本进行比较?/p>

   1 <!-- errorcode.xsd -->
2 <xs:schema
3   xmlns:xs="http://www.w3.org/2001/XMLSchema"
4   targetNamespace="http://xmlbeans.rocks.com/"
5   xmlns:tns="http://xmlbeans.rocks.com/" >
6   <xs:element name="address" type="tns:address"/>
7   <xs:complexType name="address">
8     <xs:sequence>
9       <xs:element name="number" type="xs:unsignedInt"/>
10       <xs:element name="street" type="xs:string"/>
11       <xs:choice>
12         <xs:sequence>
13           <xs:element name="city" type="xs:string"/>
14           <xs:element name="state" type="xs:string"/>
15         </xs:sequence>
16         <xs:element name="zipcode" type="xs:int"/>
17       </xs:choice>
18       <xs:element name="country" type="xs:string"/>
19     </xs:sequence>
20   </xs:complexType>
21 </xs:schema>

  q个模式相当单。注意xs:choice模型l的用法Q因Z面的CZ正是在对其进行定义时出错的。我们将要介l一些错误代码,(zhn)很快就可以发现问题所在:(x)

   1 <!-- errorcode.xml -->
2 <t:address
3   xmlns:t="http://xmlbeans.rocks.com/" >
4   <number>72</number>
5   <street>156th NE</street>
6   <country>USA</country>
7 </t:address>

  除了(jin)可从命o(h)行用的scomp实用工具Q还存在一个可针对模式验证实例的实用工兗?/p>

  /home/user>validate
Validates the specified instance against the specified schema.
Contrast with the svalidate tool, which validates using a stream.
Usage: validate [-dl] [-nopvr] [-noupa] [-license]
schema.xsd instance.xml
Options:
-dl - permit network downloads for imports and
includes (default is off)
-noupa - do not enforce the unique particle attribution rule
-nopvr - do not enforce the particle valid (restriction) rule
-partial - allow partial schema type system
-license - print license information

  如果使用XMLBeans?.0版本q行validate实用工具Q结果将如下所C:(x)

  /home/user>validate errorcode.xsd errorcode.xml
errorcode.xml:0: error: Expected elements
city zipcode at the end of the content in element
address@http://xmlbeans.rocks.com/

  上面的错误文本提C(jin)实例的名Uͼq告诉我们地址的末一些应有的元素。在q个示例中Q这是有点用处的Q但没有行号很难扑ֈL(fng)。现在我们将q个代码文本与新版本中的新增错误代码Ҏ(gu)进行比较:(x)

   /home/user>validate errorcode.xsd errorcode.xml
errorcode.xml:4: error: cvc-complex-type.2.4a: Expected elements
'city state' instead of 'country' here in element
address@http://xmlbeans.beaworld.com/
errorcode.xml:4: error: cvc-complex-type.2.4c: Expected elements
'zipcode' before the end of the content in element
address@http://xmlbeans.beaworld.com/

  与XMLBeans?.0版本中的错误文本相比Q新的错误文本有很大的改q。两个错误文本都提到?jin)实例,但新错误代码q提供了(jin)行号、问题严重程度、附录C模式参考以?qing)更清楚的错误消息。而且Q用新的错误代码,我们发现错误代码cvc-complex-type.2.4a和cvc-complex-type.2.4cq提?qing)更多造成故障的问题。同Pq些错误代码也分别对应于模式规范中一个可使用URL讉K的位|?/p>

  刚刚我们介绍?jin)如何通过命o(h)行获取详l的错误文本Q现在介l如何以~程方式获取错误信息Q?/p>

   1 // Create the error listener and XmlOptions
2 LinkedList list = new LinkedList();
3 XmlOptions opts = new XmlOptions().setErrorListener(list);
4
5 // Load the instance
6 File instance = new File("<SOME_PATH>\errorcodes.xml");
7 AddressDocument ad = AddressDocument.Factory.parse(instance);
8
9 // If there are errors, making a method call like this will
10 // populate the error listener
11 ad.validate(opts);
12
13 // Since we know there are errors, let's
14 // look at how to get at the data
15 for(int i=0; i < errors.size(); i++) {
16
17   // Cast list object to an XmlError
// type XmlError e = (XmlError)
18   errors.get(i);
19
20   // Now, let's get at all the information about the error
21   // This will be the location of the error in the instance
22   System.out.println("["+e.getLine()+","+e.getColumn()+"]-" +
e.getSeverity())
23   // Information about the error
24   System.out.println(e.getErrorCode() + ": " +e.getMessage());
25 }

  L(fng)此代码片断,以编E方式访问错误信息ƈ不比从命令行获取cM信息困难多少?/p>

性能提升

  用户可能不会(x)注意C前的Ҏ(gu),但一定会(x)注意到它对开发工作的影响。如果新版本无法带来性能提升Q那它还有什么好处呢Q?/p>

  与在XMLBeans 1.0中一P性能对于2.0版本极ؓ(f)重要。在大多数情况下Q与1.0相比Q?.0版本性能有了(jin)10%?0%的提升。导致性能提升的原因有许多Q其中最重要的是完全不同的存储架构。在1.0版本中,使用?jin)一个名为splay tree的数据结构所有存储在XML Store中的内容与媄(jing)响XML数据的操作同步。对于不熟?zhn)它的用户Qsplay tree可以理解为支持O(log N)ơFind、Insert和Delete操作的^衡树(wi)。这U数据结构与其他此类?wi)的差别在于它不l持昑ּ的^衡条件。其详细E度出?jin)用户在大多数情况下的需要?.0版本使用?jin)一个较为简单的架构Q提供较?yu)的复制和较(yu)的对象?/p>

  在对XML数据执行M操作ӞXMLBeans都会(x)加蝲一个XML Store。XMLBeansL加蝲一个XML StoreQ然后在Store上提供一个绑定视图。与直接解组到Java对象的其他Java/XMLl定框架相比Q此l定视图与完整的XML Infoset真实性通常D额外的开销。这使得XMLBeans的性能一直是一个障,从而消׃(jin)额外的特性与信息所带来的好处。对于运行时性能Qh们主要关注的是XML Store斚wQƈ可能地使Store的性能得到提高?/p>

  在对XML Storeq行改写Ӟ新增?jin)一个特性,该特性得用XMLBeansq行~程可以有更好的性能Qƈ且更易于使用。此Ҏ(gu)即DOM Level II支持。DOM是Document Object ModelQ文对象模型)(j)的简写,它提供了(jin)一个用于处理XML数据的接口。Level II则指定哪些接口是可用的。它与SAX的区别在于XML信息保存在内存中?/p>

固有的DOM II支持

  ?.0版本中,对DOM的访问由Xerces处理Q因此此c调用返回一个Xerces DOM Node。在2.0中,cM调用q回XMLBeans DOM表示Q因为DOM II现在是天然实现的。这意味着在XMLBeans内无需协调两种不同的数据存储即可访问DOM表示和XMLBeans表示?/p>

  q还意味着可以通过以下三种方式中的M一U来处理XML。第一U方式是使用XmlObject API中JavaBean风格的方法。第二种方式是通过XMLCursor API使用Z令牌的模型。而第三种方式是用对熟?zhn)DOM API的h来说非常熟?zhn)的?wi)模型。它有一个特别的好处Q就是用户可以在q些Ҏ(gu)之间来回切换Q而不必担?j)实例的同步问题。从开发h员的角度来看Q这意味着他们可以使用最手的方式来处理XML。现在我们来?jin)解一些可以在其中q行切换以便获得XML的底层视囄APIQ?/p>

  //To get the live DOM Node:
Node  XmlObject.getDomNode()
Node  XmlCursor.getDomNode()
//To get back:
XmlObject XmlBeans.nodeToObject(Node n)
XmlCursor XmlBeans.nodeToCursor(Node n)
//XMLBeans 1.0 API returns a copy:
Node XmlObject.newDomNode()

  从上面的代码中可以看出,在这些视图之间进行切换相当容易?/p>

l束?/h3>

  本文介绍?jin)XMLBeans 2.0中可用的一些新Ҏ(gu)。我们了(jin)解到XMLBeans提供?jin)一个健壮且完全保真的Java到XML的绑定框架。我们还介绍?jin)如何用XMLBeans 2.0的一些新Ҏ(gu)更方便快捷地完成项目。这些新Ҏ(gu)可以提高开发h员的生力。性能提升也有助于提高生力,但更重要的是Q这意味着花在对应用程序进行调试和分析瓉上的旉会(x)减少?/p>

  我们介绍的特性只是XMLBeans的最新版本所提供的一部分增强。请?jin)解一下XMLBeansQ看它是如何帮助改进开发h员的开发工作的?/p>

参考资?/h3>

草儿 2007-08-21 11:06 发表评论
]]>JLINQ: IBM's new paradigm for writing Java database applicationshttp://www.aygfsteel.com/mlh123caoer/archive/2007/08/19/137999.html草儿草儿Sun, 19 Aug 2007 14:57:00 GMThttp://www.aygfsteel.com/mlh123caoer/archive/2007/08/19/137999.htmlhttp://www.aygfsteel.com/mlh123caoer/comments/137999.htmlhttp://www.aygfsteel.com/mlh123caoer/archive/2007/08/19/137999.html#Feedback0http://www.aygfsteel.com/mlh123caoer/comments/commentRss/137999.htmlhttp://www.aygfsteel.com/mlh123caoer/services/trackbacks/137999.html阅读全文

草儿 2007-08-19 22:57 发表评论
]]>
COGNOS业务产品http://www.aygfsteel.com/mlh123caoer/archive/2007/01/03/91613.html草儿草儿Wed, 03 Jan 2007 11:41:00 GMThttp://www.aygfsteel.com/mlh123caoer/archive/2007/01/03/91613.htmlhttp://www.aygfsteel.com/mlh123caoer/comments/91613.htmlhttp://www.aygfsteel.com/mlh123caoer/archive/2007/01/03/91613.html#Feedback0http://www.aygfsteel.com/mlh123caoer/comments/commentRss/91613.htmlhttp://www.aygfsteel.com/mlh123caoer/services/trackbacks/91613.html阅读全文

草儿 2007-01-03 19:41 发表评论
]]>
MDA?/title><link>http://www.aygfsteel.com/mlh123caoer/archive/2006/01/03/26464.html</link><dc:creator>草儿</dc:creator><author>草儿</author><pubDate>Tue, 03 Jan 2006 11:38:00 GMT</pubDate><guid>http://www.aygfsteel.com/mlh123caoer/archive/2006/01/03/26464.html</guid><wfw:comment>http://www.aygfsteel.com/mlh123caoer/comments/26464.html</wfw:comment><comments>http://www.aygfsteel.com/mlh123caoer/archive/2006/01/03/26464.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.aygfsteel.com/mlh123caoer/comments/commentRss/26464.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/mlh123caoer/services/trackbacks/26464.html</trackback:ping><description><![CDATA[MDAQ模型驱动架构)(j)是OMG提出的新的Y件开发方法学。本文通过_的文字、独到的案例介绍MDA的概c(din)应用和相关技术?img src ="http://www.aygfsteel.com/mlh123caoer/aggbug/26464.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/mlh123caoer/" target="_blank">草儿</a> 2006-01-03 19:38 <a href="http://www.aygfsteel.com/mlh123caoer/archive/2006/01/03/26464.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> վ֩ģ壺 <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ӥ̶</a>| <a href="http://" target="_blank">䶨</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">Ҵ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">üɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ͩ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">»</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank">¤</a>| <a href="http://" target="_blank">ԭ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">鶴</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">¤</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">³</a>| <a href="http://" target="_blank">Դ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">罭</a>| <a href="http://" target="_blank">Ǩ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">ɽ</a>| <a href="http://" target="_blank"></a>| <a href="http://" target="_blank">޳</a>| <a href="http://" target="_blank">ˮ</a>| <a href="http://" target="_blank">̩</a>| <a href="http://" target="_blank">ų</a>| <a href="http://" target="_blank"></a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>