我在哪里可以找到亚马逊发布的S3 XSD(XML架构定义)?

时间:2016-03-20 11:06:44

标签: xml amazon-web-services amazon-s3 xsd

我的应用程序,使用REST API与Amazon S3服务器交互,执行了一个"删除多个"对服务器的操作并遇到错误响应:

<?xml version="1.0" encoding="UTF-8"?>
<Error>
    <Code>MalformedXML</Code>
    <Message>The XML you provided was not well-formed or did not validate against our published schema</Message>
    <RequestId>6FA...D61</RequestId>
    <HostId>E5G...uhg=</HostId>
</Error>

引用Amazon documentation

  

当用户发送格式错误的xml(xml不能发送)时会发生这种情况   符合已发布的xsd)进行配置。错误消息   是,&#34;您提供的XML格式不正确或未验证   反对我们发布的架构。&#34;

我的某些应用删除键包含可能导致问题的编码字符。因此,我希望看到亚马逊发布的架构(XSD)文件本身,通过验证器运行它来确定问题。

我在哪里可以找到Amazon XSD文件?

2 个答案:

答案 0 :(得分:1)

AmazonS3.xsd可用,但也请参阅Amazon Simple Storage Service API Reference

最后,特别是考虑到您对编码字符的关注,请注意您的请求实际上甚至可能没有格式良好,因此XSD验证不会发挥作用。 (请参阅Well-formed vs Valid XML。)在他们的API文档中提供的示例中就是这种情况,这会引发您收到的相同错误:

  

示例3:请求中格式错误的XML

     

此示例显示了Amazon S3如何响应包含a的请求   格式错误的XML文档。

     

示例请求

     

以下请求发送格式错误的XML文档(缺少   删除结束元素。)

POST /?delete HTTP/1.1
Host: bucketname.S3.amazonaws.com
Accept: */*
x-amz-date: Wed, 30 Nov 2011 03:39:05 GMT
Content-MD5: p5/WA/oEr30qrEEl21PAqw==
Authorization: AWS AKIAIOSFODNN7EXAMPLE:W0qPYCLe6JwkZAD1ei6hp9XZIee=
Content-Length: 104
Connection: Keep-Alive

<Delete>
  <Object>
    <Key>404.txt</Key>
  </Object>
  <Object>
    <Key>a.txt</Key>
  </Object>
     

示例回复

     

响应返回描述错误的错误消息。

HTTP/1.1 200 OK
x-amz-id-2: P3xqrhuhYxlrefdw3rEzmJh8z5KDtGzb+/FB7oiQaScI9Yaxd8olYXc7d1111ab+
x-amz-request-id: 264A17BF16E9E80A
Date: Wed, 30 Nov 2011 03:39:32 GMT
Content-Type: application/xml
Server: AmazonS3
Content-Length: 207

<?xml version="1.0" encoding="UTF-8"?>
<Error>
  <Code>MalformedXML</Code>
  <Message>The XML you provided was not well-formed or did not 
           validate against our published schema</Message>
  <RequestId>91F27FB5811111F</RequestId>
  <HostId>LCiQK7KbXyJ1t+tncmjRwmNoeeRNW1/ktJ61IC8kN32SFXJx7UBhOzseJCixAbcD</HostId>
</Error>

答案 1 :(得分:0)