Click to Rate and Give Feedback
MSDN
MSDN Library
Live Services SDK
Live Framework SDK
 Accessing Introspection Metadata

  Switch on low bandwidth view
Accessing Introspection Metadata
[This is preliminary documentation and is subject to change.]

In the Live Framework, introspection refers to the process by which clients can determine the options and requirements associated with resources, without the need to perform an action (HTTP request) on the actual resource.

Dd137144.note(en-us,MSDN.10).gifNote:
Examples in this topic are shown in the XML format unless otherwise indicated.

The Live Framework provides introspection metadata in the following ways:

The OPTIONS HTTP Verb

The OPTIONS HTTP verb is supported for every resource and resource collection. Thus, performing an OPTIONS request is valid for both of the following example URIs:

https://user-ctp.windows.net/V0.1/[UserID]/Mesh/MeshObjects
https:// user-ctp.windows.net/V0.1/[UserID]/Mesh/MeshObjects/[meshObjectID]

A successful request is returned with a status code of 200. The response body contains information on which HTTP methods are supported for the resource in question, as well as information related to these operations (possible status codes, common request headers, common response headers, and so forth). The Live Framework returns this information in either XML, HTML, or JSON format, with XML being the default format. The latter two formats can be requested by using the $format query parameter.

The following code example shows a successful OPTIONS request and response.

Request

OPTIONS https:// user-ctp.windows.net/V0.1/{UserID}/Mesh/MeshObjects/{meshObjectID}

Response

