우리는 XML 메시지 처리 시스템을 설계하고 있습니다.대형 XML 처리를위한 Java OO 설계
처리 Java 클래스는 largish XML에서 다양한 속성과 값을 분리하여 다양한 조작을 위해 매개 변수로 개별 처리기 클래스에 전달해야합니다. 그러나이 때마다
주위에 XML을 전달하는 비효율적 일 수도 느낌 - 각 처리기에 전체 XML을 통과하고 관련 비트를 추출 할 수A)
:
는 우리는 다음과 같은 옵션의 생각
B)
관련 처리기에 각각 DTO를 DTO XML로 변환 이하 DTO들 집합 및 전달
C)
하므로, 어떠한 제안하는 방식으로 가고, 조각으로 XML을 잘라 우리는 이들 각각에 만족하지 않은 각 처리기 메서드
이러한 통과?
이 하나
<IdAction>supplied</IdAction>
<RegId>true</RegId>
<DeRegId>false</DeRegId>
않는 4 핸들러에 의해 처리 된 4 개 개의 블록을 포함
<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>
예 XML 다른 수행
<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>
등등
당신이 SAX를 본 적이 org.springframework.oxm.jaxb.Jaxb2Marshaller 에 대한 빈을 설정하는 것은 매우 쉽습니다? – kan
@Jeremy : 하나의 DTO 객체로 만들기 위해 XML 전체에서 여러 개의 스 니펫이 필요합니다. – romesub
문서의 구조에 대한 자세한 내용을 제공해 주시겠습니까? 예를 들어, 적절한 핸들러를 결정하기 위해 구문 분석되어야하는 공통 메시지 헤더가 있고 한 노드 아래의 본문 또는 많은 형제 노드가 있습니까? –