XML-RPC规范(中文版)

王朝c#·作者佚名  2006-12-17
窄屏简体版  字體: |||超大  

(翻译:滴水 最后修改时间:2005-3-15 后续完善)

<?xml version='1.0'?><methodCall> <methodName>examples.getStateName</methodName> <params> <param> <value><i4>41</i4></value> </param> </params> </methodCall>

Tag

Type

Example

<i4> or <int>

four-byte signed integer

-12

<boolean>

0 (false) or 1 (true)

1

<string>

string

hello world

<double>

double-precision signed floating point number

-12.214

<dateTime.iso8601>

date/time

19980717T14:08:55

<base64>

base64-encoded binary

eW91IGNhbid0IHJlYWQgdGhpcyE=

<?xml version='1.0'?><methodResponse> <params> <param> <value><string>South Dakota</string></value> </param> </params> </methodResponse>

<?xml version='1.0'?><methodResponse> <fault> <value> <struct> <member> <name>faultCode</name> <value><int>4</int></value> </member> <member> <name>faultString</name> <value><string>Too many parameters.</string></value> </member> </struct> </value> </fault> </methodResponse>

We also wanted it to be an easy to implement protocol that could quickly be adapted to run in other environments or on other operating systems.

can contain a single <params>...' This is confusing. Can we leave out the <params>? No you cannot leave it out if the procedure executed successfully. There are only two options, either a response contains a <params> structure or it contains a <fault> structure. That's why we used the word 'can' in that sentence.

Is 'boolean' a distinct data type, or can boolean values be interchanged with integers (e.g. zero=false, non-zero=true)? Yes, boolean is a distinct data type. Some languages/environments allow for an easy coercion from zero to false and one to true, but if you mean true, send a boolean type with the value true, so your intent can't possibly be misunderstood.

What is the legal syntax (and range) for integers? How to deal with leading zeros? Is a leading plus sign allowed? How to deal with whitespace? An integer is a 32-bit signed number. You can include a plus or minus at the beginning of a string of numeric characters. Leading zeros are collapsed. Whitespace is not permitted. Just numeric characters preceeded by a plus or minus.

What is the legal syntax (and range) for floating point values (doubles)? How is the exponent represented? How to deal with whitespace? Can infinity and 'not a number' be represented? There is no representation for infinity or negative infinity or 'not a number'. At this time, only decimal point notation is allowed, a plus or a minus, followed by any number of numeric characters, followed by a period and any number of numeric characters. Whitespace is not allowed. The range of allowable values is implementation-dependent, is not specified.

What characters are allowed in strings? Non-printable characters? Null characters? Can a 'string' be used to hold an arbitrary chunk of binary data? Any characters are allowed in a string except < and &, which are encoded as &lt; and &amp;. A string can be used to encode binary data.

Does the 'struct' element keep the order of keys. Or in other words, is the struct 'foo=1, bar=2' equivalent to 'bar=2, foo=1' or not? The struct element does not preserve the order of the keys. The two structs are equivalent.

Can the <fault> struct contain other members than <faultCode> and <faultString>? Is there a global list of faultCodes? (so they can be mapped to distinct exceptions for languages like Python and Java)? A <fault> struct may not contain members other than those specified. This is true for all other structures. We believe the specification is flexible enough so that all reasonable data-transfer needs can be accomodated within the specified structures. If you believe strongly that this is not true, please post a message on the discussion group.

There is no global list of fault codes. It is up to the server implementer, or higher-level standards to specify fault codes.

What timezone should be assumed for the dateTime.iso8601 type? UTC? localtime? Don't assume a timezone. It should be specified by the server in its documentation what assumptions it makes about timezones.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航