Как настроить префиксы пространства имен на Джерси (JAX-WS)

StackOverflow https://stackoverflow.com/questions/3619879

  •  26-09-2019
  •  | 
  •  

Вопрос

При сериализации моих ресурсов на Джерси я хочу использовать пространства имен в некоторых случаях.

Есть ли способ настроить префиксы пространства имен на Джерси?

По умолчанию:

u003C?xml version="1.0" encoding="UTF-8" standalone="yes"?>u003Corder xmlns:ns2="http://www.w3.org/2005/Atom">u003Cprice> 123.u003C/price>u003Cns2:link rel="duh" href="/abc/123"/>u003Cns2:link rel="abc" href="/def/234"/>u003C/order>

Я хочу что-то вроде:

u003C?xml version="1.0" encoding="UTF-8" standalone="yes"?>u003Corder xmlns:atom="http://www.w3.org/2005/Atom">u003Cprice> 123.u003C/price>u003Catom:link rel="duh" href="/abc/123"/>u003Catom:link rel="abc" href="/def/234"/>u003C/order>

Спасибо, Лукас

Это было полезно?

Решение

Если вы используете Мокси Реализация JAXB Вы можете управлять своими префиксами с использованием аннотации уровня пакета @xmlschema:

@javax.xml.bind.annotation.XmlSchema(  
    xmlns = {  
          @javax.xml.bind.annotation.XmlNs(prefix = "atom", namespaceURI = "http://www.w3.org/2005/Atom")  
            })  
    package org.example.domain;  

Чтобы использовать MOXY JAXB, вам необходимо иметь файл с именем jaxb.properties в ваших классах модели со следующей записью:

javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory

Для примера использования MOXY с Джерси смотрите:

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top