Camel Data Format
来源:互联网 发布:中国和德国的关系 知乎 编辑:程序博客网 时间:2024/04/29 00:21
JAXB
Using the Java DSL
For example the following uses a named DataFormat of jaxb which is
configured with a number of Java package names to initialize the
JAXBContext.
DataFormat jaxb = new JaxbDataFormat("com.acme.model");
from("activemq:My.Queue").
unmarshal(jaxb).
to("mqseries:Another.Queue");
You can if you prefer use a named reference to a data format which can then
be defined in your Registry such as via your Spring XML file. e.g.
from("activemq:My.Queue").
unmarshal("myJaxbDataType").
to("mqseries:Another.Queue");
Using Spring XML
The following example shows how to use JAXB to unmarshal using Spring
configuring the jaxb data type
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="direct:start"/>
306 DATA FORMAT APPENDIX
<unmarshal>
<jaxb prettyPrint="true" contextPath="org.apache.camel.example"/>
</unmarshal>
<to uri="mock:result"/>
</route>
</camelContext>
This example shows how to configure the data type just once and reuse it on
multiple routes. For Camel versions below 1.5.0 you have to set the <jaxb>
element directly in <camelContext>.
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<dataFormats>
<jaxb id="myJaxb" prettyPrint="true" contextPath="org.apache.camel.example"/>
</dataFormats>
<route>
<from uri="direct:start"/>
<marshal ref="myJaxb"/>
<to uri="direct:marshalled"/>
</route>
<route>
<from uri="direct:marshalled"/>
<unmarshal ref="myJaxb"/>
<to uri="mock:result"/>
</route>
</camelContext>
Partial marshalling/unmarshalling
This feature is new to Camel 2.2.0.
JAXB 2 supports marshalling and unmarshalling XML tree fragments. By
default JAXB looks for @XmlRootElement annotation on given class to operate
on whole XML tree. This is useful but not always - sometimes generated code
does not have @XmlRootElement annotation, sometimes you need
unmarshall only part of tree.
In that case you can use partial unmarshalling. To enable this behaviours you
need set property partClass. Camel will pass this class to JAXB's
unmarshaler.
<camelContext id="camel" xmlns="http://camel.apache.org/schema/spring">
<route>
<from uri="direct:marshal"/>
<marshal>
<jaxb prettyPrint="false" contextPath="org.apache.camel.example"
partClass="org.apache.camel.example.PurchaseOrder"
Multiple context paths
It is possible to use this data format with more than one context
path. You can specify context path using : as separator, for
example com.mycompany:com.mycompany2. Note that this is
handled by JAXB implementation and might change if you use
different vendor than RI.
fragment="true"
partNamespace="{http://example.camel.org/apache}po" />
</marshal>
<to uri="mock:marshal"/>
</route>
<route>
<from uri="direct:unmarshal"/>
<unmarshal>
<jaxb prettyPrint="false" contextPath="org.apache.camel.example"
partClass="org.apache.camel.example.Partial" />
</unmarshal>
<to uri="mock:unmarshal"/>
</route>
</camelContext>
For marshalling you have to add partNamespace attribute with QName of
destination namespace. Example of Spring DSL you can find above.
XMLBEANS
XmlBeans is a Data Format which uses the XmlBeans library to unmarshal an
XML payload into Java objects or to marshal Java objects into an XML
payload.
XSTREAM
XStream is a Data Format which uses the XStream library to marshal and
unmarshal Java objects to and from XML
CSV
EDI DATAFORMAT
FLATPACK DATAFORMAT
JSON
TIDYMARKUP
TidyMarkup is a Data Format that uses the TagSoup to tidy up HTML. It can be
used to parse ugly HTML and return it as pretty wellformed HTML
ANNOTATIONS
XMLSECURITY DATA FORMAT
The XMLSecurity DataFormat facilitates encryption and decryption of XML
payloads at the Document, Element and Element Content levels (including
simultaneous multi-node encryption/decryption using XPATH)
CASTOR
Castor is a Data Format which uses the Castor XML library to unmarshal an
XML payload into Java objects or to marshal Java objects into an XML
payload
Protobuf - Protocol Buffers
- Camel Data Format
- camel中Data Format and encoding
- Data input format and Data output format
- Camel
- Camel
- Camel
- Data Layer Format
- EDI data format
- PB String ( data, { format } )
- SAP DEMO-Format Data
- time stamp data format
- Data Format: SquenceFiles
- Ajax(2)--data format
- AERONET Data File Format Help
- convert data to html format.
- jquery easyui datagrid data format
- printf - format and print data
- Drupal Rest post data format
- redis之ziplist
- Linux-2.6 内核软中断(softirq)执行分析
- 第三周C#上机实验(一)有规律的求和
- 事务的两阶段提交协议概述
- 冒气泡
- Camel Data Format
- java中的BigInteger类和BigDecimal类的应用
- GetLastError 返回值意义
- 第二章 Web客户端技术
- X86汇编语言学习手记
- VC:使用可变参数宏
- android 得到listview 当前一屏的child个数
- gawk not found
- C++利用CStdioFile从txt文件中读取数据