XmlProperty

説明

整形式のXMLファイルよりプロパティの値をロードします。"well-formed"以上の制約はありません。 レイアウトを選べます。例えば、XMLプロパティファイルは、

  <root>
    <properties>
      <foo>bar</foo>
    </properties>
  </root>

大体同等なJavaプロパティファイルは、

  root.properties.foo = bar

デフォルトでは、読込み処理を行いません。特に、Property taskと違って、 プロパティ参照(例:${foo})は解決されません。

意味属性

semanticAttributes属性によって読込み処理を使用可能にできます。 属性をtrueに設定したら(デフォルトはfalse)、XMLファイルがロードされた後に 続いて処理が発生します。

例えば、意味属性の処理を使用可能にしたときのXMLプロパティファイルは、

  <root>
    <properties>
      <foo location="bar"/>
      <quux>${root.properties.foo}</quux>
    </properties>
  </root>

大体同等なbuild.xmlファイルの断片を下記に示すと、

  <property name="root.properties.foo" location="bar"/>
  <property name="root.properties.quux" value="${root.properties.foo}"/>

パラメータ

属性 説明 必須
file パージングするXMLファイル Yes
prefix 個々のプロパティ名の前に置かれる前置語 No
keepRoot falseの場合、 プロパティ名の最初の値として、XMLルートタグを含まない No、デフォルトはtrue
validate 入力ファイルの検査を行う (例えば、DTD). それ以外では、整形式のXMLファイルでなければならない。 No、デフォルトはfalse
collapseAttributes 属性をネストされた要素として扱う No、デフォルトはfalse
semanticAttributes ある属性名の特別な扱い有効にする。これ以上の情報は Semantic Attributesを参照。 No、デフォルトはfalse
includeSemanticAttribute プロパティ名の一部として意味属性を含みます。 semanticAttributestrueに設定しないと無視されます。. これ以上の情報は Semantic Attributesを参照。 No、デフォルトはfalse
rootDirectory The directory to use for resolving file references. Ignored if semanticAttributes is not set to true. No、デフォルトは${basedir}

非意味属性

意味属性を持たないxmlファイルの例です。

   <root-tag myattr="true">
    <inner-tag someattr="val">Text</inner-tag>
    <a2><a3><a4>false</a4></a3></a2>
   </root-tag>
デフォルトのロード

ビルドファイル

   <xmlproperty file="somefile.xml" />

同等なプロパティファイル

   root-tag(myattr)=true
   root-tag.inner-tag=Text
   root-tag.inner-tag(someattr)=val
   root-tag.a2.a3.a4=false
collapseAttributes=false

ビルドファイル

   <xmlproperty file="somefile.xml" collapseAttributes="true"/>

同等なプロパティファイル

   root-tag.myattr=true
   root-tag.inner-tag=Text
   root-tag.inner-tag.someatt=val
   root-tag.a2.a3.a4=false
keepRoot=false

ビルドファイル

   <xmlproperty file="somefile.xml" keepRoot="false"/>

同等なプロパティファイル

   inner-tag=Text
   inner-tag(someattr)=val
   a2.a3.a4=false

Semantic Attributes

意味属性を持つxmlファイルの例です。

  <root-tag>
    <version value="0.0.1"/>
    <build folder="build">
      <classes id="build.classes" location="${build.folder}/classes"/>
      <reference refid="build.classes"/>
    </build>
    <compile>
      <classpath pathid="compile.classpath">
        <pathelement location="${build.classes}"/>
      </classpath>
    </compile>
    <run-time>
      <jars>*.jar</jars>
      <classpath pathid="run-time.classpath">
        <path refid="compile.classpath"/>
        <pathelement path="${run-time.jars}"/>
      </classpath>
    </run-time>
  </root-tag>
デフォルトのロード (semanticAttributes=true)

ビルドファイル

   <xmlproperty file="somefile.xml"
                semanticAttributes="true"/>

同等なビルドファイル

  <property name="version" value="0.0.1"/>
  <property name="build.folder" value="build"/>
  <property name="build.classes" location="${build.folder}/classes" id="build.classes"/>
  <property name="build.reference" refid="build.classes"/>

  <property name="run-time.jars" value="*.jar/>

  <classpath id="compile.classpath">
    <pathelement location="${build.classes}"/>
  </classpath>

  <classpath id="run-time.classpath">
    <path refid="compile.classpath"/>
    <pathelement path="${run-time.jars}"/>
  </classpath>
includeSemanticAttribute="true"

ビルドファイル

   <xmlproperty file="somefile.xml"
                semanticAttributes="true"
                includeSemanticAttribute="true"/>

同等なビルドファイル

  <property name="version.value" value="0.0.1"/>
  <property name="build.folder" value="build"/>
  <property name="build.classes.location" location="${build.folder}/classes"/>
  <property name="build.reference.refid" refid="build.location"/>

  <property name="run-time.jars" value="*.jar/>

  <classpath id="compile.classpath">
    <pathelement location="${build.classes}"/>
  </classpath>

  <classpath id="run-time.classpath">
    <path refid="compile.classpath"/>
    <pathelement path="${run-time.jars}"/>
  </classpath>

Copyright © 2002-2004 The Apache Software Foundation. All rights Reserved.

[訳注:これは漆島賢二、横田聡が翻訳しました。日本語訳に対するコメントがあれば report@jajakarta.orgに送ってください]