EducationSearchは教育コースを検索し、コース名や価格、開催日程といった情報を取得する機能をSOAPにより提供するサービスです。
EducationSearchサービスの利用者(以下「リクエスター」と記述します)は、各EducationSearchサービスの提供者(以下「プロバイダー」と記述します)に対し、同じ方法でサービスを要求し、同じ形式で情報を受け取ることが出来ます。これによりリクエスターは、複数のプロバイダーに対し、横断的に教育コースの検索を行なうことが容易となります。
EducationSearchは以下の3種の定義により定義されます。
EducationSearchのプログラムインターフェイス定義をWSDLを用いて記述したファイルです。引数などの具体的な意味に関しては「3. インターフェイス詳細」を参照してください。
EducationSearchを利用して教育コースを検索した際の、検索結果として返されるXML文書について定義するXML schema文書です。詳細は「3. インターフェイス詳細」、「4. courseResult」を参照してください。
EducationSearchを利用して任意の教育コースの開催日程(スケジュール)の情報を要求した際の、結果として返されるXML文書について定義するXML schema文書です。詳細は「3. インターフェイス詳細」、「5. scheduleResult」を参照してください。
EducationSearchでは以下の二つのメッセージ(関数)が定義されています。
引数に指定された検索キーワードにより検索される教育コース(0件以上)の情報を戻します。
引数として、検索キーワードを文字列値として1つ指定します。
インターフェイス定義上は文字列値が戻されるように定義されています。ただこの戻される文字列値には、引数に指定した検索キーワードに基づき検索した結果を格納したXML文書が文字列値として格納されます。また検索結果を格納するXML文書は、courseResult.xsdの定義に基づいて作成されている必要があります。
戻り値の詳細については「4. courseResult」を参照してください。
プロバイダーは、引数として受け取った検索キーワードを元に管理している教育コースの情報を検索しますが、具体的な検索方法はプロバイダの実装に任されています。
引数に指定されたcourseCodeに一致する教育コースの情報、開催日程(0件以上)を戻します。
引数として、教育コースのコード(courseCode)を文字列値として1つ指定します。
インターフェイス定義上は文字列値が戻されるように定義されています。ただこの戻される文字列値には、引数に指定したcourseCodeに一致する教育コースの情報、開催日程を格納したXML文書が文字列値として格納されます。また検索結果を格納するXML文書は、scheduleResult.xsdの定義に基づいて作成されている必要があります。
戻り値の詳細については「5. scheduleResult」を参照してください。
教育コースの検索結果として戻されるXML文書のルート要素となります。courseResult要素内には、0回以上のcourse要素の繰返し、もしくは1つのerror要素のどちらか一方が含まれます。
course要素が0回以上の繰返しとして定義されているので、結果として戻す教育コースが1件も無い場合は、空要素のcourseResultのみといったことも可能です。
EducationSearchサービスのgetCourse関数から戻されるcourseResult文書が、courseResult.xsdで定義されている内容にしたがって作成されていることを示すため、名前空間として「http://www.r-ts.co.jp/schemas/EducationSearch/courseResult」をcourseResult要素に指定します。
courseResult要素の子要素で0回以上の繰返し要素です。教育コースの情報を格納します。
course要素は以下の子要素を含みます
course要素内で必須の要素です。要素内には教育コースを一意に識別するユニークキーとなる文字列値を1つ記述します。「一意に識別する」範囲は、その教育コースの情報を提供したプロバイダが管理する教育コース内において一意である必要があります。つまり他のプロバイダが提供した教育コース情報のcourseCodeと重複することは問題ありません。
course要素内で必須の要素です。要素内には教育コースのコース名を文字列値で1つ記述します。
course要素内で必須の要素です。要素内には教育コースを実際に提供する提供元の名前を、文字列値で1つ記述します。プロバイダが複数の教育コース提供者の情報を管理しているような場合、重要な項目となります。
course要素内で必須の要素です。要素内には教育コースの開催期間(日数)を数値で1つ記述します。半日の場合は0.5と記述します。
また、日数による表記が適切ではない教育コースの場合、0を記述しておきdetailURLで示される文書にその詳細を記述します。
course要素内で必須の要素です。要素内には教育コースの受講料を符号なし整数値で1つ指定します。
course要素内で必須の要素です。要素内には教育コースについて、より詳細に記述されている文書を指定するURLを1つ記述します。もし特に用意されていない場合は、空要素としてdetailURL要素を記述します。
courseResult要素内にcourse要素が含まれない場合に必須となる要素です。教育コースの検索時に何らかの問題が発生した場合に、その問題に関するメッセージを文字列値としてerror要素内に記述します。
教育コースの検索結果として戻されるXML文書のルート要素となります。courseResult要素内には、1つのcourse要素、もしくは1つのerror要素のどちらか一方が含まれます。
EducationSearchサービスのgetSchedule関数から戻されるscheduleResult文書が、scheduleResult.xsdで定義されている内容にしたがって作成されていることを示すため、名前空間として「http://www.r-ts.co.jp/schemas/EducationSearch/scheduleResult」をscheduleResult要素に指定します。
scheduleResult要素内にerror要素が含まれない場合に必須となる要素です。
courseResult要素内のcourse要素に比べ、schedule要素が追加されている以外は全く同じ要素を含み、記述される内容も同じものとなります。ただ情報としてはその時点での最新情報を記述します(価格が改定された場合等)。
course要素内で必須の要素です。要素内には教育コースを一意に識別するユニークキーとなる文字列値を1つ記述します。「一意に識別する」範囲は、その教育コースの情報を提供したプロバイダが管理する教育コース内において一意である必要があります。つまり他のプロバイダが提供した教育コース情報のcourseCodeと重複することは問題ありません。
course要素内で必須の要素です。要素内には教育コースのコース名を文字列値で1つ記述します。
course要素内で必須の要素です。要素内には教育コースを実際に提供する提供元の名前を、文字列値で1つ記述します。プロバイダが複数の教育コース提供者の情報を管理しているような場合、重要な項目となります。
course要素内で必須の要素です。要素内には教育コースの開催期間(日数)を数値で1つ記述します。半日の場合は0.5と記述します。
また、日数による表記が適切ではない教育コースの場合、0を記述しておきdetailURLで示される文書にその詳細を記述します。
course要素内で必須の要素です。要素内には教育コースの受講料を符号なし整数値で1つ指定します。
course要素内で必須の要素です。要素内には教育コースについて、より詳細に記述されている文書を指定するURLを1つ記述します。もし特に用意されていない場合は、空要素としてdetailURL要素を記述します。
0回以上の繰返し要素です。教育コースの開催日程の情報を格納します。
course要素の子要素で0回以上の繰返し要素です。教育コースの開催日程の情報を格納します。予定されている開催日程が特にない場合、schedule要素は存在しなくて構いません。また、どのくらいの期間までの開催日程を戻すかは(向こう3ヶ月の間に開催されるもの等)、プロバイダの判断に任されます。ただ、過去のものに関しては戻す必要はありません。
schedule要素は以下の子要素を含みます
schedule要素内で必須の要素です。要素内には開催日程を一意に識別するユニークキーとなる文字列値を1つ記述します。「一意に識別する」範囲は、開催日程が属するそれぞれの教育コース内で一意である必要があります。つまり他の教育コースの開催日程のclassCodeと重複することは問題ありません。
schedule要素内で必須の要素です。要素内にはその開催日程の開始日を日付値で1つ記述します。
日付値の形式は"2002-04-30"のように、"YYYY-MM-DD"の形式で記述します。
schedule要素内で必須の要素です。要素内にはその開催日程の終了日を日付値で1つ記述します。
日付値の形式は"2002-04-30"のように、"YYYY-MM-DD"の形式で記述します。
schedule要素内で必須の要素です。要素内には開催日程の開催場所を文字列値で1つ記述します。開催場所の詳細な住所を記述する必要はなく、最低限の記述で構いません。
schedule要素内で必須の要素です。要素内にはその開催日程の受講申込みの可否を表わす文字列値を、下記のものから1つ選択し記述します。
courseResult要素内にcourse要素が含まれない場合に必須となる要素です。教育コースの検索時に何らかの問題が発生した場合に、その問題に関するメッセージを文字列値としてerror要素内に記述します。
getCourseメッセージの戻り値として返されるXML文書の例を以下に記載します。
<?xml version="1.0" encoding="UTF-8"?>
<courseResult xmlns="http://www.r-ts.co.jp/schemas/EducationSearch/courseResult" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.r-ts.co.jp/schemas/EducationSearch/courseResult courseResult.xsd">
<course>
<courseCode>ES001</courseCode>
<courseName>EducationSearch入門</courseName>
<courseProvider>(株)○△研修サービス</courseProvider>
<days>1</days>
<price>50000</price>
<detailURL>http://www.educationsearch.com/course/ES001.html</detailURL>
</course>
<course>
<courseCode>ES002</courseCode>
<courseName>EducationSearchリクエスター開発</courseName>
<courseProvider>(株)○△研修サービス</courseProvider>
<days>2</days>
<price>100000</price>
<detailURL>http://www.educationsearch.com/course/ES002.html</detailURL>
</course>
<course>
<courseCode>ES003</courseCode>
<courseName>EducationSearchプロバイダー構築</courseName>
<courseProvider>(株)○△研修サービス</courseProvider>
<days>3</days>
<price>150000</price>
<detailURL>http://www.educationsearch.com/course/ES003.html</detailURL>
</course>
</courseResult>
<?xml version="1.0" encoding="UTF-8"?>
<courseResult xmlns="http://www.r-ts.co.jp/schemas/EducationSearch/courseResult" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.r-ts.co.jp/schemas/EducationSearch/courseResult courseResult.xsd"/>
「1件も教育コースが戻されない」場合をエラーとして扱った場合の例です。
<?xml version="1.0" encoding="UTF-8"?>
<courseResult xmlns="http://www.r-ts.co.jp/schemas/EducationSearch/courseResult" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.r-ts.co.jp/schemas/EducationSearch/courseResult courseResult.xsd">
<error>検索キーワード"error"に該当する教育コースがありませんでした。</error>
</courseResult>
getScheduleメッセージの戻り値として返されるXML文書の例を以下に記載します。
<?xml version="1.0" encoding="UTF-8"?>
<scheduleResult xmlns="http://www.r-ts.co.jp/schemas/EducationSearch/scheduleResult" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.r-ts.co.jp/schemas/EducationSearch/scheduleResult scheduleResult.xsd ">
<course>
<courseCode>ES002</courseCode>
<courseName>EducationSearchリクエスター開発</courseName>
<courseProvider>(株)○△研修サービス</courseProvider>
<days>2</days>
<price>100000</price>
<detailURL>http://www.educationsearch.com/course/ES002.html</detailURL>
<schedule>
<classCode>ES00201</classCode>
<from>2002-06-11</from>
<to>2002-06-12</to>
<place>東京会場</place>
<status>1</status>
</schedule>
<schedule>
<classCode>ES00202</classCode>
<from>2002-06-18</from>
<to>2002-06-19</to>
<place>大阪会場</place>
<status>0</status>
</schedule>
<schedule>
<classCode>ES00203</classCode>
<from>2002-06-25</from>
<to>2002-06-26</to>
<place>横浜会場</place>
<status>0</status>
</schedule>
<schedule>
<classCode>ES00204</classCode>
<from>2002-07-02</from>
<to>2002-07-03</to>
<place>東京会場</place>
<status>0</status>
</schedule>
<schedule>
<classCode>ES00205</classCode>
<from>2002-07-09</from>
<to>2002-07-10</to>
<place>大阪会場</place>
<status>2</status>
</schedule>
</course>
</scheduleResult>
<?xml version="1.0" encoding="UTF-8"?>
<scheduleResult xmlns="http://www.r-ts.co.jp/schemas/EducationSearch/scheduleResult" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.r-ts.co.jp/schemas/EducationSearch/scheduleResult scheduleResult.xsd ">
<course>
<courseCode>ES003</courseCode>
<courseName>EducationSearchプロバイダー構築</courseName>
<courseProvider>(株)○△研修サービス</courseProvider>
<days>3</days>
<price>150000</price>
<detailURL>http://www.educationsearch.com/course/ES003.html</detailURL>
</course>
</scheduleResult>
<?xml version="1.0" encoding="UTF-8"?>
<scheduleResult xmlns="http://www.r-ts.co.jp/schemas/EducationSearch/scheduleResult" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.r-ts.co.jp/schemas/EducationSearch/scheduleResult scheduleResult.xsd ">
<error>courseCode"ER001"に該当する教育コースはありません。</error>
</scheduleResult>