这一个数据成员是我的数据的数据的合同中的一个的VB类的一个示例:供应不同的命名空间用于在WCF DataContract
<System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038"), _
System.SerializableAttribute(), _
System.Diagnostics.DebuggerStepThroughAttribute(), _
System.ComponentModel.DesignerCategoryAttribute("code"), _
System.Xml.Serialization.XmlTypeAttribute([Namespace]:="http://www.example.com/NS1"), _
System.Runtime.Serialization.DataContractAttribute([Namespace]:="http://www.example.com/NS1")> _
Partial Public Class SomeType
...
Private someMemberField As String
...
<DataMember(Order:=4)> _
Public Property SomeMember() As String
Get
Return Me.someMemberField
End Get
Set(value As String)
Me.someMemberField = value
End Set
End Property
End Class
WSDL变为(被http://www.example.com/NS1如预期命名空间):
<xs:complexType name="SomeType">
<xs:sequence>
...
<xs:element minOccurs="0" name="SomeMember" nillable="true" type="xs:string"/>
...
</xs:sequence>
</xs:complexType>
一个XML的例子是:
<SomeType xmlns="htttp://www.example.com/NS1">
...
<SomeMember>some text</SomeMember>
...
</Sometype>
这是完美的我。但是,我的客户端(不是WCF)需要DataMember的不同名称空间。像这样的XML例子:
<SomeType xmlns="http://www.example.com/NS1">
...
<SomeMember xmlns="http://www.example.com/NS2">some text</SomeMember>
...
</Sometype>
我相信,WSDL应该类似于此:
<xs:complexType name="SomeType">
<xs:sequence>
...
<xs:element minOccurs="0" name="SomeMember" nillable="true" type="xs:string" xmlns:q1="http://www.example.com/NS2"/>
...
</xs:sequence>
</xs:complexType>
我知道如何做到这一点对于复杂的数据类型。
我所要做的就是更改相应类的DataContractAttribute中的名称空间,这是我为非原始数据类型的成员所做的。
原始数据类型如String可能吗?
我无法更改DataMembers中的名称空间,我找不出任何其他方式为基本数据类型设置不同的名称空间。
但是,从XSD生成的XML示例确实包含基本数据类型成员中的名称空间。
有谁知道我怎么能得到这样的使用WCF的东西?
<SomeType xmlns="http://www.example.com/NS1">
...
<SomeMember xmlns="http://www.example.com/NS2">some text</SomeMember>
...
</Sometype>
由于提前,
费尔南多·马丁斯。