@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

要素の繰り返しを表すには

1
投稿者投稿内容
WT
常連さん
会議室デビュー日: 2004/07/22
投稿数: 29
投稿日時: 2008-12-16 10:19
WSDLの書き方についてアドバイス頂きたく投稿します。

SOAP(XML)を使ってリモートサーバと通信を行おうとしています。
送信元から下記のようなXMLをSOAP-Envelopに包み送信したいと考えています。

<Parent index="1">
<Child>AAA</Child>
</Element>
<Parent index="2">
<Child>BBB</Child>
</Element>

上記のように要素を「index」によって繰り返し記述する場合、WSDLはどのように記述すればよいのでしょうか?
下記のように考えてみたのですが、「index」をあらわす記述が分からず、作成されたXMLは「index」が付いていないものとなってしまいました。

<xsd:complexType>
<xsd:sequence>
<xsd:element name="Parent" type="Child_Type"
minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="Child_Type">
<xsd:sequence>
<xsd:element name="Child" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>

propertyを使って要素を繰り返す場合のWSDLの記述方法をアドバイス下さい。
だっちょ
大ベテラン
会議室デビュー日: 2006/12/05
投稿数: 115
投稿日時: 2008-12-17 10:30
まず、WSDLのXMLデータではなくてXMLSchemaですね。
で、データも間違っているので、
簡単のためRoot要素にして、修正しておきます。
コード:
<Root>
 <Parent index="1"> 
  <Child>AAA</Child> 
 </Parent> 
 <Parent index="2"> 
  <Child>BBB</Child> 
 </Parent> 
</Root>



でこれに対応するSchemaとしてはたとえば

コード:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <xsd:element name="Root" type="Parent_Type"/>

 <xsd:complexType name="Parent_Type"> 
   <xsd:sequence> 
    <xsd:element name="Parent" type="Child_Type" minOccurs="0" maxOccurs="unbounded" /> 
   </xsd:sequence> 
 </xsd:complexType> 

 <xsd:complexType name="Child_Type"> 
  <xsd:sequence> 
   <xsd:element name="Child" type="xsd:string" /> 
  </xsd:sequence> 
   <xsd:attribute name="index" type="xsd:int" use="required"/>
 </xsd:complexType> 
</xsd:schema>





1

スキルアップ/キャリアアップ(JOB@IT)