2010-03-01 3 views
3

나는 국가와 도시가 포함 된 데이터베이스를 가지고 있습니다. 이 정보를 xml 문서로 내보내고 싶지만 구조화하는 방법을 궁금해합니다.xml 문서 구성에 대한 도움

내가 이렇게 그것을 수행해야합니다

<country> 
<name>Canada</name> 
<city> 
    <name>Toronto</name> 
    <population>1423200</population> 
</city> 
<city> 
    <name>Ottawa</name> 
    <population>1423200</population> 
</city> 
</country> 

또는 같은

:
<country> 
    <name>Canada</name> 
    <cities> 
    <city> 
     <name>Toronto</name> 
     <population>1423200</population> 
    </city> 
    <city> 
     <name>Ottawa</name> 
     <population>1423200</population> 
    </city> 
    </cities> 
</country> 

또는 같은

:

<entity> 
<country>Canada</country> 
<city>Ottawa</city> 
<city_population>1423200</city_population> 
</entity> 
<entity> 
<country>Canada</country> 
<city>Toronto</city> 
<city_population>1423200</city_population> 
</entity> 

그들 각각 장점과 단점은 무엇인가 ? 구조화의 다른 방법이 있습니까?

미래의 변경 사항 (데이터 추가)을 위해 가장 적합합니다.

처음으로 XML로 구조화하면 피드백/힌트가 멋질 것입니다.

답변

3

코드에서 사용자가 구조화하는 것과 같은 방식으로 XML 문서를 구성해야합니다. 도시 인구가 도시 자체의 재산이기 때문에 도시 노드의 자녀가되어야합니다. 나는 2 번째 구조로 갈 것이다.

더하기 당신의 물건에 대한 니모닉입니다. 예를 들어, 두 번째 솔루션에서 '엔티티'가 무엇을 유지하는지 명확하지 않습니다.

모든 엔터티에 country = canada를 명시해야하므로 데이터 반복이 적습니다. 나는 당신에게 첫 번째 해결책을 바꿀 것이다. 컬렉션에 Country 요소 삽입 :

<countries> 
<country> 
<name>Canada</name> 
<cities> 
<city> 
    <name>Toronto</name> 
    <population>1423200</population> 
</city> 
<city> 
    <name>Ottawa</name> 
    <population>1423200</population> 
</city> 
</cities> 
</country> 
</countries> 

나중에 데이터를 확장하는 데 도움이됩니다.

편집 : 일반적으로 개체를 반복 할 때 '컬렉션'요소에 래핑하는 것이 좋습니다. 컬렉션 자체에 속성을 추가하고 다른 이점을 추가 할 수 있으므로 좋은 방법입니다. 부모 요소를 반복하지 않고 동일한 요소에 속하는 요소를 선택하지 않아도됩니다.

+0

첫 번째 것을 의미할까요? – ajsie

+0

확실히 첫 번째가 더 좋습니다! – anthares

+0

변경에 감사드립니다. 하지만 각 파일마다 하나의 국가가 있으므로이 경우에는 필요하지 않습니다. – ajsie