2012-11-14 5 views
2

우리는 schemagen을 사용하여 주석이 달린 일부 POJO에서 XSD를 생성합니다. 여기xmlns : tns는 schemagen을 사용할 때 어디에서 왔습니까?

우리 개미 대상

<target name="generate-xsd" depends="compile"> 
    <taskdef name="schemagen" classname="com.sun.tools.jxc.SchemaGenTask" 
        classpathref="xjc.classpath"/> 
    <schemagen srcdir="src" destdir="generated" includeantruntime="false"> 
     <include name="com/acme/exam/delivery/records/**"/> 
     <schema namespace="http://www.acme.com/deliverylog" 
          file="deliverylog.xsd"/> 
     <schema namespace="" file="supplemental.xsd"/> 
    </schemagen> 
</target> 

이는 TNS에서 온 namespace에 않으며 무엇을 의미 않습니다

<xs:schema elementFormDefault="qualified" version="1.0" 
      targetNamespace="http://www.acme.com/deliverylog" 
      xmlns:tns="http://www.acme.com/deliverylog" 
      xmlns:xs="http://www.w3.org/2001/XMLSchema"> 

을 생성입니까?

답변

1

해당 정보는 패키지 레벨 주석에서 제공되며 package-info 클래스에 있습니다. 아래 예제를 참조하십시오.

패키지 정보

@XmlSchema(
    namespace = "http://www.acme.com/deliverylo", 
    elementFormDefault = XmlNsForm.QUALIFIED) 
package example; 

import javax.xml.bind.annotation.XmlNsForm; 
import javax.xml.bind.annotation.XmlSchema; 

샘플 XML

elementFormDefault 요소 (= 모든 거짓 = 세계 유일의 요소 참) 자격을 갖춘 네임 스페이스이어야한다 지정하고 targetNamespace 무엇 네임 스페이스 정의 입니다. 추가 정보

<foo xmlns="http://www.acme.com/deliverylog"> 
    <bar>Hello World</bar> 
</foo>