프레임웍 지원 없이, XML을 사용하다보니, 내용이 중복되는 경우가 많다.
특히, 데이터가 아닌, 설정목적의 파일들은 설정이 복잡해질수록 중복이 많아지는데, 당연히 방법이 있을거라 생각했는데, 딱히 없다. W3C의 XInclude (https://www.w3.org/TR/xinclude/) 가 있는데, 아무리 해봐도 적용이 안된다. 특히, DOM4j 에선 먹히지 않고, Jaxb 에선 별도 옵션을 줘야 한다. 근데 이게 워낙 코어 내부 라이브러리라 안쪽까진 고치기 어려워, 적용하기가 쉽지 않다.
내가 선택한 방법은 XML Entity 선언으로 해결하는 방법.
<!DOCTYPE wf001Data [ <!ENTITY fldset-01 SYSTEM "../wf001/wf001-ui-fldset-01.xml"> ]> <!-- 사용할 위치에 아래처럼 쓴다 --> &fldset-01;
뭐 snippet include 하는 용도이긴 한데, 이렇게 분리해놓으니 좋은데 경우에 따라, 파라메터도 받았으면 좋겠고, 파일경로도 classpath 나 별도 변수로 대체했으면 하는 욕심이 생기는데.. 일단 여기까지만 하기로 했음.