2015-03-31 2 views
0

У меня есть проблема, whem Я создаю XML-файл Jaxb добавляет префикс в пространство имен корневого элемента, и я не знаю, как его пропустить.Jaxb XML marshaling добавить префикс к корневому элементу

У меня есть файл package-info.java

@XmlSchema(namespace = "urn:iso:std:iso:20022:tech:xsd:pain.001.001.03", xmlns = { 
     @XmlNs(namespaceURI = "urn:iso:std:iso:20022:tech:xsd:pain.001.001.03", prefix = "") 
}, elementFormDefault = XmlNsForm.QUALIFIED) 

У меня есть корневой элемент

@XmlType(name = "Document", 
     propOrder = { 
       "cstmrCdtTrfInitn" 
     }) 
@XmlRootElement(name = "Document") 
public class Document { 

     @XmlElement(name = "CstmrCdtTrfInitn", required = true) 
     protected CustomerCreditTransferInitiationV03 cstmrCdtTrfInitn; 
    } 

И как результат я получил

<?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
<ns2:Document xmlns:ns2="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03"> 
    <ns2:CstmrCdtTrfInitn> 
     <ns2:GrpHdr/> 
    </ns2:CstmrCdtTrfInitn> 
</ns2:Document> 

без @XmlNs он работает таким же образом, , добавление пространства имен в @XmlRoolElement также не поможет. Что может быть не так?

ответ

0

Не знаете, чего вы пытаетесь достичь, ваш xml соответствует вашему коду отлично.

Если вы не хотите имен на все:

<Document> 
<CstmrCdtTrfInitn> 
    <GrpHdr>ala</GrpHdr> 
</CstmrCdtTrfInitn> 
</Document 

просто изменить пакет информации к

@XmlSchema() 

Если вы хотите использовать пространство имен (так нет префикса), как

<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.001.001.03"> 
<CstmrCdtTrfInitn> 
    <GrpHdr>ala</GrpHdr> 
</CstmrCdtTrfInitn> 
</Document> 

затем

@XmlSchema(
    namespace = "urn:iso:std:iso:20022:tech:xsd:pain.001.001.03", 
    elementFormDefault = XmlNsForm.QUALIFIED) 

все выше испытания со стандартным Java7 JAXB

+0

точно, но проблема, которую я получил XML с ns2: префикс – ekitru

+0

является то, что ваш провайдер JAXB. Был ли он настоящим примером или является частью документа другого, например, мыльного сообщения. – Zielu