簡體   English   中英

jaxb如何以某種順序編組值?

[英]jaxb how to marshall values in some order?

fe我想擁有一個XML,其中我的集合的值按字母順序存儲:

<tag1>a</tag1>
<tag1>b</tag1>
<tag1>c</tag1>

jaxb有可能嗎?

謝謝。

在事物的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>

問題應該是: 在XSD(XML Schmea)中是否可能? 答案是否定的 但是您可以使用List實現或數組等有序集合來確保XML實例按字母順序包含數據。

如何編組 ArrayList<object> [] 在 JAXB 中?<div id="text_translate"><p> 我有一個 ArrayList[] 類型的變量(列表),我想將它保存在 XML 中。 我嘗試了 JAXB,但它只保存了“”字符串(“的重復”等於 list.length)並且在 ArrayLists 中沒有任何項目。如果我嘗試二維數組,它工作正常。如果我嘗試 ArrayList,它也可以正常工作。我怎么解決這個問題?</p><p> 我的代碼類似於:</p><pre> @XmlRootElement public class SomeClass { @XmlElement(name="part") private final ArrayList&lt;Object&gt;[] list; ... constructor, which fills the list variable }</pre><p> 有人可以告訴我該怎么做嗎? 請。<br><br></p></div></object>

[英]How to marshall ArrayList<Object>[] in JAXB?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM