Cosminexus SOAPアプリケーション開発ガイド
xsd:import要素を定義することで,同じWSDL内のXML Schema,および別ファイルのXML Schemaをインポートできます。XML Schemaのインポートでは,異なる名前空間に属するXML Schemaをインポートできます。
XML Schemaのインポートの概念を次の図に示します。
図3-10 XML Schemaのインポート
なお,名前空間「http://www.w3.org/2001/XMLSchema」はインポートしないでください。
XML Schemaをインポートすることで,インポート対象のXML Schemaの要素および属性を参照できます。XML Schemaの型定義を参照する場合,同じファイル内に参照する型定義がなくても,型定義を記述したXML Schemaのファイルをインポートすれば参照できます。
XML Schemaの要素および属性を参照できる場合の例を示します。
図3-11 XML Schemaの要素および属性を参照できる場合(インポート)
対象となるXML Schemaをインポートしない場合は,ほかの名前空間に属するXML Schemaの要素および属性を参照できません。また,別のファイルを介して,間接的にXML Schemaの要素および属性を参照することはできません。
XML Schemaの要素および属性を参照できない場合の例を示します。
図3-12 XML Schemaの要素および属性を参照できない場合(インポート)
xsd:import要素の書式と属性を示します。
<xsd:import namespace="インポートする名前空間のURI" [schemaLocation="インポート対象のXML Schemaのファイル名"]/>
表3-7 相対パスに指定する文字の使用可否
分類 | 文字 |
---|---|
そのまま使用できる文字 (指定時にパーセントエンコード不要) |
半角英数字(A~Z,a~z,0~9)および次の文字 - . _ ~ / |
使用できない文字 (パーセントエンコードしても指定不可) |
半角スペースおよび次の文字 ? : * % | < > “ [ ] & + |
xsd:import要素の構文,および定義時の注意事項を示します。
xsd:import要素は,次に示す規則に従って記述してください。
インポート対象のXML Schemaでは,ルート要素をxsd:schema要素にしてください。また,インポート対象のxsd:schema要素のtargetNamespace属性は,次に示す規則に従って記述してください。
xsd:schemaの子要素にxsd:import要素を複数行記述することで,複数のXML Schemaをインポートできます。
schemaLocation属性の値が異なれば,namespace属性の値がそれぞれ同じ場合でも,異なる場合でもインポートできます。schemaLocation属性の値が同じ場合は,どちらもインポートできません(schemaLocation属性の値が同じxsd:import要素は複数行記述できません)。schemaLocation属性を省略する場合は,namespace属性の値が同じxsd:import要素を複数行記述できません。
別ファイルのXML Schemaをインポートする場合,および同じWSDL内のXML Schemaをインポートする場合の定義例を示します。
<?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="http://dictionary.com" xmlns:intf="http://dictionary.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:types> <xsd:schema targetNamespace="http://dictionary.com"> <xsd:import namespace="http://date.dictionary.com" schemaLocation="Date.xsd"/> ... </xsd:schema> </wsdl:types> ... </wsdl:definitions>
<?xml version="1.0" ?> <xsd:schema targetNamespace="http://date.dictionary.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:complexType name="DateInfo"> <xsd:sequence> <xsd:element name="fromDate" nillable="true" type="xsd:string"/> <xsd:element name="toDate" nillable="true" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:schema>
<?xml version="1.0" encoding="UTF-8"?> <wsdl:definitions targetNamespace="http://dictionary.com" xmlns:intf="http://dictionary.com" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <wsdl:types> <xsd:schema targetNamespace="http://dictionary.com" xmlns:tns2="http://date.dictionary.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:import namespace="http://date.dictionary.com"/> <xsd:complexType name="Data"> <xsd:sequence> <xsd:element name="date" nillable="true" type="tns2:DateInfo"/> <xsd:element name="title" nillable="true" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:schema> <xsd:schema targetNamespace="http://date.dictionary.com" xmlns="http://www.w3.org/2001/XMLSchema"> <xsd:complexType name="DateInfo"> <xsd:sequence> <xsd:element name="fromDate" nillable="true" type="xsd:string"/> <xsd:element name="toDate" nillable="true" type="xsd:string"/> </xsd:sequence> </xsd:complexType> </xsd:schema> </wsdl:types> ... </wsdl:definitions>
All Rights Reserved. Copyright (C) 2006, 2007, Hitachi, Ltd.