도메인 개체를 java.util.Date
까지 확장해야합니까? 아래는 ans가 더 잘 작동 할 것으로 기대되는 XML 스키마를 생성하는 도메인 클래스입니다.
도메인 모델
우리는 유형 java.util.Date
의 재산에 @XmlValue
주석을 활용합니다.
import java.util.Date;
import javax.xml.bind.annotation.*;
@XmlAccessorType(XmlAccessType.FIELD)
public class Foo {
@XmlValue
private Date value;
@XmlAttribute
private String bar;
}
스키마에서 XML 스키마
우리가 xsd:dateTime
를 확장하는 형태가 아래 참조.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema version="1.0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="foo">
<xs:simpleContent>
<xs:extension base="xs:dateTime">
<xs:attribute name="bar" type="xs:string"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>
스키마 생성 코드
다음 JAXB 코드는 JAXB 모델에서 XML 스키마를 생성 할 수 있습니다.
import java.io.IOException;
import javax.xml.bind.*;
import javax.xml.transform.Result;
import javax.xml.transform.stream.StreamResult;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(Foo.class);
jc.generateSchema(new SchemaOutputResolver() {
@Override
public Result createOutput(String namespace, String suggestedFileName)
throws IOException {
StreamResult result = new StreamResult(System.out);
result.setSystemId(suggestedFileName);
return result;
}
});
}
}
직접적인 문제는 아니지만 문제를 해결할 수있는 방법이긴하지만 답장을 보내 주셔서 감사합니다. 감사. –