자식 요소에 별도의 이름 공간이있는 아래 형식과 같은 jaxb를 사용하여 XML을 만들려고합니다.jaxb, 자식 요소에 대한 별도의 네임 스페이스
<soap:Envelope xmlns:soap="http://demo.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Header>
<element1 xmlns="http://childnamespacehere">
<att1>test</att1>
<att2>test</att2>
</element1>
</soap:Header>
<soap:Body>
<element2 xmlns="http://childnamespacehere">
<att1>test</att1>
<att2>test</att2>
</element2 >
</soap:Body>
</soap:Envelope>
내 수업
@XmlRootElement(name = "soap:Envelope", namespace = "http://schemas.xmlsoap.org/soap/envelope/")
public class Envelope
private Element1 element1;
private Element2 element2;
@XmlElementWrapper(name = "soap:Header")
@XmlElement(name = "Element1", namespace = "http://childelementnamespace/")
public void setElement1(Element1 element){ }
@XmlElementWrapper(name = "soap:Body")
@XmlElement(name = "Element2" , namespace = "http://childelementnamespace/")
public void setElement2(Element2 element){ }
하지만 난 XML 아래, 아이 스키마 루트 레벨에있는 경우처럼 생성 얻고있다.
<soap:Envelope xsi:schemaLocation="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns2="http://childelementnamespace/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Header>
<ns2:Element1>
<att1>value</att1>
<att2>value</att2>
</ns2:Element1>
</soap:Header>
<soap:Body>
<ns2:Element2>
<att1>value</att1>
<att2>value</att2>
</ns2:Element2>
</soap:Body>
</soap:Envelope>
나는 단지 루트 요소의 네임 스페이스를 얻을, 내가 XML을 생성 할 때 package-info.java
@XmlSchema(namespace = "http://schemas.xmlsoap.org/soap/envelope/",
xmlns = { @javax.xml.bind.annotation.XmlNs(prefix = "Element1", namespaceURI = "http://childelementnamespace"),
@javax.xml.bind.annotation.XmlNs(prefix = "Element2", namespaceURI = "http://childelementnamespace") },
elementFormDefault = XmlNsForm.QUALIFIED)
package com.model;
import javax.xml.bind.annotation.XmlNsForm;
import javax.xml.bind.annotation.XmlSchema;
에 정의 @xmlschema, 자식 요소에 대한 이름 공간이 생성되지 않아요 있습니다.
귀하의 질문은 무엇입니까? – hoaz
XML을 생성하는 동안 자식 네임 스페이스를 가져와야하지만 –
XML이 유효합니다. 왜 자식 요소에 NS가 있어야합니까? – hoaz