
我正在为一个Web服务设计一个API,我无法决定使用XML属性,元素或混合体系结构.
让我举个例子.我们假设我有一个名为Domain的对象.这个模型有3个属性(tld,sld,trd和name本身),一个方法有效?如果域有效,则返回true.
# I'm using ruby but # consIDer this as pseudo-codeclass Domain attr_accessor :tld,:sld,:trd,:name def valID? true # force true endend
我的API称为/ domain / parser在输入中接收一个域,并返回解析的响应.第一种可能性是为每个域属性使用一个元素.
<result> <domain> <name>www.Google.it</name> <tld>it</tld> ... <valID>true</true> </domain></result>
但是一些接口使用属性.
<result> <domain tld="it" sld="Google.com" trd="www" rule="*.foo" name="www.Google.it" valID="true" /></result>
不要忘记属性和价值.
<result> <domain tld="it" sld="Google.com" trd="www" rule="*.foo" name="www.Google.it" valID="true"> www.Google.it </domain></result>
在你看来,哪个是更强大,灵活和富有表现力的选择?另外,考虑回应将以XML和JsON(很快)提供.
解决方法 我使用的模式是:>元素用于数据
属性用于元数据(即关于数据的数据)
如果您使用XSD架构的最多(如果不是全部)您的元数据应该在那里,但如果你没有属性是它的好地方.
所以你的例子我可能会这样做:
<result> <domain valID="true"> <name>www.Google.it</name> <tld>it</tld> ... </domain></result>总结
以上是内存溢出为你收集整理的Web服务API设计:XML元素与属性全部内容,希望文章能够帮你解决Web服务API设计:XML元素与属性所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)