2012-04-03 3 views
0

저는 XML 파일의 내용이 점점 커지고 파일이 너무 복잡해지기 때문에 xml을 모듈화 할 수있는 방법이 여러 개로 나뉘어 있습니다 파일? 어쨌든 jaxb에서 더 간단한 방법으로이 작업을 수행 할 수 있습니까?Jaxb는 xml을 결합합니다

+0

조금 더 명확하게 설명해 주시겠습니까? XML 파일을 분할하고 싶지만 JAXB 클래스는 아니지만 반드시 읽으겠습니다. 아래 포스터는 당신의 질문을 다른 방향으로 읽는 것 같습니다. 어쩌면 조금이라도 재 설명 할 수 있을까요? –

+0

@PatriceM. : 정확히, JAXB 클래스를 분할하지 않고 xml 파일을 분할하고 싶습니다. struts-config.xml을 모듈화하는 것과 같은 것 – Rnet

답변

1

XML 파일에서 ENTITY 메소드를 사용해도 좋습니다.

<!DOCTYPE config [ 
    <!ENTITY subpart1 SYSTEM 'config_subpart1.xml'> 
    <!ENTITY subpart2 SYSTEM 'config_subpart2.xml'> 
]> 
<config> 
    <!-- some top-level config items in the main file 
    <item1>value</item1> 
    ... 
    <!-- then the external parts --> 
    &subpart1; 
    ... 
    &subpart2; 
    ... 
</config> 

XML 문서는 기술적으로 동일하며 JAXB 코드는 아무런 차이없이 작동해야합니다.

0

STAX와 JAXB의 조합을 사용할 수 있습니다. STAX를 사용하여 읽을 요소에 도달 한 다음 JAXB를 사용하여 요소를 객체에 매핑합니다. 그렇게하면 객체에 필요한 요소 만 읽을 수 있습니다. 지능적으로 스키마를 디자인하고 관리해야합니다.

0

XmlAdapter을 구현하여 내 LargeObject을 특수한 LazyLargeObjectLoader에 맞 춥니 다. 따라서 주 XML 파일은 대형 객체의 XML 파일에 대한 참조 (문자열) 만 저장하고 지연 요청자는 요청할 때 자체 파일에서 실제 객체를로드합니다.

이 솔루션은 모든 것을 한 번에 저장하지 않으므로 내 경험에 잘 맞습니다.