2009-08-24 6 views
1

일부 사용자 지정 로깅을 위해 XML을 디자인하고 있습니다. 로거에는 개발자가 이름 - 값 쌍을 로그에 추가 할 수있는 부분이 있습니다. 나는 XML이 어떻게 보이는지 결정하려고 노력하고있다. 이름 값 쌍의 이름 부분이 속성이어야하는지 여부를 결정하려고합니다. (나도 그렇게 생각해). XML에 대한 일반적인 스타일 질문

<Name1>Value1</Name1> 
<Name2>Value2</Name2> 

내가 좋아하는 (기반 속성) 첫 번째 방법 개선 :

 

<ExtendedProperties> 
    <ExtendedProperty name="Name1">Value1</ExtendedProperty> 
    <ExtendedProperty name="Name2">Value2</ExtendedProperty> 
</ExtendedProperties 
 

다른 옵션은 (내가 아는) 값이 노드 이름의 이름을 확인하는 것입니다 : 여기에 지금까지 가지고 무엇을 XSD를 사용하여 문서를보다 쉽게 ​​설명 할 수 있기 때문에 xpath 또는 xquery를 사용하여 "ExtendedProperty"유형의 모든 요소에 액세스하는 방법을 알 수 있습니다. (사용 가능한 이름은 미리 정의되어 있지 않습니다. 아무 것도 될 수 있습니다.)

그러나 XML 스키마 개발에 많은 시간을 투자하지 않습니다. 그게 너처럼 보이니? 내가 고려해야 할 다른 것이 있습니까?

답변

2

사용 가능한 이름은 미리 정의되어 있지 않습니다. - 아무 것도 될 수 있습니다. 그 방법

를 사용하여 모든 유효한 이름을 알 필요가 있기 때문에 -

이 불가능 (XML 스키마로) 2 양식을 사용 할 수 있습니다

0

키 - 값 쌍 요소를 사용하는 경우 첫 번째 옵션은 이동 방법입니다.

이 경우 요소는 컬렉션의 항목 유형 이름이고 속성은 키입니다. 값은 값입니다. 예를 들어

:

<StringCollection> 
    <String name="stringOne">Something</String> 
    <String name="stringTwo">Something else</String> 
</StringCollection> 

두 번째 방법은 비 관련 요소의 비 그룹화 집합이 될 것입니다 ... 당신이 원하지 않는 것을.

0

좋아요. 또한 값이 단순한 경우 짧은 형식 < ExtendedProperty name = "name"value = "value"/>에 대한 지원을 포함 할 수도 있습니다. 이것이 Spring 설정에서 어떻게 이루어 졌는지 보여줍니다.