-
Notifications
You must be signed in to change notification settings - Fork 27
Expand file tree
/
Copy pathsource.opml
More file actions
1110 lines (1108 loc) · 68 KB
/
source.opml
File metadata and controls
1110 lines (1108 loc) · 68 KB
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
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- OPML generated by OPML Editor v10.1b19 on Mon, 25 Mar 2024 02:24:08 GMT -->
<!--
Hi this is Dave Winer. I write all my project code in an outliner, which
generates all the files that make up this GitHub project. You'll see a
source.opml file like this in each of my projects. It contains the outline
source that the repo files were generated from. This is the most logical place
to store them. You can read the code in any outliner that supports OPML, which
includes https://drummer.land. You can use the Open URL command in
Drummer's File menu to open the "raw" version of this file straight from the
GitHub repo.
-->
<opml version="2.0">
<head>
<title>nodeEditor: xmlRpcDocs</title>
<dateCreated>Sat, 21 Dec 2019 15:08:39 GMT</dateCreated>
<dateModified>Mon, 25 Mar 2024 02:24:08 GMT</dateModified>
<ownerName>Dave Winer</ownerName>
<ownerId>http://davewiner.com/</ownerId>
<expansionState>1, 6, 9, 12, 14</expansionState>
<vertScrollState>1</vertScrollState>
<windowTop>78</windowTop>
<windowLeft>664</windowLeft>
<windowBottom>1236</windowBottom>
<windowRight>1960</windowRight>
</head>
<body>
<outline text="/scripting.com/code/xmlrpc/">
<outline text="readme.md">
<outline text="# What is XML-RPC? ">
<outline text="It's a <a href="http://xmlrpc.com/spec.md">spec</a> and a set of implementations that allow software running on disparate operating systems, running in different environments to make procedure calls over the Internet."/>
<outline text="It's remote procedure calling using HTTP as the transport and XML as the encoding. XML-RPC is designed to be as simple as possible, while allowing complex data structures to be transmitted, processed and returned."/>
</outline>
<outline text="### JavaScript implementation">
<outline text="Starting in 2019, there's a new implementation of XML-RPC in JavaScript.">
<outline text="* Client and server <a href="https://www.npmjs.com/package/davexmlrpc">for Node.js</a>."/>
<outline text="* Client for the <a href="https://github.com/scripting/xml-rpc/tree/master/client">browser</a>."/>
<outline text="* Pure JavaScript."/>
<outline text="* Supports XML and JSON encoding."/>
<outline text="* New debugger and validation suite. "/>
<outline text="* Example code."/>
<outline text="* Written by one of the <a href="http://scripting.com/?tab=about">designers</a> of the protocol."/>
</outline>
</outline>
<outline text="### Example client">
<outline text="Here's code that makes a simple XML-RPC call in a Node.js app.">
<outline text="<pre>[[http://scripting.com/code/xmlrpc/examples/nodeclient/client.js]]</pre>"/>
</outline>
<outline text="It sends a call to the demo server, betty.userland.com. "/>
<outline text="The procedure it calls is "examples.getStateName," with a single parameter, the number 5."/>
<outline text="The call will be made in XML (it could also use JSON if we know the server supports it). "/>
<outline text="When the server returns, the callback receives the standard Node error object in the first param, and if there was no error, the data returned through XML-RPC in the second parameter."/>
</outline>
<outline text="### Example server">
<outline text="Here's the code for a simple XML-RPC server. "/>
<outline text="<pre>[[http://scripting.com/code/xmlrpc/examples/simple/simple.js]]</pre>"/>
<outline text="Here's pseudo-code that calls this service. It returns THIS IS A TEST.">
<outline text="<pre>["xmlrpc://localhost:1417/rpc2"].uppercase ("this is a test")</pre>"/>
</outline>
</outline>
<outline text="### Simple XML-RPC debugger">
<outline text="I've put up a <a href="http://scripting.com/code/xmlrpcdebugger/">simple app</a> that lets you try calling an XML-RPC procedure from an HTML form, where you supply the URL of the endpoint, the verb you want to call, and its parameters as a JavaScript expression. "/>
<outline text="It then displays the result in JSON in a box below. "/>
<outline text="If there's an error message it's displayed in red."/>
<outline text="You can try calling these routines on betty.scripting.com (it's the default endpoint):">
<outline text="1. examples.getStateName, params = 31"/>
<outline text="2. examples.getStateNames, params = [12, 22, 32, 42]"/>
<outline text="3. examples.getStateList, params = [\[12, 22, 32, 42]\] "/>
<outline text="4. examples.getStateStruct, params = [{state1: 3, state2: 42}] "/>
<outline text="5. examples.getStateName, params = 900 (error)"/>
<outline text="5. noSuchName (error)"/>
</outline>
<outline text="If you open the JavaScript console, you'll see the actual XML-RPC cals, in XML, as they go over the wire. <a href="http://scripting.com/images/2018/05/30/xmlRpcOverTheWire.png">Screen shot</a>."/>
</outline>
<outline text="### How params work in the xmlRpcClient">
<outline text="The third param to the xmlRpcClient function is either a value or a list of values."/>
<outline text="If it's a value, the XML-RPC procedure is called with a single parameter."/>
<outline text="If it's a list with N elements, the procedure is called with N params. "/>
<outline text="If you want to call a procedure with a single param that's a list, send a list with a single element that's the list. It's the one weird case for this calling convention, and is illustrated with the third call, above."/>
</outline>
<outline text="### Using JSON in place of XML">
<outline text="The XML-RPC standard specifies using XML, of course, but in this implementation, as an experiment, you can also use JSON."/>
<outline text="When processing a request, we look at the first non-whitespace character. If it's a left curly brace, we treat it as JSON, not XML."/>
<outline text="I haven't written a spec for the JSONified version, but I have created a <a href="http://scripting.com/misc/xmlrpc-in-json.html">cribsheet</a> with examples that I used to guide the implementation. "/>
<outline text="Two types, &lt;base64> and &lt;dateTime.iso8601> are represented as strings. There is no way for the toolkit to know they are binary data or dates. This means that the XML and JSON versions are not exactly the same. Not sure what the implications of this will be. I wrote up the issue <a href="http://scripting.com/2018/06/10/152333.html">on Scripting News</a>."/>
</outline>
<outline text="### Please help test for interop">
<outline text="If you're running XML-RPC in your world, could you try testing against the server "/>
<outline text="I have running at betty.scripting.com. The server is accessible through port 80. The calls it handles are exactly the ones handled by the userland version of the test server. Demo <a href="https://github.com/scripting/xml-rpc/blob/master/client/code.js">code</a> that calls the actual server is provided, in JavaScript."/>
<outline text="The goal is to replace betty.userland.com with the one running here. But only after enough testing to be confident that it makes a good reference server. "/>
<outline text="If you have success, or find problems, please post a note in the <a href="https://github.com/scripting/xml-rpc/issues">issues section</a> here. Thanks!"/>
</outline>
<outline text="### How to participate">
<outline text="I started a page at <a href="http://reboot.xmlrpc.com/">reboot.xmlrpc.com</a> with links to new stuff related to this work. "/>
<outline text="Read Eric Kidd's fantastic <a href="https://tldp.org/HOWTO/XML-RPC-HOWTO/index.html">XML-RPC HowTo</a>."/>
<outline text="Test your implementation on the XML-RPC Validator page."/>
</outline>
<outline text="### The original site">
<outline text="The original site, dating back to 1998, is <a href="http://1998.xmlrpc.com/">preserved</a>. "/>
</outline>
<outline text="### Lest anyone forget ">
<outline text="The first implementation of XML-RPC was in <a href="http://frontier.userland.com/stories/storyReader$101">Frontier</a>, in April 1998. "/>
</outline>
<outline text="### Questions, comments?">
<outline text="Post an <a href="https://github.com/scripting/xml-rpc/issues">issue</a> here. "/>
</outline>
</outline>
<outline text="spec.md">
<outline text="<i>Tue, Jun 15, 1999; by Dave Winer.</i> "/>
<outline text="# XML-RPC Specification">
<outline text="<i><a href="#update3">Updated 6/30/03 DW</a></i><br><i><a href="#update2">Updated 10/16/99 DW</a></i><br><i><a href="#update1">Updated 1/21/99 DW</a></i>"/>
<outline text="This specification documents the XML-RPC protocol implemented in <a href="http://frontier.userland.com/">UserLand Frontier</a> 5.1. "/>
<outline text="For a non-technical explanation, see <a href="http://davenet.userland.com/1998/07/14/xmlRpcForNewbies">XML-RPC for Newbies</a>. "/>
<outline text="This page provides all the information that an implementor needs."/>
<outline text="### Overview">
<outline text="XML-RPC is a Remote Procedure Calling protocol that works over the Internet."/>
<outline text="An XML-RPC message is an HTTP-POST request. The body of the request is in XML. A procedure executes on the server and the value it returns is also formatted in XML."/>
<outline text="Procedure parameters can be scalars, numbers, strings, dates, etc.; and can also be complex record and list structures."/>
</outline>
<outline text="### Request example">
<outline text="Here's an example of an XML-RPC request:"/>
<outline text="<%includeExample ("example1")%>"/>
</outline>
<outline text="### Header requirements">
<outline text=""/>
<outline text="The format of the URI in the first line of the header is not specified. For example, it could be empty, a single slash, if the server is only handling XML-RPC calls. However, if the server is handling a mix of incoming HTTP requests, we allow the URI to help route the request to the code that handles XML-RPC requests. (In the example, the URI is /RPC2, telling the server to route the request to the "RPC2" responder.)"/>
<outline text=""/>
<outline text="A User-Agent and Host must be specified. "/>
<outline text=""/>
<outline text="The Content-Type is text/xml. "/>
<outline text=""/>
<outline text="The Content-Length must be specified and must be correct."/>
<outline text=""/>
</outline>
<outline text="### Payload format">
<outline text=""/>
<outline text="The payload is in XML, a single &lt;methodCall> structure."/>
<outline text=""/>
<outline text="The &lt;methodCall> must contain a &lt;methodName> sub-item, a string, containing the name of the method to be called. The string may only contain identifier characters, upper and lower-case A-Z, the numeric characters, 0-9, underscore, dot, colon and slash. It's entirely up to the server to decide how to interpret the characters in a methodName. "/>
<outline text=""/>
<outline text="For example, the methodName could be the name of a file containing a script that executes on an incoming request. It could be the name of a cell in a database table. Or it could be a path to a file contained within a hierarchy of folders and files."/>
<outline text=""/>
<outline text="If the procedure call has parameters, the &lt;methodCall> must contain a &lt;params> sub-item. The &lt;params> sub-item can contain any number of &lt;param>s, each of which has a &lt;value>. "/>
<outline text=""/>
</outline>
<outline text="### <a name="scalars">Scalar &lt;value>s</a>">
<outline text=""/>
<outline text="&lt;value>s can be scalars, type is indicated by nesting the value inside one of the tags listed in this table:"/>
<outline text=""/>
<outline text="<table cellspacing=3 border=0>"/>
<outline text="<tr><td valign="top"><b>Tag</b></td><td valign="top" width="35%"><b>Type</b></td><td valign="top"><b>Example</b></td></tr>"/>
<outline text=""/>
<outline text="<tr><td valign="top">&lt;i4> or &lt;int></td><td valign="top" width="35%">four-byte signed integer</td><td valign="top">-12</td></tr>"/>
<outline text=""/>
<outline text="<tr><td valign="top">&lt;boolean></td><td valign="top">0 (false) or 1 (true)</td><td valign="top">1</td></tr>"/>
<outline text=""/>
<outline text="<tr><td valign="top">&lt;string></td><td valign="top">string</td><td valign="top">hello world</td></tr>"/>
<outline text=""/>
<outline text="<tr><td valign="top">&lt;double></td><td valign="top">double-precision signed floating point number</td><td valign="top">-12.214</td></tr>"/>
<outline text=""/>
<outline text="<tr><td valign="top">&lt;dateTime.iso8601></td><td valign="top">date/time</td><td valign="top">19980717T14:08:55</td></tr>"/>
<outline text=""/>
<outline text="<tr><td valign="top">&lt;base64></td><td valign="top">base64-encoded binary</td><td valign="top">eW91IGNhbid0IHJlYWQgdGhpcyE=</td></tr>"/>
<outline text="</table>"/>
<outline text=""/>
<outline text="If no type is indicated, the type is string."/>
<outline text=""/>
</outline>
<outline text="### &lt;struct>s">
<outline text="A value can also be of type &lt;struct>."/>
<outline text="A &lt;struct> contains &lt;member>s and each &lt;member> contains a &lt;name> and a &lt;value>. "/>
<outline text="Here's an example of a two-element &lt;struct>:"/>
<outline text="<%includeExample ("example2")%>"/>
<outline text="&lt;struct>s can be recursive, any &lt;value> may contain a &lt;struct> or any other type, including an &lt;array>, described below."/>
</outline>
<outline text="### &lt;array>s">
<outline text="A value can also be of type &lt;array>."/>
<outline text="An &lt;array> contains a single &lt;data> element, which can contain any number of &lt;value>s."/>
<outline text="Here's an example of a four-element array:"/>
<outline text="<%includeExample ("example3")%>"/>
<outline text="&lt;array> elements do not have names. "/>
<outline text="You can mix types as the example above illustrates."/>
<outline text="&lt;arrays>s can be recursive, any value may contain an &lt;array> or any other type, including a &lt;struct>, described above."/>
</outline>
<outline text="### Response example">
<outline text="Here's an example of a response to an XML-RPC request:"/>
<outline text="<%includeExample ("example4")%> "/>
</outline>
<outline text="### Response format">
<outline text="Unless there's a lower-level error, always return 200 OK."/>
<outline text="The Content-Type is text/xml. Content-Length must be present and correct."/>
<outline text="The body of the response is a single XML structure, a &lt;methodResponse>, which can contain a single &lt;params> which contains a single &lt;param> which contains a single &lt;value>."/>
<outline text="<a name="faults"></a>The &lt;methodResponse> could also contain a &lt;fault> which contains a &lt;value> which is a &lt;struct> containing two elements, one named &lt;faultCode>, an &lt;int> and one named &lt;faultString>, a &lt;string>."/>
<outline text="A &lt;methodResponse> can not contain both a &lt;fault> and a &lt;params>."/>
</outline>
<outline text="### Fault example">
<outline text="<%includeExample ("example5")%>"/>
</outline>
<outline text="### <a name="goals">Strategies/Goals</a>">
<outline text=""/>
<outline text="<i>Firewalls.</i> The goal of this protocol is to lay a compatible foundation across different environments, no new power is provided beyond the capabilities of the CGI interface. Firewall software can watch for POSTs whose Content-Type is text/xml. "/>
<outline text=""/>
<outline text="<i>Discoverability.</i> We wanted a clean, extensible format that's very simple. It should be possible for an HTML coder to be able to look at a file containing an XML-RPC procedure call, understand what it's doing, and be able to modify it and have it work on the first or second try. "/>
<outline text=""/>
<outline text="<i>Easy to implement.</i> 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."/>
<outline text=""/>
</outline>
<outline text="### <a name="update1">Updated 1/21/99 DW</a>">
<outline text="The following questions came up on the UserLand <a href="http://discuss.userland.com/">discussion group</a> as XML-RPC was being implemented in Python. <ul>"/>
<outline text="<li>The Response Format section says "The body of the response is a single XML structure, a &lt;methodResponse>, which <i>can</i> contain a single &lt;params>..." This is confusing. Can we leave out the &lt;params>?"/>
<outline text="No you cannot leave it out if the procedure executed successfully. There are only two options, either a response contains a &lt;params> structure or it contains a &lt;fault> structure. That's why we used the word "can" in that sentence."/>
<outline text="<li>Is "boolean" a distinct data type, or can boolean values be interchanged with integers (e.g. zero=false, non-zero=true)? "/>
<outline text="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."/>
<outline text="<li>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? "/>
<outline text="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."/>
<outline text="<li>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? "/>
<outline text="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."/>
<outline text="<li>What characters are allowed in strings? Non-printable characters? Null characters? Can a "string" be used to hold an arbitrary chunk of binary data? "/>
<outline text="Any characters are allowed in a string except &lt; and &, which are encoded as &amp;lt; and &amp;amp;. A string can be used to encode binary data."/>
<outline text="<li>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? "/>
<outline text="The struct element does not preserve the order of the keys. The two structs are equivalent."/>
<outline text="<li>Can the &lt;fault> struct contain other members than &lt;faultCode> and &lt;faultString>? Is there a global list of faultCodes? (so they can be mapped to distinct exceptions for languages like Python and Java)? "/>
<outline text="A &lt;fault> struct <b>may not</b> 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."/>
<outline text="There is no global list of fault codes. It is up to the server implementer, or higher-level standards to specify fault codes."/>
<outline text="<li>What timezone should be assumed for the dateTime.iso8601 type? UTC? localtime? "/>
<outline text="Don't assume a timezone. It should be specified by the server in its documentation what assumptions it makes about timezones."/>
<outline text="</ul>"/>
<outline text=""/>
</outline>
<outline text="### Additions">
<outline text="<ul>"/>
<outline text="<li>&lt;base64> type. 1/21/99 DW."/>
<outline text="</ul>"/>
</outline>
<outline text="### <a name="update3">Updated 6/30/03 DW</a>">
<outline text=""/>
<outline text="Removed "ASCII" from definition of string."/>
<outline text=""/>
<outline text="Changed copyright dates, below, to 1999-2003 from 1998-99."/>
<outline text=""/>
</outline>
<outline text="### <a name="update2">Copyright and disclaimer</a>">
<outline text="&copy; Copyright 1998-2003 UserLand Software. All Rights Reserved."/>
<outline text="This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and these paragraphs are included on all such copies and derivative works. "/>
<outline text="This document may not be modified in any way, such as by removing the copyright notice or references to UserLand or other organizations. Further, while these copyright restrictions apply to the written XML-RPC specification, no claim of ownership is made by UserLand to the protocol it describes. Any party may, for commercial or non-commercial purposes, implement this protocol without royalty or license fee to UserLand. The limited permissions granted herein are perpetual and will not be revoked by UserLand or its successors or assigns."/>
<outline text="This document and the information contained herein is provided on an "AS IS" basis and USERLAND DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE."/>
</outline>
</outline>
</outline>
<outline text="docs/xml-rpc-in-json.md">
<outline text="<i>June 2018 by Dave Winer</i> "/>
<outline text="# XML-RPC-in-JSON examples">
<outline text="The new <a href="/">JavaScript toolkit</a> for XML-RPC supports a <a href="/#using-json-in-place-of-xml">JSON syntax</a>."/>
<outline text="Below are five examples first showing the standard XML-RPC syntax followed by the experimental JavaScript syntax."/>
<outline text="### Single param">
<outline text="<%includeExample ("example6")%>"/>
<outline text="<%includeExample ("example7")%>"/>
</outline>
<outline text="### Param is an array">
<outline text="<%includeExample ("example8")%>"/>
<outline text="<%includeExample ("example9")%>"/>
</outline>
<outline text="### Param is a struct">
<outline text="<%includeExample ("example10")%>"/>
<outline text="<%includeExample ("example11")%>"/>
</outline>
<outline text="### Normal, non-error response">
<outline text="<%includeExample ("example12")%>"/>
<outline text="<%includeExample ("example13")%>"/>
</outline>
<outline text="### Error response">
<outline text="<%includeExample ("example14")%>"/>
<outline text="<%includeExample ("example15")%>"/>
</outline>
</outline>
</outline>
<outline text="docs/guidetolegacysite.md">
<outline text="# The 1998 XML-RPC site ">
<outline text="Here are links to archived pages on the <a href="http://1998.xmlrpc.com/">original version</a> of the XML-RPC site to make them easier to find and review. Most of this material is not replicated on the new site. "/>
<outline text=""/>
<outline text="* <a href="http://1998.xmlrpc.com/howTheWebBugSimulatorWorks.html">How the Web Bug Simulator works</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/alidl.html">RFC: A Little IDL</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/callForEndorsements.html">Call for Endorsements</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/default.html">XML-RPC Home</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/metaWeblogApi.html">RFC: MetaWeblog API</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/davesSoapJournalPart1.html">Dave's SOAP Journal, part 1</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/metaWeblogNewMediaObject.html">RFC: metaWeblog.newMediaObject</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/subsHarmonizer.html">RFC: Subscriptions harmonizer</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/bdgChangeNotes.html">BDG Change Notes</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/aggregatorApi.html">XML-RPC interface for the NewsRiver aggregator</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/xmlRpcMan.html">The XML-RPC Man</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/mttf.html">XML-RPC interface for MailToTheFuture</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/validator1Docs.html">XML-RPC validation suite</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/googleGateway.html">XML-RPC Gateway for the Google API</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/weblogsComForRss.html">Weblogs.Com for RSS</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/mailList.html">Mail lists</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/bootstrappingTheTwoWayWeb.html">Bootstrapping the Two-Way-Web</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/weblogsCom.html">Weblogs.Com XML-RPC interface</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/manilaRpcSpec.html">Manila-RPC interface</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/aBusyDevelopersGuideToSoap.html">A Busy Developer's Guide to SOAP 1.1</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/rebuttalToRest.html">Rebuttal to REST</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/error.html">404 not found</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/stateApril2001.html">The State of XML-RPC, April 2001</a>"/>
<outline text="* <a href="http://1998.xmlrpc.com/spec.html">XML-RPC Specification</a>"/>
</outline>
</outline>
<outline text="requestexample.html" isComment="true">
<outline text="<html>">
<outline text="<head>">
<outline text="<style>">
<outline text="pre {">
<outline text="font-family: "Monaco";"/>
<outline text="font-size: 12px;"/>
<outline text="margin-top: 100px;"/>
<outline text="margin-left: auto;"/>
<outline text="margin-right: auto;"/>
<outline text="width: 500px;"/>
<outline text="}"/>
</outline>
<outline text=".divHttpRequest {">
<outline text="}"/>
</outline>
<outline text="</style>"/>
</outline>
<outline text="</head>"/>
</outline>
<outline text="<body>"/>
<outline text="<pre>"/>
<outline text="POST /RPC2 HTTP/1.0"/>
<outline text="User-Agent: Frontier/5.1.2 (WinNT)"/>
<outline text="Host: betty.userland.com"/>
<outline text="Content-Type: text/xml"/>
<outline text="Content-length: 181"/>
<outline text=""/>
<outline text="&lt;?xml version="1.0"?>"/>
<outline text="&lt;methodCall>">
<outline text="&lt;methodName>examples.getStateName&lt;/methodName>"/>
<outline text="&lt;params>">
<outline text="&lt;param>">
<outline text="&lt;value>&lt;i4>41&lt;/i4>&lt;/value>"/>
<outline text="&lt;/param>"/>
</outline>
<outline text="&lt;/params>"/>
</outline>
<outline text="&lt;/methodCall>"/>
</outline>
<outline text="</pre>"/>
<outline text="<div class="divHttpRequest">">
<outline text="</div>"/>
</outline>
<outline text="</body>"/>
<outline text="</html>"/>
</outline>
</outline>
<outline text="tmp.md" isComment="true">
<outline text="one"/>
<outline text="two"/>
<outline text="three"/>
<outline text="<%includeExample ("example1")%>"/>
<outline text="<%mymacro ("Bill Di Blasio")%>"/>
<outline text="fucking"/>
<outline text="a"/>
</outline>
</outline>
<outline text="dropbox:miami:pagepark:domains:xmlrpc.com:" isComment="true">
<outline text="#mdtemplate.html">
<outline text="<html>">
<outline text="<head>">
<outline text="<title>[%title%]</title>"/>
<outline text="<meta http-equiv="Content-Type" content="text/html; charset=utf-8">"/>
<outline text="<meta name="viewport" content="width=device-width, initial-scale=1.0">"/>
<outline text="<%basicIncludes2%>"/>
<outline text="<link href="http://scripting.com/code/pagepark/defaultmarkdownstyles.css" rel="stylesheet" type="text/css">"/>
<outline text="<script>" created="Thu, 12 Dec 2013 17:06:51 GMT" pgfnum="33502">
<outline text="var config = [%config%];"/>
<outline text="function everySecond () {" isComment="true">
<outline text="}"/>
</outline>
<outline text="function startup () {">
<outline text="console.log ("startup");"/>
<outline text="if (config.productnameForDisplay !== undefined) {">
<outline text="$("#idMenuProductName").text (config.productnameForDisplay);"/>
<outline text="}"/>
</outline>
<outline text="hitCounter (); "/>
<outline text="self.setInterval (everySecond, 1000); " isComment="true"/>
<outline text="}"/>
</outline>
<outline text="</script>" created="Thu, 12 Dec 2013 17:07:17 GMT" pgfnum="33504"/>
</outline>
<outline text="<style>" created="Wed, 11 Sep 2013 14:27:45 GMT" pgfnum="30095">
<outline text="body {">
<outline text="font-family: "Ubuntu";"/>
<outline text="font-size: 18px;"/>
<outline text="line-height: 140%;"/>
<outline text="background-color: white; "/>
<outline text="}"/>
</outline>
<outline text=".divPageBody {">
<outline text="width: 60%;"/>
<outline text="margin-top: 90px;"/>
<outline text="margin-left: auto;"/>
<outline text="margin-right: auto;"/>
<outline text="margin-bottom: 400px;"/>
<outline text="color: gainsboro;"/>
<outline text="}"/>
</outline>
<outline text=".ulFileList {">
<outline text="list-style-type: none;"/>
<outline text="}"/>
</outline>
<outline text=".ulFileList li {">
<outline text="line-height: 150%;"/>
<outline text="margin-left: 0;"/>
<outline text="}"/>
</outline>
<outline text=""/>
<outline text="code {">
<outline text="color: black;"/>
<outline text="}"/>
</outline>
<outline text=".navbar-inner {">
<outline text="margin-top: -25px;"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body {">
<outline text="box-sizing: border-box;"/>
<outline text="min-width: 200px;"/>
<outline text="max-width: 980px;"/>
<outline text="margin: 0 auto;"/>
<outline text="padding: 45px;" isComment="true"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body p {">
<outline text="margin-bottom: 8px;"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body ul {">
<outline text="margin-bottom: 0;"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body br {">
<outline text="line-height: 16px;"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body hr {">
<outline text="margin-top: 8px;"/>
<outline text="margin-bottom: 8px;"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body ol, .markdown-body ul {">
<outline text="padding-left: 0;"/>
<outline text="}"/>
</outline>
<outline text="@media (max-width: 767px) {">
<outline text=".markdown-body {">
<outline text="padding: 15px;"/>
<outline text="}"/>
</outline>
<outline text="}"/>
</outline>
<outline text=""/>
<outline text="/* styles for phone */" created="Sun, 09 Mar 2014 19:11:13 GMT" pgfnum="38719">
<outline text="@media only screen "/>
<outline text="and (min-device-width : 320px) "/>
<outline text="and (max-device-width : 480px) {">
<outline text=".divPageBody {">
<outline text="width: 96%;"/>
<outline text="margin-top: 60px;"/>
<outline text="margin-left: auto;"/>
<outline text="margin-right: auto;"/>
<outline text="margin-bottom: 300px;"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body pre {">
<outline text="padding: 5px;"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body h1 {" isComment="true">
<outline text="margin-top: 16px;"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body h3 {">
<outline text="margin-bottom: 8px;"/>
<outline text="}"/>
</outline>
<outline text=".navbar .brand {">
<outline text="margin-left: 0;"/>
<outline text="}"/>
</outline>
<outline text="}"/>
</outline>
</outline>
<outline text="/* styles for tablet */">
<outline text="@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {">
<outline text=".divPageBody {">
<outline text="width: 75%;"/>
<outline text="margin-top: 50px;" isComment="true"/>
<outline text="margin-left: auto;"/>
<outline text="margin-right: auto;"/>
<outline text="margin-bottom: 300px;"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body pre {">
<outline text="padding: 5px;"/>
<outline text="}"/>
</outline>
<outline text="}"/>
</outline>
</outline>
<outline text="</style>" created="Wed, 11 Sep 2013 14:30:17 GMT" pgfnum="30105"/>
</outline>
<outline text="</head>"/>
</outline>
<outline text="<body>">
<outline text="<div class="divMenubar" id="idMenubar">" created="Thu, 28 Mar 2013 21:39:05 GMT" pgfnum="21615">
<outline text="<div class="topbar-wrapper" style="z-index: 5;">">
<outline text="<div class="navbar navbar-fixed-top" data-dropdown="dropdown">">
<outline text="<div class="divVersionNumber">">
<outline text="<span id="idPublishStatus"></span><span id="idSavedStatus"></span>&nbsp;<span id="idVersionNumber"></span>"/>
<outline text="</div>"/>
</outline>
<outline text="<div class="navbar-inner">">
<outline text="<div class="container">">
<outline text="<a class="brand" href=""><span id="idMenuProductName"></span></a>"/>
<outline text="<ul class="nav" id="idMainMenuList">">
<outline text="<li class="dropdown" id="idTheMenu"> ">
<outline text="<a href="#" class="dropdown-toggle" data-toggle="dropdown">Menu&nbsp;<b class="caret"></b></a>"/>
<outline text="<ul class="dropdown-menu">">
<outline text="<li><a href="/">Home</a></li>"/>
<outline text="<li class="divider"></li>"/>
<outline text="" created="Wed, 17 May 2023 14:35:26 GMT"/>
<outline text="<li><a href="http://xmlrpc.com/spec.md">XML-RPC spec</a></li>"/>
<outline text="<li><a href="http://xmlrpc.com/storyreader/story2198.md">MetaWeblog API</a></li>"/>
<outline text="" created="Wed, 17 May 2023 14:35:28 GMT"/>
<outline text="<li class="divider"></li>"/>
<outline text="<li><a href="http://xmlrpc.com/worknotes.md">Worknotes</a></li>"/>
<outline text="<li class="divider"></li>"/>
<outline text="<li><a href="http://scripting.com/code/xmlrpcdebugger/">Debugger</a></li>"/>
<outline text="<li><a href="http://scripting.com/code/xmlrpcbrowserclient/index.html">Validator</a></li>"/>
<outline text="<li class="divider"></li>"/>
<outline text="<li><a href="http://xmlrpc.com/docs/xml-rpc-in-json.md">JSON syntax</a></li>"/>
<outline text="<li class="divider"></li>"/>
<outline text="<li><a href="https://github.com/scripting/xml-rpc">On GitHub...</a></li>"/>
<outline text="</ul>"/>
</outline>
<outline text="</li>"/>
</outline>
<outline text="<li class="dropdown" id="idDocsMenu"> " isComment="true">
<outline text="<a href="#" class="dropdown-toggle" data-toggle="dropdown">Docs&nbsp;<b class="caret"></b></a>"/>
<outline text="<ul class="dropdown-menu">">
<outline text="<li><a href="https://github.com/scripting/xml-rpc#simple-xml-rpc-debugger" target="_blank">Main docs</a></li>"/>
<outline text="</ul>"/>
</outline>
<outline text="</li>"/>
</outline>
<outline text="</ul>"/>
</outline>
<outline text="<ul class="nav pull-right">" isComment="true">
<outline text="<li class="dropdown">">
<outline text="<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span id="idTwitterIcon"></span><span id="idGitHubUserName"></span>&nbsp;<b class="caret"></b></a>"/>
<outline text="<ul class="dropdown-menu">">
<outline text="<li><a onclick="aboutDialog ();">About <span id="idMenuAboutProductName"></span>...</a></li>"/>
<outline text="<li class="divider"></li>"/>
<outline text="<li><a onclick="settingsCommand ();">Settings...</a></li>"/>
<outline text="<li class="divider"></li>"/>
<outline text="<li><a onclick="fbToggleConnectCommand ();" id="idFacebookConnectMenuItem"></a></li>" isComment="true"/>
<outline text="<li><a onclick="toggleGitHubConnection ();" id="idGitHubConnectMenuItem"></a></li>"/>
<outline text="</ul>"/>
</outline>
<outline text="</li>"/>
</outline>
<outline text="</ul>"/>
</outline>
<outline text="</div>"/>
</outline>
<outline text="</div>"/>
</outline>
<outline text="</div>"/>
</outline>
<outline text="</div>"/>
</outline>
<outline text="</div>" created="Thu, 28 Mar 2013 21:39:17 GMT" pgfnum="21616"/>
</outline>
<outline text="<div class="divPageBody">">
<outline text="<article class="markdown-body">">
<outline text="[%bodytext%]"/>
<outline text="</article>"/>
</outline>
<outline text="</div>"/>
</outline>
<outline text="<script>">
<outline text="$(document).ready (function () {">
<outline text="startup ();" created="Wed, 30 Oct 2013 15:20:06 GMT" pgfnum="30656"/>
<outline text="});"/>
</outline>
<outline text="</script>"/>
</outline>
<outline text="</body>"/>
</outline>
<outline text="</html>"/>
</outline>
</outline>
</outline>
<outline text="/scripting.com/code/xmlrpc/templates/">
<outline text="mdtemplate.html">
<outline text="<html>">
<outline text="<head>">
<outline text="<title>[%title%]</title>"/>
<outline text="<meta http-equiv="Content-Type" content="text/html; charset=utf-8">"/>
<outline text="<meta name="viewport" content="width=device-width, initial-scale=1.0">"/>
<outline text="<%basicIncludes2%>"/>
<outline text="<link href="//s3.amazonaws.com/scripting.com/code/pagepark/defaultmarkdownstyles.css" rel="stylesheet" type="text/css">"/>
<outline text="<script>" created="Thu, 12 Dec 2013 17:06:51 GMT" pgfnum="33502">
<outline text="var config = [%config%];"/>
<outline text="function everySecond () {" isComment="true">
<outline text="}"/>
</outline>
<outline text="function startup () {">
<outline text="console.log ("startup");"/>
<outline text="if (config.productnameForDisplay !== undefined) {">
<outline text="$("#idMenuProductName").text (config.productnameForDisplay);"/>
<outline text="}"/>
</outline>
<outline text="hitCounter (); "/>
<outline text="self.setInterval (everySecond, 1000); " isComment="true"/>
<outline text="}"/>
</outline>
<outline text="</script>" created="Thu, 12 Dec 2013 17:07:17 GMT" pgfnum="33504"/>
</outline>
<outline text="<style>" created="Wed, 11 Sep 2013 14:27:45 GMT" pgfnum="30095">
<outline text="body {">
<outline text="font-family: "Ubuntu";"/>
<outline text="font-size: 18px;"/>
<outline text="line-height: 140%;"/>
<outline text="background-color: white; "/>
<outline text="}"/>
</outline>
<outline text=".divPageBody {">
<outline text="width: 60%;"/>
<outline text="margin-top: 90px;"/>
<outline text="margin-left: auto;"/>
<outline text="margin-right: auto;"/>
<outline text="margin-bottom: 400px;"/>
<outline text="color: gainsboro;"/>
<outline text="}"/>
</outline>
<outline text=".ulFileList {">
<outline text="list-style-type: none;"/>
<outline text="}"/>
</outline>
<outline text=".ulFileList li {">
<outline text="line-height: 150%;"/>
<outline text="margin-left: 0;"/>
<outline text="}"/>
</outline>
<outline text=""/>
<outline text="code {">
<outline text="color: black;"/>
<outline text="}"/>
</outline>
<outline text=".navbar-inner {">
<outline text="margin-top: -25px;"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body {">
<outline text="box-sizing: border-box;"/>
<outline text="min-width: 200px;"/>
<outline text="max-width: 980px;"/>
<outline text="margin: 0 auto;"/>
<outline text="padding: 45px;" isComment="true"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body p {">
<outline text="margin-bottom: 8px;"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body ul {">
<outline text="margin-bottom: 0;"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body br {">
<outline text="line-height: 16px;"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body hr {">
<outline text="margin-top: 8px;"/>
<outline text="margin-bottom: 8px;"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body ol, .markdown-body ul {">
<outline text="padding-left: 0;"/>
<outline text="}"/>
</outline>
<outline text="@media (max-width: 767px) {">
<outline text=".markdown-body {">
<outline text="padding: 15px;"/>
<outline text="}"/>
</outline>
<outline text="}"/>
</outline>
<outline text=""/>
<outline text="/* styles for phone */" created="Sun, 09 Mar 2014 19:11:13 GMT" pgfnum="38719">
<outline text="@media only screen "/>
<outline text="and (min-device-width : 320px) "/>
<outline text="and (max-device-width : 480px) {">
<outline text=".divPageBody {">
<outline text="width: 96%;"/>
<outline text="margin-top: 60px;"/>
<outline text="margin-left: auto;"/>
<outline text="margin-right: auto;"/>
<outline text="margin-bottom: 300px;"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body pre {">
<outline text="padding: 5px;"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body h1 {" isComment="true">
<outline text="margin-top: 16px;"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body h3 {">
<outline text="margin-bottom: 8px;"/>
<outline text="}"/>
</outline>
<outline text=".navbar .brand {">
<outline text="margin-left: 0;"/>
<outline text="}"/>
</outline>
<outline text="}"/>
</outline>
</outline>
<outline text="/* styles for tablet */">
<outline text="@media only screen and (min-device-width: 768px) and (max-device-width: 1024px) {">
<outline text=".divPageBody {">
<outline text="width: 75%;"/>
<outline text="margin-top: 50px;" isComment="true"/>
<outline text="margin-left: auto;"/>
<outline text="margin-right: auto;"/>
<outline text="margin-bottom: 300px;"/>
<outline text="}"/>
</outline>
<outline text=".markdown-body pre {">
<outline text="padding: 5px;"/>
<outline text="}"/>
</outline>
<outline text="}"/>
</outline>
</outline>
<outline text="</style>" created="Wed, 11 Sep 2013 14:30:17 GMT" pgfnum="30105"/>
</outline>
<outline text="</head>"/>
</outline>
<outline text="<body>">
<outline text="<div class="divMenubar" id="idMenubar">" created="Thu, 28 Mar 2013 21:39:05 GMT" pgfnum="21615">
<outline text="<div class="topbar-wrapper" style="z-index: 5;">">
<outline text="<div class="navbar navbar-fixed-top" data-dropdown="dropdown">">
<outline text="<div class="divVersionNumber">">
<outline text="<span id="idPublishStatus"></span><span id="idSavedStatus"></span>&nbsp;<span id="idVersionNumber"></span>"/>
<outline text="</div>"/>
</outline>
<outline text="<div class="navbar-inner">">
<outline text="<div class="container">">
<outline text="<a class="brand" href=""><span id="idMenuProductName"></span></a>"/>
<outline text="<ul class="nav" id="idMainMenuList">">
<outline text="<li class="dropdown" id="idTheMenu"> ">
<outline text="<a href="#" class="dropdown-toggle" data-toggle="dropdown">Menu&nbsp;<b class="caret"></b></a>"/>
<outline text="<ul class="dropdown-menu">">
<outline text="<li><a href="/">Home</a></li>"/>
<outline text="<li><a href="spec.md">XML-RPC spec</a></li>"/>
<outline text="<li class="divider"></li>"/>
<outline text="<li><a href="http://scripting.com/code/xmlrpcdebugger/">Debugger</a></li>"/>
<outline text="<li><a href="http://scripting.com/code/xmlrpcbrowserclient/index.html">Validator</a></li>"/>
<outline text="<li class="divider"></li>"/>
<outline text="<li><a href="docs/guidetolegacysite.md">1998 legacy site</a></li>"/>
<outline text="<li class="divider"></li>"/>
<outline text="<li><a href="docs/xml-rpc-in-json.md">JSON syntax</a></li>"/>
<outline text="<li class="divider"></li>"/>
<outline text="<li><a href="https://github.com/scripting/xml-rpc">On GitHub...</a></li>"/>
<outline text="</ul>"/>
</outline>
<outline text="</li>"/>
</outline>
<outline text="<li class="dropdown" id="idDocsMenu"> " isComment="true">
<outline text="<a href="#" class="dropdown-toggle" data-toggle="dropdown">Docs&nbsp;<b class="caret"></b></a>"/>
<outline text="<ul class="dropdown-menu">">
<outline text="<li><a href="https://github.com/scripting/xml-rpc#simple-xml-rpc-debugger" target="_blank">Main docs</a></li>"/>
<outline text="</ul>"/>
</outline>
<outline text="</li>"/>
</outline>
<outline text="</ul>"/>
</outline>
<outline text="<ul class="nav pull-right">" isComment="true">
<outline text="<li class="dropdown">">
<outline text="<a href="#" class="dropdown-toggle" data-toggle="dropdown"><span id="idTwitterIcon"></span><span id="idGitHubUserName"></span>&nbsp;<b class="caret"></b></a>"/>
<outline text="<ul class="dropdown-menu">">
<outline text="<li><a onclick="aboutDialog ();">About <span id="idMenuAboutProductName"></span>...</a></li>"/>
<outline text="<li class="divider"></li>"/>
<outline text="<li><a onclick="settingsCommand ();">Settings...</a></li>"/>
<outline text="<li class="divider"></li>"/>
<outline text="<li><a onclick="fbToggleConnectCommand ();" id="idFacebookConnectMenuItem"></a></li>" isComment="true"/>
<outline text="<li><a onclick="toggleGitHubConnection ();" id="idGitHubConnectMenuItem"></a></li>"/>
<outline text="</ul>"/>
</outline>
<outline text="</li>"/>
</outline>
<outline text="</ul>"/>
</outline>
<outline text="</div>"/>
</outline>
<outline text="</div>"/>
</outline>
<outline text="</div>"/>
</outline>
<outline text="</div>"/>
</outline>
<outline text="</div>" created="Thu, 28 Mar 2013 21:39:17 GMT" pgfnum="21616"/>
</outline>
<outline text="<div class="divPageBody">">
<outline text="<article class="markdown-body">">
<outline text="[%bodytext%]"/>
<outline text="</article>"/>
</outline>
<outline text="</div>"/>
</outline>
<outline text="<script>">
<outline text="$(document).ready (function () {">
<outline text="startup ();" created="Wed, 30 Oct 2013 15:20:06 GMT" pgfnum="30656"/>
<outline text="});"/>
</outline>
<outline text="</script>"/>
</outline>
<outline text="</body>"/>
</outline>
<outline text="</html>"/>
</outline>
</outline>
</outline>
<outline text="/scripting.com/misc/" isComment="true">
<outline text="xmlrpc-in-json.html">
<outline text="<html>"/>
<outline text="<head>">
<outline text="<title>XML-RPC-in-JSON examples</title>"/>
<outline text="<meta http-equiv="Content-Type" content="text/html; charset=utf-8">"/>
<outline text="<meta name="viewport" content="width=device-width, initial-scale=1.0">"/>
<outline text="<%basicIncludes2%>"/>
<outline text="<script>" created="Thu, 12 Dec 2013 17:06:51 GMT" pgfnum="33502">
<outline text="function everySecond () {">
<outline text="}"/>
</outline>
<outline text="function startup () {">
<outline text="console.log ("startup");"/>
<outline text="self.setInterval (function () {everySecond ()}, 1000); "/>
<outline text="}"/>
</outline>
<outline text="</script>" created="Thu, 12 Dec 2013 17:07:17 GMT" pgfnum="33504"/>
</outline>
<outline text="<style>" created="Wed, 11 Sep 2013 14:27:45 GMT" pgfnum="30095">
<outline text="body {">
<outline text="font-family: Ubuntu;"/>
<outline text="font-size: 18px;"/>
<outline text="background-color: whitesmoke;"/>
<outline text="}"/>
</outline>
<outline text=".divPageBody {">
<outline text="width: 60%;"/>
<outline text="margin-top: 50px;"/>
<outline text="margin-left: auto;"/>
<outline text="margin-right: auto;"/>
<outline text="margin-bottom: 600px;"/>
<outline text="}"/>
</outline>
<outline text="h4 {">
<outline text="font-family: "Arial";"/>
<outline text="margin-top: 35px;"/>
<outline text="}"/>
</outline>
<outline text="pre {">
<outline text="background-color: white;"/>
<outline text="}"/>
</outline>
<outline text="</style>" created="Wed, 11 Sep 2013 14:30:17 GMT" pgfnum="30105"/>
</outline>
<outline text="</head>"/>
</outline>
<outline text="<body>"/>
<outline text="<div class="divPageBody">"/>
<outline text="<p>June 2018 by Dave Winer<p>"/>
<outline text="<h1>XML-RPC-in-JSON examples</h1>"/>
<outline text="<p>My new <a href="https://github.com/scripting/xml-rpc">JavaScript toolkit</a> for XML-RPC supports a <a href="https://github.com/scripting/xml-rpc#using-json-in-place-of-xml">JSON syntax</a>.</p>"/>
<outline text="<p>Here's a table comparing the two versions.</p>"/>
<outline text=""/>
<outline text="<h4>Single param</h4>"/>
<outline text="<pre>"/>
<outline text="&lt;methodCall>">
<outline text="&lt;methodName>examples.getStateName&lt;/methodName>"/>
<outline text="&lt;params>">
<outline text="&lt;param>">
<outline text="&lt;value>&lt;int>50&lt;/int>&lt;/value>"/>
<outline text="&lt;/param>"/>
</outline>
<outline text="&lt;/params>"/>
</outline>
<outline text="&lt;/methodCall>"/>
</outline>
<outline text="</pre>"/>
<outline text="<pre>"/>
<outline text="{">
<outline text=""methodCall": {">
<outline text=""methodName": "examples.getStateName","/>
<outline text=""params": [">
<outline text="23"/>
<outline text="]"/>
</outline>
<outline text="}"/>
</outline>
<outline text="}"/>
</outline>
<outline text="</pre>"/>
<outline text=""/>
<outline text=""/>
<outline text="<h4>Param is an array</h4>"/>
<outline text="<pre>"/>
<outline text="&lt;methodCall>">
<outline text="&lt;methodName>examples.getStateList&lt;/methodName>"/>
<outline text="&lt;params>">
<outline text="&lt;param>">
<outline text="&lt;value>">
<outline text="&lt;array>">
<outline text="&lt;data>">
<outline text="&lt;value>&lt;int>12&lt;/int>&lt;/value>"/>
<outline text="&lt;value>&lt;int>44&lt;/int>&lt;/value>"/>
<outline text="&lt;value>&lt;int>4&lt;/int>&lt;/value>"/>
<outline text="&lt;value>&lt;int>1&lt;/int>&lt;/value>"/>
<outline text="&lt;/data>"/>
</outline>
<outline text="&lt;/array>"/>
</outline>
<outline text="&lt;/value>"/>
</outline>
<outline text="&lt;/param>"/>
</outline>
<outline text="&lt;/params>"/>
</outline>
<outline text="&lt;/methodCall>"/>
</outline>
<outline text="</pre>"/>
<outline text="<pre>"/>
<outline text="{">
<outline text=""methodCall": {">
<outline text=""methodName": "examples.getStateList","/>
<outline text=""params": [">
<outline text="[">
<outline text="12,"/>
<outline text="44,"/>
<outline text="4"/>
<outline text="]"/>
</outline>
<outline text="]"/>
</outline>
<outline text="}"/>
</outline>
<outline text="}"/>
</outline>
<outline text="</pre>"/>
<outline text=""/>
<outline text=""/>
<outline text="<h4>Param is a struct</h4>"/>
<outline text="<pre>"/>
<outline text="&lt;methodCall>">
<outline text="&lt;methodName>examples.getStateStruct&lt;/methodName>"/>
<outline text="&lt;params>">
<outline text="&lt;param>">
<outline text="&lt;value>">
<outline text="&lt;struct>">
<outline text="&lt;member>">
<outline text="&lt;name>state1&lt;/name>"/>
<outline text="&lt;value>">
<outline text="&lt;int>12&lt;/int>"/>
<outline text="&lt;/value>"/>
</outline>
<outline text="&lt;/member>"/>
</outline>
<outline text="&lt;member>">
<outline text="&lt;name>state2&lt;/name>"/>
<outline text="&lt;value>">
<outline text="&lt;int>8&lt;/int>"/>
<outline text="&lt;/value>"/>
</outline>
<outline text="&lt;/member>"/>
</outline>
<outline text="&lt;/struct>"/>
</outline>
<outline text="&lt;/value>"/>
</outline>
<outline text="&lt;/param>"/>