Cosminexus SOAPアプリケーション開発ガイド

[目次][用語][索引][前へ][次へ]

3.3.5 WSDL定義で使用できる文字

WSDL定義では,RFC3986で規定されている非予約文字と日本語を使用できます。ここでは,WSDL定義で使用できる文字,および使用する文字に関する注意事項を示します。

WSDLファイル名で使用できない文字については,「3.3.9(3) WSDLファイル名に使用できない文字」を参照してください。

<この項の構成>
(1) 使用できる文字
(2) 日本語で定義する場合の注意
(3) WSDL定義での記号の扱い
(4) 先頭文字についての注意
(5) 同一データ型の変数名の定義に関する注意
(6) Javaの予約語を定義した場合の注意

(1) 使用できる文字

document/literalに対応したSOAPアプリケーションでは,WSDL定義に日本語を使用できます。WSDLのスタイルごとに,使用できる文字を示します。

(a) 「DOCUMENT/LITERAL」の場合

半角英数字(A~Z,a~z,0~9),アンダースコア(_),および次に示す文字を使用できます。

WSDLのデータ型がanyURIの属性については,次の文字も使用できます。

日本語のサポートについては,「12.2.1(2) WSDL1.1仕様での日本語のサポート範囲」を参照してください。なお,DIIを使用する場合,日本語は使用できません。

(b) 「RPC/LITERAL」または「RPC/ENCODED」の場合

半角英数字(A~Z,a~z,0~9)およびアンダースコア(_)を使用できます。WSDLのデータ型がanyURIの属性については,次の文字も使用できます。

(2) 日本語で定義する場合の注意

(a) wsdl:port要素のname属性を日本語で定義する場合

wsdl:port要素のname属性の値と,soap:address要素のlocation属性に指定されたURLパスの末尾の値は一致させる必要があります。ただし,wsdl:port要素のname属性を日本語で定義する場合,同じ値をパーセントエンコードしてsoap:address要素のlocation属性のURLパスに定義する必要があります(クライアントアプリケーションで動的にURLを指定する場合は除きます)。

パーセントエンコードするときに使用できる符号化形式はUTF-8です。また,パーセントエンコードした文字の16進コード(%xx)のAからFは,大文字を使用してください。

次に,wsdl:port要素のname属性を日本語で定義する場合の例を示します。

...
<wsdl:service name="UserInfoService">
 <wsdl:port binding="intf:UserInfoSoapBinding" name="日本語">
   <soap:address location="http://localhost:8080/RPCSampleService/services/%E6%97%A5%E6%9C%AC%E8%AA%9E"/>
  </wsdl:port>
 </wsdl:service>
</wsdl:definitions>

soap:address要素のlocation属性に誤った値を定義した場合,エラーとなり通信できません。

(b) anyURIの属性に対して日本語で定義する場合

WSDLのデータ型がanyURIの属性に対して,日本語で値を定義する場合は,パーセントエンコードする必要があります。

パーセントエンコードするときに使用できる符号化形式はUTF-8です。また,パーセントエンコードした文字の16進コード(%xx)のAからFは,大文字を使用してください。

anyURIの属性を持つWSDLの要素については,「12.2.1(2) WSDL1.1仕様での日本語のサポート範囲」を参照してください。

(3) WSDL定義での記号の扱い

WSDL定義で次の記号を名称に使用している場合,ソースコード生成時に記号が削除されます。そのため,記号を使用して名称を重複しないようにしている場合でも,ソースコード生成時には名称が重複して,コンパイルエラーになることがあります。

ソースコード生成時に削除される記号
  • ハイフン(-)
  • ピリオド(.)
  • コロン(:)

(例)
WSDL定義での名称:Section-Name
ソースコードでの名称:SectionName

(4) 先頭文字についての注意

WSDL定義で使用する名称の先頭文字は「a~z」,「A~Z」,または「_」(アンダースコア)で始まるように定義してください。それ以外の名称を先頭文字に使用すると,サービス呼び出し時にエラー(KDCCF0006-E)が発生することがあります。

(5) 同一データ型の変数名の定義に関する注意

WSDL定義でデータ型を定義する場合,同一データ型内の変数名として,"A"と"a"または"A1"と"a1"のように,大文字小文字だけが異なる変数名を定義すると,ソースコード生成後のコンパイルでエラーになることがあります。

大文字小文字だけが異なるような変数名は定義しないでください。

(6) Javaの予約語を定義した場合の注意

WSDL定義で使用する名称に,Javaの予約語を定義すると,ソースコード生成時に名称の前に「_」(アンダースコア)が付加されます。

名称の前に「_」(アンダースコア)が付加されるJavaの予約語を次に示します。

 
  "abstract",  "assert",     "boolean",   "break",        "byte",
  "case",      "catch",      "char",      "class",        "const",
  "continue",  "default",    "do",        "double",       "else",
  "enum",      "extends",    "false",     "final",        "finally",
  "float",     "for",        "goto",      "if",           "implements",
  "import",    "instanceof", "int",       "interface",    "long",
  "native",    "new",        "null",      "package",      "private",
  "protected", "public",     "return",    "short",        "static",
  "strictfp",  "super",      "switch",    "synchronized", "this",
  "throw",     "throws",     "transient", "true",         "try",
  "void",      "volatile",   "while"

(例)
WSDL定義での名称:boolean
ソースコードでの名称:_boolean