2009-01-14 2 views
1

데이터 집합 XSD 파일이 주어지면 System.Data를 사용하지 않는 Java 클래스를 생성 할 수 있습니까? JAXB의 XJC 도구를 사용하여 테스트를 실행 해 보았지만 아무런 도움이되지 않습니다.MS-Dataset XSD 파일에서 Java 클래스를 생성 할 수있는 방법이 있습니까?

업데이트 : 페르난도 (Fernando)의 제안에 따라 XmlBeans도 시도해 보았습니다. XJC 출력과 비슷한 (즉, 테이블의 클래스 표현이지만 열, 제약 조건 또는 행이없는) 것을 생성합니다. 이러한 것들을 외장에 추가 할 수는 있지만 이상적으로는 XSD 컴파일러가 사용 된 어떤 것이라도 생성됩니다.

답변

1

JAXB API 대신 XMLBeans을 시도해 볼 수 있습니다. 명령 행 명령을 사용하거나 ANT 스크립트를 사용하여 호출 할 수 있습니다. XMLBeans를 호출하는 build.xml 파일의 일부를 지나서 XSD를 jar 파일로 컴파일합니다.

<taskdef name="xmlbean" classname="org.apache.xmlbeans.impl.tool.XMLBean" classpathref="classpath"/> 


<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> 
<!-- Crea y compila las clases del modelo        --> 
<!-- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ --> 

<target name="build" description="--> crea las clases a partir del schema"> 
    <!-- Borra los fuentes del modelo --> 
    <delete quiet="true" dir="${build.dir}/src" /> 

    <mkdir dir="${build.classes}"/> 

    <!-- Construye fuentes asociadas y crea las clases --> 
    <xmlbean srcgendir="${build.dir}/src" classpathref="classpath" classgendir="${build.classes}"> 
     <fileset dir="${src.dir}" excludes="**/*.xsd"/> 
     <fileset dir="${schemas.dir}" includes="**/*.*"/> 
    </xmlbean> 

    <javac srcdir="${src.dir}" 
       destdir="${build.classes}" 
       encoding="Windows-1252" 
       debug="${debug}" 
       debuglevel="${debuglevel}" 
       deprecation="${deprecation}" 
       verbose="${verbose}" 
       optimize="${optimize}" 
       source="${source}" 
       target="${target}"> 
       <classpath refid="classpath" /> 
    </javac> 
</target> 
+0

XML 빈스는 컴파일러 (이것은 당신이 무엇을 의미입니까?)를 MS-데이터 집합 XSD에서 합리적인 코드를 생성을 SCOMP하지만, 등 열, 제약, 내가 XJC에서 유사한 결과를 얻을 수에 대한 모든 정보를 푼다. – Andy