1

我们正在与另一家公司合作。我们的应用程序通过我们这边的 WCF 和另一边的自定义实现的 java wsdl 处理程序与其他应用程序通信。它们指定 wsdl 格式,其中一条规则是特定字符串不能包含超过 15 个字符。(通常是 60,但出于简单的示例原因,我取 15)

当我们尝试向他们发送以下字符串时,我们会收到一个错误,即根据 wsdl 字符串太长:

"example & test" > 这是一个14个字符的字符串,所以应该允许

microsoft wcf 解析器将其转换为"example & test". 此编码字符串长度为 18 个字符。

现在检查消息中定义的最大长度的标准行为是什么?是编码消息还是解码消息?我认为这是解码后的消息,但我不确定。如果它是编码消息,我们应该如何处理它以便我们知道我们必须如何拆分字符串?

4

1 回答 1

0

http://www.w3.org/TR/xmlschema-2/#rf-maxLength 4.3.3 maxLength

对于字符串和从字符串派生的数据类型,maxLength 以 [XML 1.0(第二版)] 中定义的字符单位测量

字符集 [定义:一个解析的实体包含文本,一个字符序列,可以表示标记或字符数据。]

读到我认为标准行为是解码为标记字符应该被视为单个字符。

因此,通常您在编码之前会进行任何拆分/截断。否则,如果您在编码字符的中间截断,您会遇到问题。我已经针对带有 BizTalk 的 WCF Web 服务对此进行了测试,并且可以使用比 maxLength 长的 XML 编码字符串。

听起来他们在解码之前就这样做了。因此,您可能必须先对其进行编码,然后在空白处将其拆分。

于 2010-04-15T02:14:05.570 回答