Одна вещь, которую я заметил со всеми примерами XML-RPC, включая саму спецификацию, - нет подробного примера схемы с использованием рекурсивных (param) значений , Трудно понять, что на самом деле возможно в XML-RPC без этих иллюстраций, и мне интересно, может ли кто-нибудь помочь мне лучше справиться с этим.Понимание возможностей параметра XML-RPC, особенно рекурсии значений
Спецификация говорит:
< структура > ы могут быть рекурсивными, любой < значение > может содержать <-структуру > или любой другой тип , включающий в себя массив < >, , описанной ниже.
< массивы > с могут быть рекурсивными, любое значение может содержать массив < > или любой другой тип , в том числе < структуры >, описанной выше.
ли это, что означает, что это совершенно законно, чтобы сделать следующее:
<?xml version="1.0"?>
<methodCall>
<methodName>examples.getStateName</methodName>
<params>
<param>
<value>
<struct>
<member>
<name>lowerBound</name>
<value>
<struct>
<member>
<name>lowerBound</name>
<value><i4>18</i4></value>
</member>
<member>
<name>upperBound</name>
<value><i4>139</i4></value>
</member>
</struct>
</value>
</member>
<member>
<name>upperBound</name>
<value><i4>139</i4></value>
</member>
</struct>
</value>
</param>
</params>
</methodCall>
Можно также сделать это:
<?xml version="1.0"?>
<methodCall>
<methodName>examples.getStateName</methodName>
<params>
<param>
<value>
<array>
<data>
<value><i4>12</i4></value>
<value>
<struct>
<member>
<name>lowerBound</name>
<value>
<struct>
<member>
<name>lowerBound</name>
<value><i4>18</i4></value>
</member>
<member>
<name>upperBound</name>
<value><i4>139</i4></value>
</member>
</struct>
</value>
</member>
<member>
<name>upperBound</name>
<value><i4>139</i4></value>
</member>
</struct>
</value>
<value><boolean>0</boolean></value>
<value><i4>-31</i4></value>
</data>
</array>
</value>
</param>
</params>
</methodCall>
Я пытаюсь написать реализацию и я нужно знать все возможности и что проверять при прохождении через чью-то схему на стороне сервера. С учетом того, как spec читает, кажется, что вы можете вложить массивы и структуры взаимозаменяемо, но я хотел проверить, что это правда. Благодаря!