我开发 WCF 客户端。我的客户应该验证传入的消息。
其中一条消息具有以下结构:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://www.w3.org/2003/05/soap-envelope" xmlns:SOAP-ENC="http://www.w3.org/2003/05/soap-encoding" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Header>...</SOAP-ENV:Header>
<SOAP-ENV:Body>
<OpDescriptionResponse>
<Field Name="DateTime" Type="xsd:dateTime">
</OpDescriptionResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
在这种情况下,客户端应该验证:“DateTime”字段的类型为“dateTime”,来自命名空间“ http://www.w3.org/2001/XMLSchema ”。
此响应在包含 XmlElement 数组的结构中反序列化。
但是我有一个问题:在消息被反序列化并且我收到了包含所有字段节点的相应变量之后,我无法确定前缀“xsd”的值,即如果我在回复和调用元素时采用与字段节点对应的 XMLElement 类型的任何元素。 GetNamespaceOfPrefix("xsd") 结果我得到空字符串。
反序列化后如何保存前缀的定义?
请帮助我克服这个问题。