这个结构在 XML RPC 中有效吗?

发布于 2024-09-16 17:55:28 字数 1490 浏览 5 评论 0原文

在 XML-RPC 中,拥有无界元素数组而不将它们放在数组/数据父级中是否有效?根据我对 XML-RPC 的有限经验,我发现数组应该这样列出:

<member>
   <name>Name</name>
      <value>
         <array>
            <data>
               <value>
                  <string>Red</string>
               </value>
               <value>
                  <string>Blue</string>
               </value>
            </data>
         </array>
       </value>
</member>

...父 Name 具有子字符串 Red 和 Blue。然而,我们集成的第 3 方 RPC 服务发送无界元素数组,而不将它们放在数组/数据元素内部,而是放在结构内部,例如

<member>
   <name>Name</name>
      <value>
         <struct>
            <member><name>Option0</name>
               <value><string>Red</string>
            </member>
            <member><name>Option1</name>
               <value><string>Blue</string>
            </member>
         </struct>
      </value>
</member>

……将 Option1 和 Option2 的值封装在结构内部。

我面临的问题是,在设计将被序列化的类时,我必须设计我的类,例如

private string Option0
private string Option1

......

而不是:

private string[] Name

因为我不知道结构中返回的无界字段的数量,完成这项任务的正确方法似乎是使用一个字符串数组来枚举。但是,响应 XML 中没有数组,只有具有动态数量字段的结构。因此,我必须列出大量字段以符合该结构,即使它实际上不是一个结构,而是一个数组。 XML-RPC 是否缺少某些内容?

Is it valid in XML-RPC to have an unbounded array of elements without having them inside of a array/data parent? From my limited experience with XML-RPC I have seen that arrays should be listed as such:

<member>
   <name>Name</name>
      <value>
         <array>
            <data>
               <value>
                  <string>Red</string>
               </value>
               <value>
                  <string>Blue</string>
               </value>
            </data>
         </array>
       </value>
</member>

...with the parent Name having children strings Red and Blue. However, the 3rd party RPC service we are integrating with sends arrays of unbounded elements without having them inside of the array/data element, but inside a struct, e.g.

<member>
   <name>Name</name>
      <value>
         <struct>
            <member><name>Option0</name>
               <value><string>Red</string>
            </member>
            <member><name>Option1</name>
               <value><string>Blue</string>
            </member>
         </struct>
      </value>
</member>

...With the values of Option1 and Option2 encapsulated inside of a struct.

The problem I am facing is that when designing the classes that will be serialized, I would have to design my class such as

private string Option0
private string Option1

...

...instead of:

private string[] Name

As I do not know the number of unbounded fields coming back in the structure, it seems the right way to accomplish the task would be to have an array of strings to enumerate through. However, there are no arrays in the resoponse XML, just structures with a dynamic number of fields. Because of that, I would have to list a large number of fields to conform to the structure, even though it's not really a structure, but an array. Is there something I am missing with the XML-RPC?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

左耳近心 2024-09-23 17:55:28

是的,它是非常有效的 XML-RPC 结构。我们也有这样的案例,并且正在使用 CookComputings 的 XML-RPC.NET。它工作完美。检查一下,那里有一个特殊的类,名为XmlRpcStruct。您只需在 XML-RPC 方法请求或响应中使用它即可。

Yes it is quite valid XML-RPC struct. We also have such case and are using Cook Computings' XML-RPC.NET. It works perfectly. Check it, there is a special class there called XmlRpcStruct. You just need to use it in your XML-RPC method request or response.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文