WSO2 DSS嵌套查询具有不同的名称

时间:2015-11-03 19:55:19

标签: wso2 wso2carbon wso2dss dss

我有这个结果映射

wb

,结果是

<result element="lot" rowName="lotInfo">
        <element column="key_lot" name="lotId" exportType="SCALAR" xsdType="xs:long"/>
        <element column="lot_number" name="lotNumber" exportType="SCALAR" xsdType="xs:string"/>
        <call-query href="getTradeNameSQL">
            <with-param name="TN_CODE" query-param="trade_name"/>
        </call-query>
        <element column="expiry_date" name="expiryDate" exportType="SCALAR" xsdType="xs:date"/>
        <element column="Qte_administre" name="quantiteAdministre" exportType="SCALAR" xsdType="xs:float"/>
        <call-query href="getVocabulaireSQL">
            <with-param name="TYPE" query-param="unite_mesure_type"/>
            <with-param name="VOCABULARY_DOMAIN" query-param="unite_mesure_vocab_domain"/>
            <with-param name="CONCEPT_ID" query-param="unite_mesure"/>
        </call-query>
        <call-query href="getVocabulaireSQL">
            <with-param name="TYPE" query-param="ROUTE_ADMIN_type"/>
            <with-param name="VOCABULARY_DOMAIN" query-param="ROUTE_ADMIN_vocab_domain"/>
            <with-param name="CONCEPT_ID" query-param="ROUTE_ADMIN"/>
        </call-query>
        <element column="status_lot" name="status" exportType="SCALAR" xsdType="xs:string"/>
    </result>

这是正确的。

我的问题是: 正如您所看到的,xml中有两个<lot xmlns="http://ws.wso2.org/dataservice"> <lotInfo> <lotId>616</lotId> <lotNumber>C4368AC</lotNumber> <tradeName> <tradeNameInfo> <code>ADACEL</code> <description>ADACEL</description> <agents> <agentInfos> <id>1002805</id> <code>SCT_AG0016</code> <description>dcaT</description> </agentInfos> </agents> </tradeNameInfo> </tradeName> <expiryDate>2015-05-31T00:00:00.000-04:00</expiryDate> <quantiteAdministre>0.5</quantiteAdministre> <domains> <domainValue> <id>493416</id> <code>INV.UnitOfMeasure2</code> <description>ml (millilitre)</description> <type>DosageUnit</type> </domainValue> </domains> <domains> <domainValue> <id>433437</id> <code>IM</code> <description>Intramusculaire</description> <type>AdministrationRoute</type> </domainValue> </domains> <status>Expired</status> </lotInfo> ,因为它们来自同一个查询。但是,有没有办法给每个人一个不同的名字?

我正在使用DSS 4.2.0

谢谢。

1 个答案:

答案 0 :(得分:0)

我认为解决问题的最简单方法是替换复杂元素的每个查询,并在其中调用您的查询。通过这种方式,您可以定义子查询的元素名称。 结果可能并不完全符合您的预期,但非常接近。这是因为添加复杂元素会在xml中添加一个新标记,如:

<element>

在数据服务XML中,您只需在查询中添加<element name="unit" namespace="N/A"> <call-query href="getVocabulaireSQL"> <with-param name="TYPE" query-param="unite_mesure_type"/> <with-param name="VOCABULARY_DOMAIN" query-param="unite_mesure_vocab_domain"/> <with-param name="CONCEPT_ID" query-param="unite_mesure"/> </call-query> </element> <element name="route" namespace="N/A"> <call-query href="getVocabulaireSQL"> <with-param name="TYPE" query-param="ROUTE_ADMIN_type"/> <with-param name="VOCABULARY_DOMAIN" query-param="ROUTE_ADMIN_vocab_domain"/> <with-param name="CONCEPT_ID" query-param="ROUTE_ADMIN"/> </call-query> </element> 标记:

afterPropertiesSet