我们正在设计一个处理XML消息的系统。
处理Java类需要从大型XML中分离出各种属性和值,并将其作为参数传递给各个处理程序类以进行不同的操作。
我们考虑了以下选项:
A)
将整个XML传递给每个处理程序,并让其提取相关部分,但觉得这可能会导致每次传递XML时效率低下。
B)
将XML转换为DTO或一组较小的DTO,并将每个DTO传递给相关的处理程序。
C)
将XML切成片段并将其传递给每个处理程序方法。
我们对这些选项都不满意,所以有什么建议呢?
示例XML
这里有4个块,由4个处理程序处理,其中一个执行。
另一个做法
下一个是什么意思?
处理Java类需要从大型XML中分离出各种属性和值,并将其作为参数传递给各个处理程序类以进行不同的操作。
我们考虑了以下选项:
A)
将整个XML传递给每个处理程序,并让其提取相关部分,但觉得这可能会导致每次传递XML时效率低下。
B)
将XML转换为DTO或一组较小的DTO,并将每个DTO传递给相关的处理程序。
C)
将XML切成片段并将其传递给每个处理程序方法。
我们对这些选项都不满意,所以有什么建议呢?
示例XML
<IdAction>supplied</IdAction>
<RegId>true</RegId>
<DeRegId>false</DeRegId>
<SaveMessage>false</SaveMessage>
<ServiceName>abcRequest</ServiceName>
<timeToPerform>3600</timeToPerform>
<timeToReceipt/>
<SendToBES>true</SendToBES>
<BESQueueName>com.abc.gateway.JMSQueue.forAddRequest</BESQueueName>
<BESTransform/>
<BESJMSProperties>
<property>
<propName>stateCode</propName>
<propValue>OK</propValue>
</property>
<property>
<propName>stateResponse</propName>
<propValue>OK</propValue>
</property>
</BESJMSProperties>
这里有4个块,由4个处理程序处理,其中一个执行。
<IdAction>supplied</IdAction>
<RegId>true</RegId>
<DeRegId>false</DeRegId>
另一个做法
<timeToPerform>3600</timeToPerform>
<timeToReceipt/>
下一个是什么意思?
<SendToBES>true</SendToBES>
<BESQueueName>com.abc.gateway.JMSQueue.forAddRequest</BESQueueName>
<BESTransform/>
<BESJMSProperties>
<property>
<propName>stateCode</propName>
<propValue>OK</propValue>
</property>
<property>
<propName>stateResponse</propName>
<propValue>OK</propValue>
</property>
</BESJMSProperties>
以及其他类似的事情