<?xml version="1.0"?>
<application xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://wadl.dev.java.net/2009/02 wadl.xsd"
xmlns:tns="urn:yahoo:yn"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:yn="urn:yahoo:yn"
xmlns:ya="urn:yahoo:api"
xmlns="http://wadl.dev.java.net/2009/02">
<grammars>
<include
href="NewsSearchResponse.xsd"/>
<include
href="Error.xsd"/>
</grammars>
<resources base="http://api.search.yahoo.com/NewsSearchService/V1/">
<resource path="newsSearch">
<method name="GET" id="search">
<request>
<param name="appid" type="xsd:string"
style="query" required="true"/>
<param name="query" type="xsd:string"
style="query" required="true"/>
<param name="type" style="query" default="all">
<option value="all"/>
<option value="any"/>
<option value="phrase"/>
</param>
<param name="results" style="query" type="xsd:int" default="10"/>
<param name="start" style="query" type="xsd:int" default="1"/>
<param name="sort" style="query" default="rank">
<option value="rank"/>
<option value="date"/>
</param>
<param name="language" style="query" type="xsd:string"/>
</request>
<response status="200">
<representation mediaType="application/xml"
element="yn:ResultSet"/>
</response>
<response status="400">
<representation mediaType="application/xml"
element="ya:Error"/>
</response>
</method>
</resource>
</resources>
</application>http://wadl.dev.java.net/2009/02
#someid。跨文档引用使用 URI 来标识文档,并使用片段标识符来标 识被引用文档中的组件,例如 somefile.wadl#someid。允许使用绝对 URI 或相对 URI。application元素构成 WADL 描述的根并包含以下内容:doc可用于记录该元素的子元素。该doc元素具有以下属性:xml:langtitle定义属性值和元素内容的语言doc。如果一个元素包含多个doc元素,那么它们的xml:lang属性必须具有不同的值。titledoc元素具有混合内容,并且可能包含文本和零个或多个构成文档正文的子元素。建议子元素是 XHTML[ 2 ] 的文本、列表或表格模块的成员。grammars元素充当 WADL 文档描述的协议执行期间交换数据格式定义的容器。此类定义可以内嵌或通过使用include元素的引用来包含(参见第 2.4.1节)。没有强制规定特定的数据格式定义语言;第 3节和第 4 节分别描述了 RelaxNG 和 W3C XML Schema 与 WADL 的使用。include元素允许通过引用包含一个或多个数据格式描述的定义。该href属性为引用的定义提供 URI,其类型为xsd:anyURI。使用该include元素在逻辑上相当于将引用的文档内联到 WADLgrammars元素中。resources元素充当应用程序提供的资源的容器。元素resources具有base类型属性xsd:anyURI,该属性为每个子资源标识符提供基本 URI。后代resource元素(参见第 2.6 节)描述应用程序提供的资源。resource描述一组资源,每个资源都由遵循通用模式的 URI 标识。元素resource具有以下属性:idxsd:ID标识元素的类型的可选属性resource。pathxsd:string。如果存在,它会提供资源标识符的相对 URI 模板。resource资源的基本 URI 由元素的父元素resource或元素给出resources。queryTyperesource元素包含以下子元素:doc元素 - 请参阅第 2.3 节。param元素(参见第 2.12 节),其属性具有以下值之一style:templateparam元素将被忽略。matrixquerymethod为资源的所有子元素指定全局 URI 查询参数。不适用于从resource_type指定使用type属性继承的方法。headermethod指定在资源的所有子元素的请求部分中使用的全局 HTTP 标头。不适用于从resource_type指定使用type属性继承的方法。method(参见第 2.8 节)元素,每个元素描述可应用于资源的 HTTP 协议方法的输入和输出。这种本地定义的方法被添加到resource_type使用该type属性引用的元素中包含的任何方法中。resource描述子资源的元素。此类子资源从父资源继承矩阵和模板参数,因为它们的 URI 相对于父资源的 URI,但它们不继承为父资源全局指定的查询或标头参数。path可以是静态的,也可以包含嵌入的模板参数。在运行时,当使用资源时,模板参数的值会被替换为资源标识符,详细示例请参见第 2.6.1节。param元素来传达,该子元素的属性值与模板中嵌入的参数的名称相匹配。例如,下面的模板参数的类型由子元素指定:style``name``widgetId``param1 <resource path="widgets/{widgetId}">
2 <param name="widgetId" style="template" type="xsd:int"/>
3 ...
4 </resource>resource是使用以下规则获取的:identifier等于为父元素(resource或resources)计算的 URI(使用此过程)。identifier不以“/”结尾,则附加一个“/”字符identifier。path值。identifier。style属性值的子param元素(参见2.12节),按以下规则将参数值表示附加到标识符上:name'='valuename(当value为true时)。当value为false时,从标识符中省略。name是param元素的name属性的值,value是参数的运行时值1 <resources base="http://example.com/">
2 <resource path="widgets">
3 <resource path="reports/stock">
4 <param name="instockonly" style="matrix"
5 type="xsd:boolean"/>
6 ...
7 </resource>
8 <resource path="{widgetId}">
9 ...
10 </resource>
11 ...
12 </resource>
13 <resource path="accounts/{accountId}">
14 ...
15 </resource>
16 </resources>widgetId组件在运行时替换为名为 的运行时参数的值。resource_type描述了一组方法,这些方法共同定义了一类资源的行为。resource_type可用于定义预期由多个资源支持的资源行为。resource_type具有以下属性:idxsd:ID标识元素的类型的必需属性resource_type。resource_type元素包含以下子元素:doc元素 - 请参阅第 2.3 节。param元素(参见第 2.12 节),其属性具有以下值之一style:queryheadermethod(参见第 2.8 节)元素,每个元素都描述可以应用于该类型资源的 HTTP 协议方法。resource描述此类资源的子资源的元素。path此类子资源的 URI 由元素的属性提供resource,并且相对于父资源的 URI。method描述可应用于资源的HTTP协议方法的输入和输出。元素method可以是方法定义,也可以是对其他地方定义的方法的引用。method的子元素。属性的值是对定义元素的交叉引用(参见第2.1节)。引用元素不得具有任何其他 WADL 定义的属性或包含任何 WADL 定义的子元素。method当相同的方法应用于多个资源时,可以使用这种形式的元素来减少重复。nameidmethod具有相同属性值的子元素;name这些同级代表同一 HTTP 方法的不同变体,并且通常具有不同的输入数据。method元素具有以下子元素:docdoc元素 - 请参阅第 2.3 节。requestresponseresponse描述方法可能输出的元素 - 请参阅第 2.10 节。request描述将 HTTP 方法应用于资源时要包含的输入。元素request没有属性,可以包含以下子元素:doc元素 - 请参阅第 2.3 节。representation元素 - 请参阅第 2.11 节。请注意,元素的使用representation仅限于接受请求中的实体正文的 HTTP 方法(例如,PUT 或 POST)。同级representation元素表示逻辑上等效的替代方案,例如,特定资源可能支持特定请求的多个XML语法。style 值为 query 的子 param 元素(参见 2.12 节)表示 HTML 4.01[3] 17.13 节中描述的 URI 查询参数。在调用 HTTP 方法时,查询参数的运行时值作为 URI 查询参数发送。1 <resources base="http://example.com/widgets">
2 <resource path="{widgetId}">
3 <param name="customerId" style="query"/>
4 <method name="GET">
5 <request>
6 <param name="verbose" style="query" type="xsd:boolean"/>
7 </request>
8 <response>
9 ...
10 </response>
11 </method>
12 </resource>
13 </resources>widgetId 参数的值是 123456,customerId 参数的值是 cust1234,verbose 参数的值是 true,那么 HTTP GET 将在以下 URI 上执行:http://example.com/widgets/123456?customerId=cust1234&verbose=true
response描述对资源执行 HTTP 方法所产生的输出。它具有以下属性:statusresponse元素可以包含以下子元素:doc元素(参见第 2.3 节)。representation元素(参见 2.11 节),每个表示元素描述了执行方法可能产生的资源表示。同级表示元素表示逻辑等价的备选方案;可以使用正常的 HTTP 内容协商机制来选择特定的备选方案。header,每个元素指定响应的 HTTP 头部详情。representation描述资源状态的表示。元素representation可以是表示定义,也可以是对其他地方定义的表示的引用。xsd:anyURI 的 href 属性。href 属性的值是一个交叉引用(参见 2.1 节),指向一个表示定义元素。表示引用元素不能有任何其他 WADL 定义的属性,也不能包含任何 WADL 定义的子元素。representation元素可用于减少重复。idmediaTypetext/*)是可接受的,并表示支持指定范围内的任何媒体类型。elementgrammars节中所述 - 请参阅 2.4 节。profileprofile属性,给出一个或多个元数据配置文件的位置,以空格分隔。元数据配置文件定义了后代 link 元素的 rel 和 rev 属性的含义(参见2.12.4节)。representation定义元素还可以有零个或多个子doc元素(请参阅第 2.3 节)和param