Dodawanie ładnych namespace prefixów w JAXB-ie

Posted on March 2, 2010. Filed under: Java, XML | Tags: , , , , , |


JAXB domyślnie tworzy mniej więcej takie prefixy dla przestrzeni nazw ns1, ns2 . . .

Generalnie nie jest to takie złe, ale czasem człowiek chce mieć czytelniejszego XMLa.

Żeby zasugerować sunowskiej implementacji JAXBa użycie innych prefixów, należy użyć klasy: com.sun.xml.internal.bind.marshaller.NamespacePrefixMapper, która zawiera jedną abstrakcyjną metodę:

public String getPreferredPrefix(String namespaceUri, 
        String suggestion, boolean requiredPredix)

Gdzie namespaceUri to URI przestrzeni nazw do której mamy zwrócić prefix. Pusty string oznacza domyślną przestrzeń nazw. Więcej na temat tej klasy w javadocach.

Instancje tej klasy należy podać Marshaller’owi jako wartość klucza o nazwie: com.sun.xml.internal.bind.namespacePrefixMapper

Uwaga:

  • Nie ma gwarancji że JAXB posłucha sugestii.
  • Ta metoda działa tylko dla referencyjnej implementacji JAXB’a
Read Full Post | Make a Comment ( None so far )

Liked it here?
Why not try sites on the blogroll...