Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
RESTful Web服务:同一资源的不同XML表示_Xml_Rest_Xsd - Fatal编程技术网

RESTful Web服务:同一资源的不同XML表示

RESTful Web服务:同一资源的不同XML表示,xml,rest,xsd,Xml,Rest,Xsd,我正在开发一个使用XML格式响应的RESTWeb服务,但我遇到了一些问题(实际上是一个问题) 我的一个资源有一些最终字段,所以一旦创建它们,就不能修改它们。根据这一点,我需要为这个资源提供不同的表示,这取决于我在做什么:创建或修改它 我应该怎么做,为用户提供同一资源的不同XML模式,或者只编写一个XML模式并读取一些字段,或者不依赖于请求的方法 谢谢你的描述,我不认为这是资源的两种表现形式。我认为它是一种随时间变化的资源 听起来你的问题是关于文档的——根据资源的状态,或者更确切地说,资源是否存在

我正在开发一个使用XML格式响应的RESTWeb服务,但我遇到了一些问题(实际上是一个问题)

我的一个资源有一些最终字段,所以一旦创建它们,就不能修改它们。根据这一点,我需要为这个资源提供不同的表示,这取决于我在做什么:创建或修改它

我应该怎么做,为用户提供同一资源的不同XML模式,或者只编写一个XML模式并读取一些字段,或者不依赖于请求的方法


谢谢你的描述,我不认为这是资源的两种表现形式。我认为它是一种随时间变化的资源

听起来你的问题是关于文档的——根据资源的状态,或者更确切地说,资源是否存在,传达可接受表示的不同规则的最佳方式是什么

如果是这种情况,并且您正在使用W3C XML模式(XSD)文件来记录您的表示,那么我建议使用单个XSD文件,它将允许字段,但将XSD:annotation子项添加到有问题的字段中,并且注意,只有在创建新资源时才允许使用这些字段,不在修改现有资源时

然后,您可以使用相同的XSD来验证这两个用例,并使用几行代码专门检查不可变字段,如果用户试图更改它们,则拒绝请求。这真的很重要;文档很重要,但让系统提供有用的反馈更为重要。如果有人试图更改其中一个不可变字段,则返回“400错误请求”,并在响应正文中包含一个清晰易读的问题解释

我应该做什么,为用户提供相同的XML模式 资源,或者只编写一个XML模式并读取一些字段 取决于我被要求的方法

如果希望重用架构的某些部分,则可以从其他文件导入这些部分,或者在服务器端语言上编写代码以重用它。我认为使用服务器端语言重用字段更好,因为它更灵活