2012-02-15 3 views
1

XSD 파일에서 Java의 Object 트리를 어떻게 만들 수 있는지 알고 싶습니다. 이것에 대한 어떤 틀이 있습니까?Java에서 xsd에서 객체 트리를 만드는 방법은 무엇입니까?

함수 서명은 다소이 가까이 될 것입니다 :

TreeSet<Object> convertToTree(File xsdFile); 

그래서 당신은 XSD 파일을 읽고 트리 수집을 생성해야하는 기능 convertToTree을 볼 수 있습니다.

누군가 예를 게시 할 수 있습니까?

답변

2

이 문제는 JAXB를 사용할 수 있습니다. 내가 아는 한 Netbeans에 통합되어 있습니다. 넷빈즈에서

:

프로젝트를 선택 -> 마우스 오른쪽 버튼을 클릭 -> 새

선택 기타 -> 카테고리 = XML; FileTypes = JAXB Binding

나머지는 스스로 설명해야합니다.

그러나

당신이 XSD에 의해 정의 된 고정 XML-계획이없는 경우,하지만 당신은 XSD 파일에 의해 정의 된 XML-체계의 구조를 표시하려면, 다음을 수행 할 수 xsd 파일은 항상 xml 파일이기 때문에 xsd 파일을 설명하는 xsd 파일을 작성해야합니다. (나는 이미 xsd-file에 대한 계획이 있음을 확신한다). 그런 다음 위에서 설명한대로이 xsd 파일을 사용하여 다른 xsd 파일을 마샬링 및 비 정렬화할 수 있습니다. 그러나이 솔루션을 테스트하지 않았습니다 ...

+0

+1 - JAXB도 Eclipse에 통합되어 있습니다. XML 스키마를 마우스 오른쪽 단추로 클릭 한 다음 Generate | JAXB 클래스 ... –

+0

실제로 문제는 한 시간 객체를 만드는 것이 아닙니다. 내가 입력으로 다양한 xsds에서 – Anand

+0

Java 개체의 트리를 생성해야합니다 이것은 하나의 시간 개체를 만들지 않습니다. xsd에 정의 된 xml-structure를 나타내는 클래스 집합을 만듭니다. JAXB.marshal 및 JAXB.unmarshal을 사용하면 xml 파일을 구문 분석하고 객체를 사용하여 xml 파일을 작성하여 오브젝트를 작성할 수 있습니다. 또는 귀하의 기본 의도는 무엇입니까? 어쩌면 나는 이것을 잘못 이해했다. – AlexS

2

JDK에는 명령 줄에서 실행할 수있는 매개 변수로 스키마를 전달하는 'xjc'유틸리티가 있습니다. 스키마 구조를 나타내는 Java 클래스를 생성합니다. 그런 다음이 클래스를 사용하여 XML을 Java 표현으로 변환하고 다시 변환 할 수 있습니다 (JAXB 및 정렬/비 정렬 참조).

5

JAXB 또는 XMLBean을 사용할 수 있습니다.

당신은 generate JAXB classes from an XML schema file 또는

이처럼 수행 참조 예를해야하는 경우 : "%java_home%\bin\xjc" -p [package_name] [xsd_file].xsd

+1

+1 JAXB. 다음은 JAXB 및 XMLBeans에서 생성 된 객체 모델을 사용하여 비교 한 것입니다. http://blog.bdoughan.com/2012/01/how-does-jaxb-compare-to-xmlbeans.html –

0
XML 스키마 정의 (XSD) 일부 elememnt 유형을 가지고있는

및 오브젝트 트리를 만드는 동안이 루트 요소 xsd 파일.

Kuldeep이 말한 것처럼이 xsd 파일은 JAXB (Java Architecture for XML Binding) 및 JavaBean 클래스와 함께 작동합니다. 이렇게하면 setter 및 getter 메소드로 bean 클래스를 생성하여 bean 객체에서 데이터를 검색합니다.

예를 들어 Example.xsd 파일은 아래에 설명 된 구조를 갖습니다.

<?xml version="1.0" encoding="UTF-8"?> 
<xs:schema targetNamespace="http://www.project.com/folder/Example" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:vsi="http://www.project.com/folder/Example" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" jxb:version="1.0"> 
    <xs:annotation> 
     <xs:appinfo> 
      <jxb:schemaBindings> 
       <jxb:package name="com.folder.jaxb.beans.example" /> 
      </jxb:schemaBindings> 
     </xs:appinfo> 
    </xs:annotation> 

그러면 propertys 및 속성을 사용하여 요소를 정의하십시오.

그런 다음 ant를 실행하는 스크립트가있는 build.xml 파일을 작성한 다음 xsd 오브젝트 트리를 사용하여 새 빈 클래스를 생성합니다.

그런 다음 xml 요소를 사용하여 프로젝트를 실행할 수 있습니다.

관련 문제