如何使用WSO2 DSS正確存儲和訪問數據庫(IBM DB2)中的XML數據?如何使用WSO2 DSS從DB2存儲和檢索XML數據
我們有兩列下面類似的表:
- ID整數
- XMLDATA XML
的xmlData
列包含實際的XML文檔我想商店。
我已經成功地得到以下插入操作的工作:
<query id="insert_product" useConfig="DB2">
<sql>INSERT INTO product (XmlData) VALUES (:XmlData)</sql>
<param name="XmlData" sqlType="STRING"/>
</query>
插入工作正常,但實際的數據需要被包裹在一個討厭的CDATA節:
<xmlData>
<![CDATA[
<product>
<code>acp</code>
<name>A cool product</name>
</product>
]]>
</xmlData>
我正在查詢表使用以下查詢:
<query id="get_product" useConfig="DB2">
<sql>SELECT id, xmlData FROM product WHERE id = :id</sql>
<result element="product">
<element column="id" name="id" xsdType="integer"/>
<element column="xmlData" name="xmlData" xsdType="string"/>
</result>
<param name="id" sqlType="INTEGER"/>
</query>
該查詢工作正常,前該輸出爲XML列逃脫CEPT:
<product>
<id>1</id>
<xmlData>
<product>
<code>acp</code>
<name>A cool product</name>
</product>
</xmlData>
</product>
這是可以預料的,我猜,因爲該列的DSS數據類型爲string
。
數據以XML格式存儲在數據庫中(DB2驗證它是否具有良好的格式)。
問題:
如何告訴DSS將列數據作爲XML處理?在插入中不需要CDATA部分,輸出不能被轉義。
Dislaimer:
不用說,上面是一個簡化的例子。存儲在表中的實際XML是一個長而複雜的文檔,需要部分理解。
您是否想出了接受<值的解決方案? – zygimantus