XML マップにおける型のサポート

このトピックでは、XML マップを使用して変換する Java タイプのデフォルト スキーマ出力について説明します。XML マップを使用して送信 XML メッセージを作成する場合、WebLogic Server はこのトピックの説明のとおりに Java タイプを XML スキーマ タイプにマッピングします。このトピックでは、XML マップでサポートされる各 Java タイプをリストし、それぞれの対応するスキーマ定義を示します。

注意: デフォルトの動作は、JSX ファイル内の ECMAScript で生成された XML では異なります(XML マップが使用されても)。スクリプトを使用して作成した XML の場合、デフォルトはシンプルな型なしの XML です。XML 変数を作成し、それらにリテラルのスキーマ属性が含まれる XML 値を割り当てて、スクリプトの必要なところでスキーマを示す必要があります。

XML マップでサポートされる Java タイプは以下のとおりです。

このリストの情報

このリストの各項目では、以下の情報が示されます。

その型の変数を宣言するために使用される Java コード

String a = "a string";

XML マップでのその変数の例

<mytag>{a}</mytag>

マップで生成(受信メッセージの場合は処理)されるプレーンな XML の例

<mytag>a string</mytag>

WSDL ファイルで変数がどのように記述されるのかを示す例。WebLogic Server が変換を処理するので、WebLogic Workshop の使用時にこの情報は必要ありません。ただし、メッセージを直接処理する必要のある他の開発モデルでは、この情報が役に立ちます。

<s:element name="mytag" type="s:string"/>

文字列

Java 変数

String a = "a string";

XML マップでの使い方

<mytag>{a}</mytag>

結果の XML

<mytag>a string</mytag>

結果のスキーマ

<s:element name="mytag" type="s:string"/>

ブール

Java 変数

boolean f = true;

XML マップでの使い方

<mytag>{f}<mytag>

結果の XML

<mytag>true</mytag>

結果のスキーマ

<s:element name="mytag" type="s:boolean"/>

バイト

Java 変数

byte b = 250;

XML マップでの使い方

<mytag>{b}<mytag>

結果の XML

<mytag>250</mytag>

結果のスキーマ

<s:element name="mytag" type="s:byte"/>

 

単精度整数

Java 変数

short s = 537;

XML マップでの使い方

<mytag>{s}</mytag>

結果の XML

<mytag>537</mytag>

結果のスキーマ

<s:element name="mytag" type="s:shortint"/>

 

整数

Java 変数

int i = 12345;

XML マップでの使い方

<mytag>{i}</mytag>

結果の XML

<mytag>12345</mytag>

結果のスキーマ

<s:element name="mytag" type="s:int"/>

 

長精度整数

Java 変数

long l = 123456789;

XML マップでの使い方

<mytag>{l}</mytag>

結果の XML

<mytag>123456789</mytag>

結果のスキーマ

<s:element name="mytag" type="s:longint"/>

 

単精度浮動小数点値

Java 変数

float f = 1.23f;

XML マップでの使い方

<mytag>{f}</mytag>

結果の XML

<mytag>1.23</mytag>

結果のスキーマ

<s:element name="mytag" type="s:floatingpoint"/>

 

倍精度浮動小数点値

Java 変数

float d = 1.2345;

XML マップでの使い方

<mytag>{f}</mytag>

結果の XML

<mytag>1.2345</mytag>

結果のスキーマ

<s:element name="mytag" type="s:doublefloat"/>

 

日付

Java 変数

java.util.Date date= new java.util.Date();

XML マップでの使い方

<mytag>{date}</mytag>

結果の XML

<mytag>2002-04-14T13:57:12.046Z</mytag>

結果のスキーマ

<s:element name="mytag" type="s:dateTime"/>

 

上記のいずれかの型の型付き配列

Java 変数

String[] sa = new String[] {"first", "second", "third"};

XML マップでの使い方

<mytag>{sa}</mytag>

結果の XML

<mytag>

  <String>first</String>

  <String>second</String>

  <String>third</String>

</mytag>

結果のスキーマ

<s:element name="mytag" type="s0:ArrayOfString"/>

<s:complexType name="ArrayOfString">

 <s:sequence>

  <s:element minOccurs="0" maxOccurs="unbounded" name="String" nillable="true" type="s:string" />

 </s:sequence>

</s:complexType>

 

リスト

以下の例は、リスト全体が 1 単位としてマッピングされるときにどのように XML に変換されるのかを示しています。<xm:multiple> で XML 値の繰り返しを処理するおよび<xm:bind> で変数を宣言するで説明されているように、リストの個々のメンバーをマッピングすることもできます。

XML マップは、以下のような Collection クラスのサブクラスをサポートします。

