WCF 架构公共元素始终为 null

WCF Schema common elements always null

我正在使用 xsd 生成 OperationContract 中可用的对象。 XSD 的地址、城市、州和邮编元素是常见的

<xs:element name="Address" nillable="true">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:maxLength value="50"/>
    </xs:restriction>
  </xs:simpleType>
</xs:element>

并在整个 XML 中使用。

<xs:element ref="Address"  />

当我编译模式时,类 使用公共元素正确生成。 当我 运行 服务时,OperationContext 包含来自客户端的预期请求:

      <NameLast>Last</NameLast>
      <NameFirst>First</NameFirst>
      <Address xmlns="http://tempuri.org/">123 2nd St</Address>
      <City xmlns="http://tempuri.org/">Somewhere</City>

然而,公共元素具有 xmlns 属性(如上所示),并且在接收到的对象中,所有公共元素都包含空值。

我的声誉不够高,无法显示屏幕截图,但所有不在公共元素中的数据都已正确传递。如NameLast = "Last", Address = Null.

我是 Schemas 的新手,希望得到任何指导。谢谢

我相信你想要的是这个,放在结束 </xs:schema> 标签之前:

<xs:simpleType name="AddressType">
  <xs:restriction base="xs:string">
    <xs:maxLength value="50"/>
  </xs:restriction>
</xs:simpleType>

并在整个架构中使用:

<xs:element name="Address" type="AddressType"  />