2009-08-24 17 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スキーマとの)第二のフォームを使用することができます - あなたはその方法

を使用して、すべての有効な名前を知っている必要がありますので、
0

要素のキーと値のペアのコレクションを使用する場合は、最初の選択肢があります。

この場合、要素はコレクション内のアイテムの種類の名前です。属性はキーです...値は値です。例えば

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

あなたの第二の方法は、あなたが望むものではない...非関連要素の非グループ化されたセットになります。

0

いいね。値が単純な場合は、短縮形< ExtendedProperty name = "name" value = "value" />のサポートも含めることができます。これはSpringの設定で行われます。例えば、

関連する問題