我正在開發一個使用Spring MVC的REST API。我使用和生成的對象是從NCPDP(http://www.ncpdp.org/)XSD生成的(使用JAXB)。我有一切工作時請求進來,但我想添加額外的屬性到傳出請求的根元素。如何在JAXB生成類時向根元素添加屬性?
現在,我的傳出響應如下所示:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<transport:Message xmlns:transport="http://www.ncpdp.org/schema/transport">
<transport:Header>
...
</transport:Header>
<transport:Body>
<transport:Status>
<transport:Code>010</transport:Code>
<transport:Description>OK</transport:Description>
</transport:Status>
</transport:Body>
</transport:Message>
它應該如下所示:
<?xml version="1.0"?>
<transport:Message xmlns:transport="http://www.ncpdp.org/schema/transport" xmlns:datatypes="http://www.ncpdp.org/schema/datatypes"
xmlns:script="http://www.ncpdp.org/schema/script" xmlns:structures="http://www.ncpdp.org/schema/structures"
xmlns:pa-structures="http://www.ncpdp.org/schema/pa-structures" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
StructuresVersion="v2014041" ECLVersion="v2014041" DatatypesVersion="v2014041" PA-StructuresVersion="v2014041"
TransactionVersion="v2014041" TransportVersion="v2014041" TransactionDomain="SCRIPT">
<transport:Header>
...
</transport:Header>
<transport:Body>
<transport:Status>
<transport:Code>010</transport:Code>
</transport:Status>
</transport:Body>
</transport:Message>
我不認爲我需要定義的所有命名空間(因爲他們」不用),但我確實需要StructuresVersion和所有其他屬性。有沒有辦法修改我的bindings.xjb以包含這些屬性?或者我必須將生成的代碼複製到我的源代碼樹中並添加註釋來執行此操作?
感謝,
馬特
您的模式是否聲明瞭這些屬性?請發佈聲明'transport:Message'的模式片段。 – lexicore 2014-10-17 18:31:47
是的,它的確如此。在發佈這個問題之前,我從來沒有打擾過。對不起,浪費你的時間。 – 2014-10-17 19:01:22
沒問題,發生這種情況。爲了避免誤導新用戶,我會將其作爲答案發布。 – lexicore 2014-10-17 19:04:11