Interstage Java EEで使用するWSDLが、WSDLの仕様以外に従う必要のある事項について説明します。
参考
本項で使用しているXMLのネームスペースのprefixは、以下のとおりです。
prefix | ネームスペース |
|---|---|
wsdl | http://schemas.xmlsoap.org/wsdl/ |
xs | http://www.w3.org/2001/XMLSchema |
xmime | http://www.w3.org/2005/05/xmlmime |
型定義
wsdl:typesでの型定義には、XMLスキーマだけ使用できます。個々のデータ型については、「Javaの基本データ型とXMLデータ型」を参照してください。
XMLインスタンスの解釈が不定となる、スキーマ定義(例:出現回数が固定でなくかつ名前が同じ複数のelement定義が連続したsequenceモデル)に注意してください。そのような定義のデータは、実際の通信において、受信時の解釈も不定となります。
1つのcomplexType定義に、複数のany定義が含まれないようにしてください。
xs:choice定義を使用する場合、maxOccurs属性に"unbounded"を指定してください。maxOccurs="unbounded"を指定しなかった場合、正しくマッピングが行われません。
例
xs:choice定義例
WSDL定義からスタブを生成した場合のWSDL定義に対応するJava例を以下に示します。
<xs:complexType name="addNumbers">
<xs:sequence>
<element name="in_param" type="xs:int" />
<element name="inout_param" type="xs:int" />
<xs:choice maxOccurs="unbounded">
<xs:element ref="tns:selected_param_int" />
<xs:element ref="tns:selected_param_string" />
</xs:choice>
</xs:sequence>
<element name="selected_param_int" type="xs:int" />
<element name="selected_param_string" type="xs:string" />
</xs:complexType>public class AddNumbers {
@XmlElement(name = "in_param")
protected int inParam;
@XmlElement(name = "inout_param")
protected int inoutParam;
@XmlElements({
@XmlElement(name = "selected_param_int", type = Integer.class),
@XmlElement(name = "selected_param_string", type = String.class)
})
protected List<JAXBElement<String>> selectedParamIntOrSelectedParamString;
}xs:any要素は使用できません。
xmime:expectedContentTypes属性の値に「text/plain」を指定しないでください。
その他
「xml」で始まる名前空間接頭辞は使用できません。
データ型が異なる要素は、異なるname属性を指定してください。
URIを構成する文字は、ASCIIコード範囲の利用可能な文字だけを使用してください。
![]()
以下のいずれかがDOSデバイス名と一致するWSDLを使用した場合、デフォルトではWSDLからJavaを生成する際にエラーとなることがあります。JAX-WSやJAXBのカスタムバインディング定義を使用して、生成されるクラス名やパッケージ名を指定することで回避できます。詳細は、JAX-WSやJAXBのドキュメントを参照してください。
型名
ポートタイプ名
オペレーション名
サービス名
ネームスペースの構成要素('.'、'/'、';'で区切られた文字列名)