200 OK
<ResourceEntryDescription xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://user.windows.net">
  <UriTemplate>Mesh/{storageServiceId}/MeshObjects/{meshObjectId}</UriTemplate>
  <AuthenticationModel>WindowsLiveIDAuthentication,WindowsLiveDelegatedAuth</AuthenticationModel>
  <QueryParameters>
    <QueryParameter>
      <Name>$expand</Name>
      <PossibleValues>&lt;name of the link relationship&gt;</PossibleValues>
    </QueryParameter>
    <QueryParameter>
      <Name>$format</Name>
      <PossibleValues>json, pox, xml, atom, rss</PossibleValues>
    </QueryParameter>
    <QueryParameter>
      <Name>$callback</Name>
      <PossibleValues>json-p callback name</PossibleValues>
    </QueryParameter>
  </QueryParameters>
  <ConcurrencyControl>Optimistic</ConcurrencyControl>
  <Relationships>
    <Relationship>
      <MediaTypes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:string>application/json</d4p1:string>
        <d4p1:string>text/xml</d4p1:string>
        <d4p1:string>binary/xml</d4p1:string>
        <d4p1:string>application/atom+xml;type=entry</d4p1:string>
      </MediaTypes>
      <UriTemplate>Mesh/{storageServiceId}/MeshObjects/{meshObjectId}</UriTemplate>
    </Relationship>
    <Relationship>
      <MediaTypes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:string>application/json</d4p1:string>
        <d4p1:string>text/xml</d4p1:string>
        <d4p1:string>binary/xml</d4p1:string>
        <d4p1:string>application/atom+xml;type=entry</d4p1:string>
      </MediaTypes>
      <UriTemplate>Mesh/{storageServiceId}/MeshObjects/{meshObjectId}</UriTemplate>
    </Relationship>
    <Relationship>
      <MediaTypes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:string>application/json</d4p1:string>
        <d4p1:string>text/xml</d4p1:string>
        <d4p1:string>binary/xml</d4p1:string>
        <d4p1:string>application/atom+xml;type=entry</d4p1:string>
      </MediaTypes>
      <UriTemplate>Mesh/{storageServiceId}/MeshObjects/{meshObjectId}/Activities/</UriTemplate>
    </Relationship>
    <Relationship>
      <MediaTypes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:string>application/json</d4p1:string>
        <d4p1:string>text/xml</d4p1:string>
        <d4p1:string>binary/xml</d4p1:string>
        <d4p1:string>application/atom+xml;type=entry</d4p1:string>
      </MediaTypes>
      <UriTemplate>Mesh/{storageServiceId}/MeshObjects/{meshObjectId}/Members/</UriTemplate>
    </Relationship>
    <Relationship>
      <MediaTypes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:string>application/json</d4p1:string>
        <d4p1:string>text/xml</d4p1:string>
        <d4p1:string>binary/xml</d4p1:string>
        <d4p1:string>application/atom+xml;type=entry</d4p1:string>
      </MediaTypes>
      <UriTemplate>Mesh/{storageServiceId}/MeshObjects/{meshObjectId}/Mappings/</UriTemplate>
    </Relationship>
    <Relationship>
      <MediaTypes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:string>application/json</d4p1:string>
        <d4p1:string>text/xml</d4p1:string>
        <d4p1:string>binary/xml</d4p1:string>
        <d4p1:string>application/atom+xml;type=entry</d4p1:string>
      </MediaTypes>
      <UriTemplate>Mesh/{storageServiceId}/MeshObjects/{meshObjectId}/DataFeeds/</UriTemplate>
    </Relationship>
    <Relationship>
      <MediaTypes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:string>application/json</d4p1:string>
        <d4p1:string>text/xml</d4p1:string>
        <d4p1:string>binary/xml</d4p1:string>
        <d4p1:string>application/atom+xml;type=entry</d4p1:string>
      </MediaTypes>
      <UriTemplate>Mesh/{storageServiceId}/MeshObjects/{meshObjectId}/News/</UriTemplate>
    </Relationship>
    <Relationship>
      <MediaTypes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
        <d4p1:string>application/json</d4p1:string>
        <d4p1:string>text/xml</d4p1:string>
        <d4p1:string>binary/xml</d4p1:string>
        <d4p1:string>application/atom+xml;type=feed</d4p1:string>
      </MediaTypes>
      <UriTemplate>Mesh/{storageServiceId}/MeshObjects/{meshObjectId}/Subscriptions/</UriTemplate>
    </Relationship>
  </Relationships>
  <SupportedMethods>
    <ResourceOperation>
      <Name>OPTIONS</Name>
      <MediaTypes>
        <MediaType>application/json</MediaType>
        <MediaType>text/xml</MediaType>
        <MediaType>binary/xml</MediaType>
        <MediaType>application/rss+xml</MediaType>
        <MediaType>application/atom+xml</MediaType>
      </MediaTypes>
      <ExpectedStatusCodes>
        <StatusCode>OK</StatusCode>
        <StatusCode>InternalServerError</StatusCode>
      </ExpectedStatusCodes>
      <CommonRequestHeaders>
        <RequestHeader>Authorization</RequestHeader>
        <RequestHeader>Cookie</RequestHeader>
      </CommonRequestHeaders>
      <CommonResponseHeaders>
        <ResponseHeader>SetCookie</ResponseHeader>
      </CommonResponseHeaders>
    </ResourceOperation>
    <ResourceOperation>
      <Name>GET</Name>
      <MediaTypes>
        <MediaType>application/json</MediaType>
        <MediaType>text/xml</MediaType>
        <MediaType>binary/xml</MediaType>
        <MediaType>application/rss+xml</MediaType>
        <MediaType>application/atom+xml</MediaType>
        <MediaType>application/atom+xml;type=entry</MediaType>
      </MediaTypes>
      <ExpectedStatusCodes>
        <StatusCode>OK</StatusCode>
        <StatusCode>InternalServerError</StatusCode>
      </ExpectedStatusCodes>
      <CommonRequestHeaders>
        <RequestHeader>Accept</RequestHeader>
        <RequestHeader>ContentLength</RequestHeader>
        <RequestHeader>ContentType</RequestHeader>
        <RequestHeader>IfModifiedSince</RequestHeader>
        <RequestHeader>Authorization</RequestHeader>
        <RequestHeader>Cookie</RequestHeader>
      </CommonRequestHeaders>
      <CommonResponseHeaders>
        <ResponseHeader>ETag</ResponseHeader>
        <ResponseHeader>Location</ResponseHeader>
        <ResponseHeader>ContentLocation</ResponseHeader>
        <ResponseHeader>ContentLength</ResponseHeader>
        <ResponseHeader>ContentType</ResponseHeader>
        <ResponseHeader>SetCookie</ResponseHeader>
      </CommonResponseHeaders>
    </ResourceOperation>
    <ResourceOperation>
      <Name>PUT</Name>
      <MediaTypes>
        <MediaType>application/json</MediaType>
        <MediaType>text/xml</MediaType>
        <MediaType>binary/xml</MediaType>
        <MediaType>application/rss+xml</MediaType>
        <MediaType>application/atom+xml</MediaType>
        <MediaType>application/atom+xml;type=entry</MediaType>
      </MediaTypes>
      <ExpectedStatusCodes>
        <StatusCode>OK</StatusCode>
        <StatusCode>InternalServerError</StatusCode>
        <StatusCode>PreconditionFailed</StatusCode>
      </ExpectedStatusCodes>
      <CommonRequestHeaders>
        <RequestHeader>IfMatch</RequestHeader>
        <RequestHeader>ContentLength</RequestHeader>
        <RequestHeader>ContentType</RequestHeader>
        <RequestHeader>Authorization</RequestHeader>
        <RequestHeader>Cookie</RequestHeader>
      </CommonRequestHeaders>
      <CommonResponseHeaders>
        <ResponseHeader>ETag</ResponseHeader>
        <ResponseHeader>Location</ResponseHeader>
        <ResponseHeader>ContentLocation</ResponseHeader>
        <ResponseHeader>ContentLength</ResponseHeader>
        <ResponseHeader>ContentType</ResponseHeader>
        <ResponseHeader>SetCookie</ResponseHeader>
      </CommonResponseHeaders>
    </ResourceOperation>
    <ResourceOperation>
      <Name>DELETE</Name>
      <MediaTypes>
        <MediaType>application/json</MediaType>
        <MediaType>text/xml</MediaType>
        <MediaType>binary/xml</MediaType>
        <MediaType>application/rss+xml</MediaType>
        <MediaType>application/atom+xml</MediaType>
      </MediaTypes>
      <ExpectedStatusCodes>
        <StatusCode>OK</StatusCode>
        <StatusCode>InternalServerError</StatusCode>
        <StatusCode>PreconditionFailed</StatusCode>
      </ExpectedStatusCodes>
      <CommonRequestHeaders>
        <RequestHeader>IfMatch</RequestHeader>
        <RequestHeader>Authorization</RequestHeader>
        <RequestHeader>Cookie</RequestHeader>
      </CommonRequestHeaders>
      <CommonResponseHeaders>
        <ResponseHeader>SetCookie</ResponseHeader>
      </CommonResponseHeaders>
    </ResourceOperation>
  </SupportedMethods>
  <IsSubscribable>true</IsSubscribable>
  <ResourceSchema>
    <xs:schema xmlns:tns="http://user.windows.net" elementFormDefault="qualified" targetNamespace="http://user.windows.net" xmlns:xs="http://www.w3.org/2001/XMLSchema">
      <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
      <xs:complexType name="MeshObject">
        <xs:complexContent mixed="false">
          <xs:extension base="tns:Resource">
            <xs:sequence>
              <xs:element minOccurs="0" name="ActivitiesLink" nillable="true" type="xs:anyURI">
                <xs:annotation>
                  <xs:appinfo>
                    <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
                  </xs:appinfo>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="DataFeedsLink" nillable="true" type="xs:anyURI">
                <xs:annotation>
                  <xs:appinfo>
                    <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
                  </xs:appinfo>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="MappingsLink" nillable="true" type="xs:anyURI">
                <xs:annotation>
                  <xs:appinfo>
                    <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
                  </xs:appinfo>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="MembersLink" nillable="true" type="xs:anyURI">
                <xs:annotation>
                  <xs:appinfo>
                    <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
                  </xs:appinfo>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="NewsFeedLink" nillable="true" type="xs:anyURI">
                <xs:annotation>
                  <xs:appinfo>
                    <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
                  </xs:appinfo>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="SubscriptionLink" nillable="true" type="xs:anyURI">
                <xs:annotation>
                  <xs:appinfo>
                    <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
                  </xs:appinfo>
                </xs:annotation>
              </xs:element>
              <xs:element minOccurs="0" name="Type" nillable="true" type="xs:string">
                <xs:annotation>
                  <xs:appinfo>
                    <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
                  </xs:appinfo>
                </xs:annotation>
              </xs:element>
            </xs:sequence>
          </xs:extension>
        </xs:complexContent>
      </xs:complexType>
      <xs:element name="MeshObject" nillable="true" type="tns:MeshObject" />
      <xs:complexType name="Resource">
        <xs:sequence>
          <xs:element minOccurs="0" name="AttributeExtensions" nillable="true" type="tns:ArrayOfResourceAttributeExtension">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="AuthorProfileLink" nillable="true" type="xs:anyURI">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Authors" nillable="true" type="tns:ArrayOfPerson">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="BaseUri" nillable="true" type="xs:anyURI">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Categories" nillable="true" type="tns:ArrayOfCategory">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Contributors" nillable="true" type="tns:ArrayOfPerson">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Copyright" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ElementExtensions" nillable="true" type="tns:ArrayOfResourceMarkupExtension">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Expansions" nillable="true" xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" type="q1:ArrayOfKeyValueOfanyURIExpansionInfo3ElPQ47_P">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Id" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="IsDeleted" type="xs:boolean">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="LastUpdatedTime" type="xs:dateTime">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Links" nillable="true" type="tns:ArrayOfLink">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PublishDate" type="xs:dateTime">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="SelfLink" nillable="true" type="xs:anyURI">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Summary" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Title" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Triggers" nillable="true" type="tns:Triggers">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="UserData" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="UserDataBuffer" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="UserDataInfoset" type="tns:Infoset">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:element name="Resource" nillable="true" type="tns:Resource" />
      <xs:complexType name="ArrayOfResourceAttributeExtension">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="ResourceAttributeExtension" nillable="true" type="tns:ResourceAttributeExtension" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ArrayOfResourceAttributeExtension" nillable="true" type="tns:ArrayOfResourceAttributeExtension" />
      <xs:complexType name="ResourceAttributeExtension">
        <xs:sequence>
          <xs:element minOccurs="0" name="Content" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Name" nillable="true" type="xs:QName">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ResourceAttributeExtension" nillable="true" type="tns:ResourceAttributeExtension" />
      <xs:complexType name="ArrayOfPerson">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Person" nillable="true" type="tns:Person" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ArrayOfPerson" nillable="true" type="tns:ArrayOfPerson" />
      <xs:complexType name="Person">
        <xs:sequence>
          <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Uri" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Email" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:element name="Person" nillable="true" type="tns:Person" />
      <xs:complexType name="ArrayOfCategory">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Category" nillable="true" type="tns:Category" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ArrayOfCategory" nillable="true" type="tns:ArrayOfCategory" />
      <xs:complexType name="Category">
        <xs:sequence>
          <xs:element minOccurs="0" name="Label" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Scheme" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:element name="Category" nillable="true" type="tns:Category" />
      <xs:complexType name="ArrayOfResourceMarkupExtension">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="ResourceMarkupExtension" nillable="true" type="tns:ResourceMarkupExtension" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ArrayOfResourceMarkupExtension" nillable="true" type="tns:ArrayOfResourceMarkupExtension" />
      <xs:complexType name="ResourceMarkupExtension">
        <xs:sequence>
          <xs:element minOccurs="0" name="Content" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="IsXmlContent" type="xs:boolean">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Name" nillable="true" type="xs:QName">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ResourceMarkupExtension" nillable="true" type="tns:ResourceMarkupExtension" />
      <xs:complexType name="ExpansionInfo">
        <xs:sequence>
          <xs:element minOccurs="0" name="ETag" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Expansion" nillable="true" type="xs:anyType">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="ExpansionBuffer" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="MediaType" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ExpansionInfo" nillable="true" type="tns:ExpansionInfo" />
      <xs:complexType name="ArrayOfLink">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="Link" nillable="true" type="tns:Link" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ArrayOfLink" nillable="true" type="tns:ArrayOfLink" />
      <xs:complexType name="Link">
        <xs:sequence>
          <xs:element minOccurs="0" name="BaseUri" nillable="true" type="xs:anyURI">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Length" type="xs:long">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="MediaType" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="RelationshipType" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Title" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Uri" nillable="true" type="xs:anyURI">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:element name="Link" nillable="true" type="tns:Link" />
      <xs:complexType name="Triggers">
        <xs:sequence>
          <xs:element minOccurs="0" name="PreCreateTrigger" nillable="true" type="tns:ResourceScript">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PostCreateTrigger" nillable="true" type="tns:ResourceScript">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PreUpdateTrigger" nillable="true" type="tns:ResourceScript">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PostUpdateTrigger" nillable="true" type="tns:ResourceScript">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PreDeleteTrigger" nillable="true" type="tns:ResourceScript">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="PostDeleteTrigger" nillable="true" type="tns:ResourceScript">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:element name="Triggers" nillable="true" type="tns:Triggers" />
      <xs:complexType name="ResourceScript">
        <xs:sequence>
          <xs:element minOccurs="0" name="Source" nillable="true" type="tns:Statement">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Result" nillable="true" type="tns:Statement">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ResourceScript" nillable="true" type="tns:ResourceScript" />
      <xs:complexType name="Statement">
        <xs:sequence>
          <xs:element minOccurs="0" name="Bindings" nillable="true" type="tns:ArrayOfStatementBinding">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Description" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:element name="Statement" nillable="true" type="tns:Statement" />
      <xs:complexType name="ArrayOfStatementBinding">
        <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="StatementBinding" nillable="true" type="tns:StatementBinding" />
        </xs:sequence>
      </xs:complexType>
      <xs:element name="ArrayOfStatementBinding" nillable="true" type="tns:ArrayOfStatementBinding" />
      <xs:complexType name="StatementBinding">
        <xs:sequence>
          <xs:element minOccurs="0" name="Target" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
          <xs:element minOccurs="0" name="TargetProperty" nillable="true" type="xs:string">
            <xs:annotation>
              <xs:appinfo>
                <DefaultValue EmitDefaultValue="false" xmlns="http://schemas.microsoft.com/2003/10/Serialization/" />
              </xs:appinfo>
            </xs:annotation>
          </xs:element>
        </xs:sequence>
      </xs:complexType>
      <xs:element name="StatementBinding" nillable="true" type="tns:StatementBinding" />
      <xs:simpleType name="Infoset">
        <xs:restriction base="xs:string">
          <xs:enumeration value="JXml" />
          <xs:enumeration value="Json" />
        </xs:restriction>
      </xs:simpleType>
      <xs:element name="Infoset" nillable="true" type="tns:Infoset" />
    </xs:schema>
  </ResourceSchema>
  <IsExtensible>true</IsExtensible>
</ResourceEntryDescription>

The $metadata Query Parameter

You can use the $metadata query parameter with an HTTP GET request to return information about a given resource or resource collection by appending $metadata to the end of the request URI. This eliminates the need to perform an operation on the actual resource. The information is a superset of the information that is returned when using the OPTIONS verb. The information is returned in XML format by default, unless a query parameter of $format=[json|html] is specified. Using the $metadata query parameter will provide the following information:

  • The supported authentication model
  • The concurrency control in use
  • An indication of whether the resource is extensible
  • A list of supported media types
  • A list of query supported parameters
  • A list of relationships for the resource
  • A list of supported methods
  • The schema for the resource

The ResourceDescription Class in Managed Code

If the client is making use of a managed library, the information obtained by using the $metadata query parameter can also be obtained from the ResourceDescription class. Each resource implements a static function, GetResourceDescription() which returns an instance of ResourceDescription.

© 2009 Microsoft Corporation. All rights reserved. Terms of Use  |  Trademarks  |  Privacy Statement
Page view tracker