어떻게하면 xml 파일을 간단한 Java bean으로 변환 할 수 있습니까? 액세스 할 수없는 java bean에서 생성 된 xsd가없는 간단한 xml 파일입니다.xml을 java bean으로 변환
먼저 xmlbeans를 사용하여 xml에서 xmd를 생성 한 다음 xsd에서 클래스를 생성 해 보았습니다. 수업이 많아. 나는 하나의 자바 빈 클래스를 찾고있다.
어떻게하면 xml 파일을 간단한 Java bean으로 변환 할 수 있습니까? 액세스 할 수없는 java bean에서 생성 된 xsd가없는 간단한 xml 파일입니다.xml을 java bean으로 변환
먼저 xmlbeans를 사용하여 xml에서 xmd를 생성 한 다음 xsd에서 클래스를 생성 해 보았습니다. 수업이 많아. 나는 하나의 자바 빈 클래스를 찾고있다.
시도 Castor Mapping.
Castor 또는 JAXB와 같은 도구를 사용하여 XML을 Java 클래스에 매핑 할 수 있습니다. Castor은 상당히 사용하기 쉽습니다.
JAXB
JAXB (JSR-222)는 XML 객체를 변환하는 쉬운 방법을 제공합니다. 포함이 표준의 많은 오픈 소스 구현이 있습니다
JAXB Java 객체에 대한 XML에 대한 기본 매핑이 있습니다. 이 매핑은 주석 적용을 통해 사용자 정의 할 수 있습니다.
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.Element;
@XmlRootElement
public class Address {
private String street;
private String city;
private String state;
private String country;
@XmlElement(name="postal-code")
private String postalCode;
}
는 다음과 같은 XML에 해당한다 :
<address>
<street>123 A Street</street>
<city>Any Town</city>
<state>A State</state>
<postal-code>12345</postal-code>
</address>
는 EclipseLink JAXB (목시)를
목시는 XPath를 기반으로 매핑 확장자를 갖습니다. 이것은 우리가 우리의 같은 주소 클래스를 가지고 구글의 지오 형식으로 매핑 할 수 있습니다 의미 :
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
import org.eclipse.persistence.oxm.annotations.XmlPath;
@XmlRootElement(name="kml")
@XmlType(propOrder={"country", "state", "city", "street", "postalCode"})
public class Address {
@XmlPath("Response/Placemark/ns:AddressDetails/ns:Country/ns:AdministrativeArea/ns:SubAdministrativeArea/ns:Locality/ns:Thoroughfare/ns:ThoroughfareName/text()")
private String street;
@XmlPath("Response/Placemark/ns:AddressDetails/ns:Country/ns:AdministrativeArea/ns:SubAdministrativeArea/ns:Locality/ns:LocalityName/text()")
private String city;
@XmlPath("Response/Placemark/ns:AddressDetails/ns:Country/ns:AdministrativeArea/ns:AdministrativeAreaName/text()")
private String state;
@XmlPath("Response/Placemark/ns:AddressDetails/ns:Country/ns:CountryNameCode/text()")
private String country;
@XmlPath("Response/Placemark/ns:AddressDetails/ns:Country/ns:AdministrativeArea/ns:SubAdministrativeArea/ns:Locality/ns:PostalCode/ns:PostalCodeNumber/text()")
private String postalCode;
}
위 클래스는 다음과 같은 XML에 해당 자세한 내용
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://earth.google.com/kml/2.0" xmlns:ns="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0">
<Response>
<Placemark>
<ns:AddressDetails>
<ns:Country>
<ns:CountryNameCode>US</ns:CountryNameCode>
<ns:AdministrativeArea>
<ns:AdministrativeAreaName>CA</ns:AdministrativeAreaName>
<ns:SubAdministrativeArea>
<ns:Locality>
<ns:LocalityName>Mountain View</ns:LocalityName>
<ns:Thoroughfare>
<ns:ThoroughfareName>1600 Amphitheatre Pkwy</ns:ThoroughfareName>
</ns:Thoroughfare>
<ns:PostalCode>
<ns:PostalCodeNumber>94043</ns:PostalCodeNumber>
</ns:PostalCode>
</ns:Locality>
</ns:SubAdministrativeArea>
</ns:AdministrativeArea>
</ns:Country>
</ns:AddressDetails>
</Placemark>
</Response>
</kml>