Adobe 38039927 Extended User Guide - Page 265

RPC server XML replies

Page 265 highlights

ADOBE FIREWORKS CS3 261 Extending Guide Data type Node name server obj object string string void void Example Description The server object data type. The value attribute is set to the object ID. The class attribute is optional. The server always specifies the object class when sending replies to the client. The client, however, is not required to specify the class when sending server object nodes to the server. The class attribute tells the client what properties and methods are available on an object. A string data type. It can contain a UTF-8-encoded string. If you include special characters, you must "escape" them (indicate that they are part of the string) according to the method described in the XML Data Model (from http://www.w3.org/XML/Datamodel.html). Most XML writing packages automatically do this. No value; no type. Cannot have any attributes or subelements. Parameters Parameters are simply data nodes with an order attribute. The order attribute identifies the order in which the parameters should be processed for the server. In this way, the RPC client can use any XML client library to build parameters in any order, and the RPC server retains the correct parameter order. The first parameter should have the order attribute set to 0; the second, to 1; and so on, as in this example: The set operation requires only one parameter, and the func operation may have zero or more parameters. RPC server XML replies After the RPC server processes an XML request, it packages the result as an XML fragment and sends it back to the client. If an error occurred during processing, the server returns an error code in the result XML. Otherwise, the reply node contains a single data node with the result of the operation. If the request doesn't require a return value, the reply node contains either a single void data node or no children nodes. For example, here is a successful reply: Here is a successful reply with a server object: Note: When the server returns a server object, it automatically retains the object on the client's behalf. That is, the object returned to the client is not destroyed until the client releases it with a release request, or until the client disconnects from the server. Therefore, the client should release a server object as soon as the client has finished sending requests related to that object (when the client is done "using" the object). Error codes If the server encounters an error when processing a request, the reply node (with the node name return) contains at most one error attribute, as in this example:

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315

ADOBE FIREWORKS CS3
Extending Guide
261
Parameters
Parameters are simply data nodes with an
order
attribute. The
order
attribute identifies the order in which the
parameters should be processed for the server. In this way, the RPC client can use any XML client library to build
parameters in any order, and the RPC server retains the correct parameter order. The first parameter should have
the
order
attribute set to 0; the second, to 1; and so on, as in this example:
<string order="1" value="bob" />
The
set
operation requires only one parameter, and the
func
operation may have zero or more parameters.
RPC server XML replies
After the RPC server processes an XML request, it packages the result as an XML fragment and sends it back to the
client. If an error occurred during processing, the server returns an error code in the result XML. Otherwise, the
reply node contains a single data node with the result of the operation. If the request doesn’t require a return value,
the reply node contains either a single void data node or no children nodes.
For example, here is a successful reply:
<return><string value="file://hd/foo/stuff/mydoc.png" /></return>
Here is a successful reply with a server object:
<return><obj value="23467" class="FireworksDocument" /></return>
Note:
When the server returns a server object, it automatically retains the object on the client's behalf. That is, the
object returned to the client is not destroyed until the client releases it with a release request, or until the client discon-
nects from the server. Therefore, the client should release a server object as soon as the client has finished sending
requests related to that object (when the client is done “using” the object).
Error codes
If the server encounters an error when processing a request, the reply node (with the node name
return
) contains
at most one
error
attribute, as in this example:
server
object
obj
<obj value="fw"
class="Fireworks" />
The server object data type. The
value
attribute is set to the object ID. The
class
attribute is optional. The server always specifies
the object class when sending replies to the
client. The client, however, is not required to
specify the class when sending server object
nodes to the server. The
class
attribute tells
the client what properties and methods are
available on an object.
string
string
<string value="foo"
/>
A string data type. It can contain a
UTF-8-encoded string. If you include special
characters, you must “escape” them (indicate
that they are part of the string) according to the
method described in the XML Data Model (from
Most XML writing packages automatically do
this.
void
void
<void />
No value; no type. Cannot have any attributes or
subelements.
Data type
Node name
Example
Description