如何添加XML前綴到WCF消息序列化中的字段?如何向WCF消息序列化中的字段添加XML前綴?
我連接起來,從.NET一個Java Spring的web服務,以及一個對象,我通過與參數被序列化如你所願:
<MyClass>
<field1>Field 1 Value</field1>
<field2>Field 2 Value</field2>
</MyClass>
然而,網絡服務要求類和字段前綴命名空間,假設命名空間blah
,所以我要的是:
<blah:MyClass>
<blah:field1>Field 1 Value</blah:field1>
<blah:field2>Field 2 Value</blah:field2>
</blah:MyClass>
我怎樣才能做到這一點的WCF?有沒有辦法在我的課上調整XML序列化屬性?
編輯: WSDL對於這個特定的實體如下(編輯刪除特定的業務字段名,但一切是一樣的):
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:sch0="http://www.domain.com/app/schemas/entityone" xmlns:sch1="http://www.domain.com/app/schemas/types" xmlns:sch2="http://www.domain.com/app/schemas/query" xmlns:sch3="http://www.domain.com/app/schemas/entitytwo" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://www.domain.com/app/schemas/entityone" targetNamespace="http://www.domain.com/app/schemas/entityone">
<wsdl:types>
<schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:types="http://www.domain.com/app/schemas/types" attributeFormDefault="qualified" elementFormDefault="qualified" targetNamespace="http://www.domain.com/app/schemas/entityone" xmlns:tns="http://www.domain.com/app/schemas/entityone">
<import namespace="http://www.domain.com/app/schemas/types" />
<element name="TheClassName">
<complexType>
<sequence>
<element name="field1" type="string" />
<element name="field2" type="string" />
<element name="field3" type="string" />
<element name="field4" type="string" />
<element name="field5" type="string" />
<element name="field6" type="string" />
<element name="field7" type="string" />
<element name="field8" type="string" />
</sequence>
</complexType>
</element>
<wsdl:binding name="NameOfBindingHere" type="tns:ReturnTypeHere">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="OperationNameHere">
<soap:operation soapAction="" />
<wsdl:output name="ResponseTypeHere">
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
你可以編輯這個服務的WSDL來創建一個只包含失敗操作的WSDL,然後發佈編輯後的WSDL?瞭解這是RPC還是文檔服務等是非常重要的。 – 2010-09-30 19:00:23
@John,請參閱更新的問題 – Brandon 2010-09-30 19:09:40
您需要包含WSDL的其餘部分。這是將聲明這些名稱空間聲明的部分,等等。 – 2010-09-30 19:10:16