2

いくつかの注釈付きPOJOからXSDを作成するために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>

これは生成しています

<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">

tns名前空間はどこから来て、それは何を意味しますか?

4

1 に答える 1

1

その情報は、クラスにあるパッケージレベルのアノテーションから取得@XmlSchemaされpackage-infoます。例については、以下を参照してください。

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どの要素を名前空間修飾する必要があるかを指定し(true =すべて、false =グローバル要素のみ)、targetNamespace名前空間が何であるかを定義します。

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

詳細については

于 2012-11-14T18:34:05.983 に答える