2011-03-02 6 views
0

현재 XML 계층 구조에 대해 2 레벨로 작성된 XML 문서를 작성 중입니다. 지금 당장은 그 파일과 함께 작동하는 대부분의 코드를 깨뜨릴 수있는 1 대 다수 분류를 추가하려고합니다.속성을 추가하거나 XML 계층 구조에 새 레벨을 만드시겠습니까?

해당 분류를 새 레벨로 추가 할 수도 있고 동일한 레벨의 속성으로 구현할 수도 있습니다 (거의 태그 지정과 유사).

현재 :

<category> 
    <subcategory></subcategory> 
<category> 

제안 :

<supercategory> 
    <category> 
     <subcategory></subcategory> 
    </category> 
</supercategory> 

또는 :

<category supercategory=""> 
    <subcategory></subcategory> 
</category> 

더 유지 보수 어느 방법은?

+1

편집 귀하의 게시물과 현재 및 제안 된 구조의 몇 가지 간단한 예를 보여줍니다. –

답변

0

저에게 XML의 강점 중 하나는 XML 요소의 계층 적 성격이 사용자의 경우와 같이 객체의 계층 적 배열을 설명하는 데 이상적이라는 것입니다. 따라서 XML 구조가 데이터 구조와 더 흡사하기 때문에 첫 번째 옵션을 선호하는 경향이 있습니다. 이렇게하면 IMHO를 읽고, 관리하고 이해하는 것이 훨씬 쉬워집니다.

그렇다면 기존 코드베이스에서 작동하도록하기위한 추가 노력이 필요한지 말할 수 있습니다. 필요한 수정 사항이 너무 어렵거나 시간이 많이 걸린다 고 생각되면 확실히 두 번째 방법을 사용하는 것을 멈추는 것이 아닙니다. 단지 우아한 해결책이라고 생각하지 않습니다.

0

새로운 수준을 만드는 것이 더 나은 해결책이라고 생각합니다. 현재 접근 방식 (중첩 된 요소)을 따르며, 첫 번째 예제는 원래 Category 요소 자체가 변경되지 않은 이점도 있습니다.

재귀 정의를 고려해 볼 수도 있습니다. 이것은 현재 고려해야 할 더 큰 리팩터링이 될 수 있지만 향후 영향을 피할 수 있습니다. 귀하의 카테고리는 2 레벨이었고 이제는 3입니다. 4로 옮겨서 SuperDuperCategory를 추가해야한다면 어떻게 될까요?

이 표기법은 대안이 될 수있다 :

<category> 
    <category> 
     <category></category> 
    </category> 
</category> 
관련 문제