Java Web 服务,第 2 部分: 深度探索 Axis2:AXIOM
2009-11-05 00:00:00 来源:WEB开发网 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁惧墽鎳撻—鍐偓锝庝簻椤掋垺銇勯幇顖毿撻柟渚垮妼椤粓宕卞Δ鈧獮濠勭磽閸屾艾鈧懓顫濋妸鈺佺疅缂佸顑欓崥瀣煕椤愵偅绶氱紓鍐╂礋濮婂宕掑▎鎴М濠电姭鍋撻梺顒€绉甸幆鐐哄箹濞n剙濡肩紒鎰殜閺屸€愁吋鎼粹€茬敖婵炴垶鎸哥粔鐢稿Φ閸曨垰鍐€妞ゆ劦婢€濞岊亪姊虹紒妯诲蔼闁稿海鏁诲濠氭晲婢跺﹤宓嗛梺缁樺姈缁佹挳宕戦幘璇叉嵍妞ゆ挻绋戞禍鐐叏濡厧浜鹃悗姘炬嫹

最后,清单 5 给出了用于将该文档表示转换为输出流的代码。作为 OMNode 接口的一部分,AXIOM 定义了许多输出方法,包括针对各种不同的目标(如输出流、普通字符写入程序、或 StAX 流写入程序),带和不带格式信息,带和不带在写入之后访问文档表示的功能(如果尚未构建,这需要构建完整的表示)。通过从元素中获得 StAX 解析器,OMElement 接口定义了另一种访问文档信息的方法。这种使用解析器从文档表示中提取 XML 的能力提供了很好的对称性,当按需构建 AXIOM 表示时,这种方式非常合适(因为可以直接返回用于构建该表示的解析器)。
清单 5. 从 AXIOM 写入文档 /**
* Output a document as XML text.
*
* @param doc document representation to be output
* @param out XML document output stream
*/
protected void output(Object doc, OutputStream out) {
try {
((OMDocument)doc).serializeAndConsume(out);
} catch (Exception ex) {
ex.printStackTrace(System.err);
System.exit(0);
}
}
AXIOM 为修改现有的文档部分提供了一些基本的方法(如 OMElement.setText() 可用于将元素的内容设置为一个文本值)。如果您正从头开始写入文档,那么需要直接创建组件的新实例。因为 AXIOM API 是基于接口的,所以它使用各种工厂来创建不同部分的具体实现。
有关 AXIOM API 的更详细信息,请参见参考资料部分提供的 AXIOM 教程和 JavaDoc 链接。
更多精彩
赞助商链接