Apache XMLBeans
Apache XMLBeans개발자 | Apache 소프트웨어 재단 |
---|---|
안정된 릴리스 | 5.1.0 / 2022년 6월 12일; 전( |
기입처 | 자바 |
운영 체제 | 크로스 플랫폼 |
유형 | XML 바인딩 |
면허증. | Apache 라이센스 2.0 |
웹 사이트 | xmlbeans |
XMLBeans는 Apache Software Foundation XML 프로젝트의 일부인 Java-to-XML 바인딩 프레임워크입니다.
묘사
XMLBeans는 Java와 친숙한 방식으로 XML의 모든 기능에 액세스할 수 있는 도구입니다.XML 및 XML Schema의 풍부한 기능과 기능을 활용하여 가능한 한 자연스럽게 동등한 Java 언어 및 타이핑 구조에 매핑하는 것이 목적입니다.XMLBeans는 XML 스키마를 사용하여 Java 인터페이스 및 클래스를 컴파일하여 XML 인스턴스 데이터에 액세스 및 수정할 수 있습니다.XMLBeans를 사용하는 것은 Java를 사용하는 경우와 마찬가지로 getFoo 또는 setFoo 등의 메서드에서 다른 Java 인터페이스/클래스를 사용하는 것과 유사합니다.XMLBeans의 주요 용도는 Java 클래스가 강한 XML 인스턴스 데이터에 액세스하는 것이지만 XML 스키마 개체 모델을 통해 XML 스키마 자체에 반영할 수 있도록 전체 XML Infoset에 액세스할 수 있는 API도 있습니다.
XMLBean의 특징
대규모 XML 스키마 지원: XMLBeans는 XML 스키마를 완전히 지원하며 대응하는 Java 클래스는 XML 스키마의 모든 주요 기능을 위한 구성을 제공합니다.Java에서 작업하는 데 필요한 XML 스키마의 기능을 제어할 수 없는 경우가 많기 때문에 이는 매우 중요합니다.또한 XML Schema 지향 애플리케이션은 XML Schema의 기능을 최대한 활용할 수 있으므로 하위 집합으로 제한할 필요가 없습니다.
대규모 XML Infoset 지원:XML 인스턴스의 Marshall을 해제하면 완전한 XML infoset이 유지되고 개발자가 사용할 수 있습니다.이는 XML의 서브셋이 Java에서는 쉽게 표시되지 않기 때문에 매우 중요합니다.예를 들어 특정 응용 프로그램에서 요소 또는 주석의 순서가 필요할 수 있습니다.
객관적으로
XMLBeans의 주요 목적은 모든 비스트리밍(메모리 내) XML 프로그래밍 상황에서 적용할 수 있다는 것입니다.개발자는 XML 스키마를 Java 클래스 세트로 컴파일할 수 있어야 하며, 다음과 같은 기능을 할 수 있어야 합니다.
- XMLBeans를 사용하여 모든 스키마를 처리합니다.
- 필요한 레벨에 관계없이 XML에 액세스 할 수 있습니다.
API
위의 목적을 달성하기 위해 XMLBeans는 다음 3가지 주요 API를 제공합니다.
- Xml Object(Xml Object)
- Xml Cursor
- 스키마 타입
Xml Object:XML 스키마에서 생성되는 Java 클래스는 모두 XmlObject에서 파생됩니다.이들은 정의된 XML 내의 각 요소에 대해 강력한 유형의 getter와 setter를 제공합니다.복잡한 유형은 차례로 XmlObjects입니다.예를 들어 getCustomer는 고객을 반환할 수 있습니다.유형(Xml Object).심플 타입은 올바른 Java 타입으로 심플한 게터 및 세터로 바뀝니다.예를 들어 getName은 문자열을 반환할 수 있습니다.
XmlCursor:개발자는 임의의 XmlObject에서 XmlCursor를 얻을 수 있습니다.이를 통해 XML Infoset에 대한 효율적이고 낮은 수준의 액세스가 제공됩니다.커서는 XML 인스턴스 내의 위치를 나타냅니다.커서는 개별 문자에서 토큰에 이르기까지 필요한 세분화 수준에서 XML 인스턴스 주위를 이동할 수 있습니다.
SchemaType: XMLBeans는 기본 스키마 메타 정보를 반영하기 위해 사용할 수 있는 완전한 XML 스키마 개체 모델을 제공합니다.예를 들어 개발자는 XML 스키마의 샘플 XML 인스턴스를 생성하거나 요소의 열거를 검색하여 표시할 수 있습니다.
예
국가를 설명하는 단순한 XML 스키마 정의의 예를 다음에 나타냅니다.
<?xml version="1.0" encoding="UTF-8"?> <http:targetNamespace="http://www.openuri.org/domain/country/v1" xmlns:tns="http://www.openuri.org/domain/country/v1" elementFormDefault="qualified" attributFormDefault="unqualified" version="1.0"> <http:nesname="국가" 유형="tns:국가"/> <xs: complexType name="국가"> <country: sequence> <country: name="Name" type="country: string"/> <country: name="모집단" 유형="param:int"/> <param:param name="Iso" type="tns:Iso"/> </complex: sequence> </xs: complexType> <xs: complexType name="Iso"> <xs: 주석> <xs: 문서>ISO 3166 </timeout:information> </timeout:information> <timeout:information> <timeout:information> <timeout:information name="Alpha2" type="tns:IsoAlpha2"/> <block:param name="Alpha3" type="tns:IsoAlpha3"/> <block:filename="CountryCode" type="tns:Iso Country Code"/> </complex: sequence> </xs: complex Type> <xs: simple Type name="IsoCountryCode"> <xs:int> <xs:totalDigits value="3"/> </xs:simpleType> <xs:simpleType name="IsoAlpha2"> <contraction base="contraction:string"> <contraction:pattern value="[A-Z]{2}"/> <xs:whiteSpace value="simple"/> </xs:simpleType> </xs:simpleType name="IsoAlpha3"> <contraction base="contraction:string"> <contraction:pattern value="[A-Z]{3}"/> <xs:whiteSpace value="simple"/> </xs:simpleType> </xs:simpleType> </xs:simple> </xs:simple:s>
스키마를 XMLBean 클래스로 컴파일(예: Ant 사용)하면 스키마 정의에 적합한 XML 데이터를 쉽게 만들고 조작할 수 있습니다.다음 Java 코드는 XML 문서를 만들고 검증하는 방법을 보여 주는 간단한 예입니다.
수입품 org.openuri.domain.country.v1 입니다.나라; 수입품 org.openuri.domain.country.v1 입니다.Iso; 일반의 학급 국가 샘플 { 일반의 정적인 무효 주된(스트링[] args) { 나라 나라 = 나라.공장 .newInstance(); 나라.setName("덴마크"); 나라.set 모집단(5450661); // 위키피디아에서 :-) // 국가별 XMLBean을 XML로 출력합니다. 시스템..나가..인쇄(나라.xml 텍스트()); // 문서가 유효한지 확인 - "Document is invalid"로 출력됩니다. // 필요한 Iso 하위 요소가 개체에 없기 때문입니다. 시스템..나가..인쇄 ("문서는" + (나라.입증하다() ? "유효" : "실패")); // 복합 유형 Iso를 사용하여 문서를 유효하게 만들기 위해 하위 항목 추가 Iso ISO = 나라.새로운 Iso 추가(); ISO.set Alpha2('도겸'); ISO.set Alpha3("DNK"); ISO.set Country Code(설정 국가 코드)(208); // 국가별 XMLBean을 XML로 출력합니다. 시스템..나가..인쇄(나라.xml 텍스트()); // 문서가 유효한지 확인 - "Document is valid"라고 인쇄됩니다. 시스템..나가..인쇄 ("문서는" + (나라.입증하다() ? "유효" : "실패")); } }
역사
David Bau는 BEA에서 일하는 동안 XMLBeans 1.0 프로젝트의 수석 디자이너였습니다. XMLBeans는 이전 BEA WebLogic 제품에 포함된 XML 바인딩 도구인 XMLMaps를 기반으로 시작되었습니다.XMLBeans는 원래 독점적인 BEA WebLogic Workshop Framework의 일부로 개발되었지만, 2003년 1월 27일 처음 발표되었을 때 실시된 인터뷰를 통해 BEA가 개방형 표준이 되기를 원한다는 것이 명백했습니다.당시에는 BEA가 표준화 노력에 어떤 조직을 참여시킬지 결정되지 않았습니다.그 해 말 Apache Software Foundation에 기부되었습니다.원래 팀에는 Cezar Christian Andrei와 Eric Vasilik이 포함되었고, 이후 Cliff Schmidt와 Radu Preotiuc-Pietro, Jacob Danner, Kevin Krouse 및 Wing Yew Poon이 추가되었다.XMLBeans는 현재 Apache POI에 의해 개발되고 있다.
- 2003년 1월 27일: BEA는 테크놀로지 프리뷰로서 XMLBeans를 발표합니다.
- 2003년 9월 24일: BEA는 Apache Software Foundation에 XMLBeans를 기부하고 Apache Incubator Project에 참여합니다.
- 2004년 4월 23일: XMLBeans 버전 1.0.2가 출시되었습니다.이것은 인큐베이터 프로젝트의 첫 번째 릴리스입니다.
- 2004년 6월 25일: XMLBeans는 Apache Incubator Project를 졸업하여 최상위 프로젝트가 되었습니다.
- 2005년 6월 30일: XMLBeans 버전 2.0이 출시되었습니다.
- 2005년 11월 16일: XMLBeans 버전 2.1이 출시되었습니다.
- 2006년 6월 23일: XMLBeans 버전 2.2가 출시되었습니다.
- 2007년 6월 1일: XMLBeans 버전 2.3이 출시되었습니다.
- 2008년 7월 8일: XMLBeans 버전 2.4가 출시되었습니다.
- 2009년 12월 14일: XMLBeans 버전 2.5가 출시되었습니다.
- 2012년 8월 14일: XMLBeans 버전 2.6이 출시되었습니다.
- 2014년 5월 23일: XMLBeans는 공식적으로 폐기되고 활성 개발이 일시적으로 중단되었습니다.
- 2018년 6월 29일: XMLBeans는 "폐기되지 않은" 상태로 Apache POI가 활발한 [1]개발을 이어받았습니다.
「 」를 참조해 주세요.
- XML 데이터 바인딩
- XML 바인딩을 위한 Java 아키텍처(JAXB)
- xmlbeansxx : C++용 XML 데이터바인딩 코드 생성기