ただし、以下はサポートされていません。

Java 変数

ArrayList list = new ArrayList();

list.add("first");
list.add("second");

list.add(new Integer(71));

XML マップでの使い方

<mytag>{list}</mytag>

結果の XML

<mytag>

  <anyType xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">first</anyType>

  <anyType xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:string">second</anyType>

  <anyType xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:type="xsd:int">71</anyType>

</mytag>

結果のスキーマ

<s:element name="mytag" type="s0:List" />

<s:complexType name="List">

    <s:sequence>

        <s:element minOccurs="0" maxOccurs="unbounded" name="anyType" nillable="true" type="s:anyType" />

    </s:sequence>

</s:complexType>

 

構造体

以下の例は、構造体全体が 1 単位としてマッピングされるときにどのように XML に変換されるのかを示しています。 Java データ メンバーにバインドするで説明されているように、構造体の個々のメンバーをマッピングすることもできます。

Java 変数

static public class Structure {

    public int intField = 43;

    public String stringField = "member2";

 }

Structure s = new Structure();

XML マップでの使い方

<mytag>{s}</mytag>

結果の XML

<mytag>

  <intField>43</intField>

  <stringField>member2</stringField>

</mytag>

結果のスキーマ

<s:element name="mytag" type="s0:Structure" />

<s:complexType name="Structure">

    <s:sequence>

        <s:element minOccurs="1" maxOccurs="1" name="intField" type="s:int" />

        <s:element minOccurs="1" maxOccurs="1" name="stringField" nillable="true" type="s:string" />

    </s:sequence>

</s:complexType>

 

パブリックな get および set メソッドのある JavaBean

以下の例は、get と set のペアが 1 単位としてマッピングされるときにどのように XML に変換されるのかを示しています。 Java データ メンバーにバインドするで説明されているように、個々のメンバーをマッピングすることもできます。

Java 変数

static public class Bean

{

    public String getName() {

        return theName;

    }

    public void setName(String s) {

        theName = s;

    }

    private String theName = "A name";

    public int getNumber() {

        return theNumber;

    }

    public void setNumber(int i) {

        theNumber = i;

    }

    private int theNumber = 8;

}

Bean b = new Bean();

XML マップでの使い方

<mytag>{b}</mytag>

結果の XML

<mytag>

  <name>A name</name>

  <number>8</number>

</mytag>

結果のスキーマ

<s:element name="mytag" type="s0:Bean" />

<s:complexType name="Bean">

    <s:sequence>

        <s:element minOccurs="1" maxOccurs="1" name="name" nillable="true" type="s:string" />

        <s:element minOccurs="1" maxOccurs="1" name="number" type="s:int" />

    </s:sequence>

</s:complexType>

XML 要素

Java 変数

Document myDocument = new weblogic.apache.xerces.dom.DocumentImpl();

Text text = myDocument.createTextNode("This is a root element");

Element root = myDocument.createElement("myRootElement");

root.appendChild(text);

myDocument.appendChild(root);

XML マップでの使い方

<mytag>{root}</mytag>

結果の XML

<mytag>

  <myRootElement>This is a root element</myRootElement>

<mytag>

結果のスキーマ

<s:element name="mytag">

    <s:complexType>

        <s:sequence>

            <s:element minOccurs="0" maxOccurs="1" name="mytag">

                <s:complexType mixed="true">

                    <s:sequence>

                        <s:any />

                    </s:sequence>

                </s:complexType>

            </s:element>

        </s:sequence>

    </s:complexType>

</s:element>

XML ドキュメント フラグメント

Java 変数

Document myDocument = new weblogic.apache.xerces.dom.DocumentImpl();

DocumentFragment frag = myDocument.createDocumentFragment();

Text text = myDocument.createTextNode("Some fragment text");

Element sibling = myDocument.createElement("testElement");

sibling.appendChild(text);

frag.appendChild(sibling);

Text text2 = myDocument.createTextNode("More fragment text");

Element sibling2 = myDocument.createElement("testElement2");

sibling2.appendChild(text2);

frag.appendChild(sibling2);

XML マップでの使い方

<mytag>{frag}</mytag>

結果の XML

<mytag>

    <testElement>Some fragment text</testElement>

    <testElement2>More fragment text</testElement2>

</mytag>

結果のスキーマ

<s:element name="mytag">

    <s:complexType>

        <s:sequence>

            <s:element minOccurs="0" maxOccurs="1" name="mytag">

                <s:complexType mixed="true">

                    <s:sequence>

                        <s:any />

                    </s:sequence>

                </s:complexType>

            </s:element>

        </s:sequence>

    </s:complexType>

</s:element>

 

関連トピック

ECMAScript における型のサポート