2012-02-01 5 views

答えて

3

Java側の順序付けされたコレクションを使用します。

ルート

tag1プロパティがSortedSetです。あなたがTreeSetを作成するときは、Comparatorに渡すことができます。

package forum9096805; 

import java.util.*; 
import javax.xml.bind.annotation.XmlRootElement; 

@XmlRootElement 
public class Root { 

    private SortedSet<String> tag1 = new TreeSet<String>(); 

    public SortedSet<String> getTag1() { 
     return tag1; 
    } 

    public void setTag1(SortedSet<String> tag1) { 
     this.tag1 = tag1; 
    } 

} 

デモ

package forum9096805; 

import javax.xml.bind.JAXBContext; 
import javax.xml.bind.Marshaller; 

public class Demo { 

    public static void main(String[] args) throws Exception { 
     JAXBContext jc = JAXBContext.newInstance(Root.class); 

     Root root = new Root(); 
     root.getTag1().add("b"); 
     root.getTag1().add("c"); 
     root.getTag1().add("a"); 

     Marshaller marshaller = jc.createMarshaller(); 
     marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); 
     marshaller.marshal(root, System.out); 
    } 

} 

出力

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<root> 
    <tag1>a</tag1> 
    <tag1>b</tag1> 
    <tag1>c</tag1> 
</root> 
+0

+1 - 私は例を追加してもらえますか? –

+1

@BlaiseDoughan確かに、進んでください:)私はあなたの仕事のためのアップボトムを得ることができます:)私は私の毎日の評判キャップを超えていない限り。 –

2

質問は次のようになります。それはXSDで可能です( XML Schmea)?答えはです。です。しかし、Listの実装や配列のような順序付けされたコレクションを使用することで、XMLインスタンスにアルファベット順のデータが含まれていることを確認できます。

+1

Tichodromaの答えが働いていると仮定すると、**可能な**スキーマのコレクションの種類を変更します。例[here](http://blog.bdoughan.com/2011/01/jaxb-and-choosing-list-implementation.html) – sergio91pt

+1

@ sergio91ptスキーマ内に(コンテンツに基づいて)順序付けられたコレクションの概念はありません。リンクは、IとTichodromaが提供する提案をどのように実装するのかを説明しています。 –

関連する問題