这是什么意思啊?
<xsd:element name="test" type="xsd:int" minOccurs="0" maxOccurs="unbounded"/>

解决方案 »

  1.   

    <complexType name="?">
      <sequence>
        <element name="x" type="int"/>
        <element name="x" type="double"/>
     <sequence>
    </complexType>   
      

  2.   

    没有必要,而且也不鼓励在Web Service中使用HashMap
    如果服务端和客户端都是java,可以使用HashMap,
    (里面都是简单对象不需要注册,如果有自定义对象则需要注册)
    如果是与其他语言交互,则不应使用HashMap,
    使用ValueObject(或valueObject数组)即可,或者嵌套的valueObject
    总之,尽量避免用HashMap
      

  3.   

    关键现在就是要定义hashmap结构。
    我知道怎么定义数组这些简单的数据结构。
    你知道如何定义吗?
      

  4.   

    你很固执的哦,呵呵。
    如果你两端都是Java,本来就不需要定义。
    如果另一端不是Java你定义了也没用。
    明白了么?
      

  5.   

    有一些明白的说.呵呵
    现在确定两端都是用Java.
    为什么不需要定义呢???
    用这段代码我可以生成一个数组.
    <xsd:element name="test" type="xsd:int" minOccurs="0" maxOccurs="unbounded"/>
    那么我如何用xml schema定义一个hashmap的数据结构呢???
      

  6.   

    大家都说了很多,还是没有我想要的答案,
    郁闷ing
      

  7.   

    看你这么执着,索性花点时间给你讲透彻。
    先给你一个参考描述:
    <schema targetNamespace="http://xml.apache.org/xml-soap" xmlns="http://www.w3.org/2001/XMLSchema">
      <import namespace="http://schemas.xmlsoap.org/soap/encoding/" /> 
    <complexType name="mapItem">
    <sequence>
      <element name="key" nillable="true" type="xsd:string" /> 
      <element name="value" nillable="true" type="xsd:string" /> 
      </sequence>
      </complexType>
    <complexType name="Map">
    <sequence>
      <element maxOccurs="unbounded" minOccurs="0" name="item" type="apachesoap:mapItem" /> 
    </sequence>
    </complexType>
    </schema>
    但是,即使记住这些也是没有意义的。
    这是因为WSDL是采用标准的XML Schema描述对象。
    不可能给出特定的Java性质的HashMap,
    在解析的过程中由各个SDK自行序列化。上面的例子就是Axis自行序列化的一个样式。
    你看到表面上它有一个key value 对,实际上它使用时并不局限于字符对。
    特别需要说明的是,在了解理论知识时可以手工编写一些WSDL
    但是在实际开发时一般并不是先写出WSDL的,
    这是因为,大多数的接口都是比较复杂的,手工编写是费力而且效果不好的工作。
    一般由开发人员定出接口,由依赖具体语言SDK自动生成WSDL。
    这也是Web 服务设计的初衷:机器生成,机器阅读。
    罗嗦这些,希望能对你有用。
      

  8.   

    哈哈,谢谢!
    但是较复杂的类型,sdk是无法生成正确的wsdl的,
    我觉得最终还是要回归到对xml schema的掌握.