• 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏吧

如何在XML输出中显示属性的名称而不是“项目”

xml 来源:Aaron Chen 7次浏览

我正在编写一个WSDL文件,它正在工作。但是,输出结果并不完全符合我喜欢的内容。这样的话,我已经定义输出消息:如何在XML输出中显示属性的名称而不是“项目”

<message name="serviceResponse"> 
    <part name="code" type="xsd:string"/> 
    <part name="description" type="xsd:string"/> 
    <part name="results" element="tns:myProperty"/> 
</message> 

而且在<类型>标签,我有:

<xsd:element name="myProperty"> 
    <xsd:complexType> 
    <xsd:sequence> 
     <xsd:element name="name" type="xsd:string"/> 
     <xsd:element name="description" type="xsd:string"/> 
     <xsd:element name="id" type="xsd:int"/> 
     <xsd:element name="date" type="xsd:date"/> 
    </xsd:sequence> 
    </xsd:complexType> 
</xsd:element> 

对此,我得到:

<SOAP-ENV:serviceResponse> 
    <code xsi:type="xsd:string">001</code> 
    <description xsi:type="xsd:string">Successful</description> 
    <results SOAP-ENC:arrayType="SOAP-ENC:Array[2]" xsi:type="SOAP-ENC:Array"> 
    <item SOAP-ENC:arrayType="xsd:ur-type[7]" xsi:type="SOAP-ENC:Array"> 
     <item xsi:type="xsd:string">John</item> 
     <item xsi:type="xsd:string">Director</item> 
     <item xsi:type="xsd:int">21</item> 
     <item xsi:type="xsd:string">2012-10-16</item> 
    </item> 
    <item SOAP-ENC:arrayType="xsd:ur-type[7]" xsi:type="SOAP-ENC:Array"> 
     <item xsi:type="xsd:string">Smith</item> 
     <item xsi:type="xsd:string">Programmer</item> 
     <item xsi:type="xsd:int">88</item> 
     <item xsi:type="xsd:string">2012-10-18</item> 
    </item> 
    </results> 
</SOAP-ENV:serviceResponse></SOAP-ENV:Body> 

我会预期要达到这样的“效果”标签内以下,而不是一堆“项目” S:

<myProperty SOAP-ENC:arrayType="xsd:ur-type[7]" xsi:type="SOAP-ENC:Array"> 
    <name xsi:type="xsd:string">John</name> 
    <description xsi:type="xsd:string">Director</description> 
    <id xsi:type="xsd:int">21</id> 
    <date xsi:type="xsd:string">2012-10-16</date> 
</myProperty> 
<myProperty SOAP-ENC:arrayType="xsd:ur-type[7]" xsi:type="SOAP-ENC:Array"> 
    <name xsi:type="xsd:string">Smith</name> 
    <description xsi:type="xsd:string">Programmer</description> 
    <id xsi:type="xsd:int">88</id> 
    <date xsi:type="xsd:string">2012-10-18</date> 
</myProperty> 

任何人都可以请开灯吗?由于

===========解决方案如下:

我从观看另一篇文章解决了这个问题:WSDL list of complexType HOWTO- define, return from a service?

没有DTD定义所要求的。无论如何感谢so。

我所做的略有不同。我没有使用名为“myProperty”的元素,而是直接使用名称“myProperty”定义了一个complexType。它只是工作。

<xsd:complexType name="myProperty"> 
    <xsd:sequence> 
     <xsd:element name="name" type="xsd:string"/> 
     <xsd:element name="description" type="xsd:string"/> 
     <xsd:element name="id" type="xsd:int"/> 
     <xsd:element name="date" type="xsd:date"/> 
    </xsd:sequence> 
</xsd:complexType> 

<xsd:element name="serviceResponse"> 
    <xsd:complexType> 
     <xsd:sequence> 
      <xsd:element maxOccurs="unbounded" minOccurs="0" name="myResult" nillable="true" type="tns:myProperty"/> 
     </xsd:sequence> 
    </xsd:complexType> 
</xsd:element> 

输出正是我所期待的:

<myProperty xsi:type="ns1:myProperty"> 
    <name xsi:type="xsd:string">Smith</name> 
    <description xsi:type="xsd:string">Programmer</description> 
    <id xsi:type="xsd:int">88</id> 
    <date xsi:type="xsd:date">2012-10-18</date> 
</myProperty> 

版权声明:本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系管理员进行删除。
喜欢 (0)