3.3.5 WSDL定義で使用できる文字
WSDL定義では,RFC3986で規定されている非予約文字と日本語を使用できます。ここでは,WSDL定義で使用できる文字,および使用する文字に関する注意事項を示します。
WSDLファイル名で使用できない文字については,「3.3.9(3) WSDLファイル名に使用できない文字」を参照してください。
- 〈この項の構成〉
(1) 使用できる文字
document/literalに対応したSOAPアプリケーションでは,WSDL定義に日本語を使用できます。WSDLのスタイルごとに,使用できる文字を示します。
(a) 「DOCUMENT/LITERAL」の場合
半角英数字(A〜Z,a〜z,0〜9),アンダースコア(_),および次に示す文字を使用できます。
-
全角ひらがな,全角かたかな
-
全角ギリシャ文字,全角ロシア文字など
-
繰り返し符号(「ゝ」,「ゞ」,「々」)
-
漢字(JIS X 0208の第一水準,第二水準に含まれる範囲)
WSDLのデータ型がanyURIの属性については,次の文字も使用できます。
-
ハイフン(-)
-
ピリオド(.)
-
チルダ(~)
日本語のサポートについては,「12.2.1(2) WSDL 1.1仕様での日本語のサポート範囲」を参照してください。なお,DIIを使用する場合,日本語は使用できません。
(b) 「RPC/LITERAL」または「RPC/ENCODED」の場合
半角英数字(A〜Z,a〜z,0〜9)およびアンダースコア(_)を使用できます。WSDLのデータ型がanyURIの属性については,次の文字も使用できます。
-
ハイフン(-)
-
ピリオド(.)
-
チルダ(~)
(2) 日本語で定義する場合の注意
WSDL定義に日本語を使用する場合の注意事項について説明します。
(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) WSDL 1.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