2015-07-06 4 views
2

Пространство имен не префикс для моего XML. Я получаю XML ниже, когда я маршал. Мне нужно, чтобы это было ns2:ircSelfCheckDownload.Префикс пространства имен JAXB отсутствует для корневого элемента

<ircSelfCheckDownload xsi:schemaLocation="http://www.example.com/external/schemas/irc/v2 irc.xsd" 
xmlns:ns2="http://www.example.com/external/schemas/irc/v2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> 
    <lastUpdatedTimestamp>2015-07-06T12:15:26.657-04:00</lastUpdatedTimestamp> 
</ircSelfCheckDownload> 

Не могли бы вы сообщить мне, что мне недостает?

Мой код:

Marshaller marshaller = jc.createMarshaller(); 

    marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); 

    marshaller.setProperty(Marshaller.JAXB_SCHEMA_LOCATION, "http://www.pjm.com/external/schemas/irc/v2 irc.xsd"); 

    marshaller.marshal(obj, writer); 

ответ

0

Это работает для меня .Create файл package-info.java и внутри, которые ставят эту аннотацию

@javax.xml.bind.annotation.XmlSchema(
     namespace="http://www.example.com/external/schemas/irc/v2", 
     elementFormDefault=XmlNsForm.QUALIFIED, 
     xmlns = { 
      @XmlNs(
       prefix = "ns2", 
       namespaceURI="http://www.example.com/external/schemas/irc/v2") 
     } 
    ) 
//put you package name 
package example; 

import javax.xml.bind.annotation.*; 
+0

Я получил эту работу для меня с пакетом-инфо .java файл, очень похожий на один выше. При использовании предоставленного файла каждый элемент, кроме корневого элемента, имеет префикс пространства имен. Чтобы также префикс корневого элемента мне нужно было отбросить параметр пространства имен из аннотации @XmlSchema. –

Смежные вопросы