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