<?xml version="1.0" encoding="utf-8"?>
<xsd:schema 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  xmlns:dc="http://dublincore.org/schemas/xmls/qdc/dc.xsd" 
  xmlns:dcterms="http://dublincore.org/schemas/xmls/qdc/dcterms.xsd" 
  xmlns:powder="http://www.w3.org/2007/05/powder#" 
  targetNamespace="http://www.w3.org/2007/05/powder#" 
  elementFormDefault="qualified" 
  attributeFormDefault="unqualified" 
  version="1.0" 
  xmlns:data-view="http://www.w3.org/2003/g/data-view#"
  data-view:transformation="http://www.w3.org/2007/powder/powder2powderS.xsl"
  xml:lang="en">

  <xsd:annotation>
    <xsd:documentation xml:lang="en">
      <dc:title>Protocol for Web Description Resources (POWDER): POWDER XML Schema (WDR)</dc:title>
      <dc:type>W3C Working Group Draft</dc:type>
      <dcterms:issued>13 February 2009</dcterms:issued>
      <dc:identifier>http://www.w3.org/2007/05/powder-2009-02-13/</dc:identifier>
      <dc:creator>Kevin Smith, Vodafone Group R &amp; D</dc:creator>
      <dc:creator>Andrea Perego, Universit&#xe0; degli Studi dell'Insubria</dc:creator>
      <dc:contributor>all members of the POWDER Working Group</dc:contributor>
      <dc:rights>
        <div xmlns="http://www.w3.org/1999/xhtml">
          <p class="copyright"><a href="http://www.w3.org/Consortium/Legal/ipr-notice#Copyright">Copyright</a> &#xa9; 2007-2009 <a href="http://www.w3.org/"><acronym title="World Wide Web Consortium">W3C</acronym></a><sup>&#xae;</sup> (<a href="http://www.csail.mit.edu/"><acronym title="Massachusetts Institute of Technology">MIT</acronym></a>, <a href="http://www.ercim.org/"><acronym title="European Research Consortium for Informatics and Mathematics">ERCIM</acronym></a>, <a href="http://www.keio.ac.jp/">Keio</a>), All Rights Reserved. W3C <a href="http://www.w3.org/Consortium/Legal/ipr-notice#Legal_Disclaimer">liability</a>, <a href="http://www.w3.org/Consortium/Legal/ipr-notice#W3C_Trademarks">trademark</a> and <a href="http://www.w3.org/Consortium/Legal/copyright-documents">document use</a> rules apply.</p>
        </div>
      </dc:rights>
      <dcterms:abstract>
        <div xmlns="http://www.w3.org/1999/xhtml">
          <p>This is the namespace document for the POWDER XML schema. It defines a set of high level IRI constraints for Internet-based IRIs.</p>
        </div>
      </dcterms:abstract>
      <dc:description>
        <div xmlns="http://www.w3.org/1999/xhtml">
          <p>This namespace document describes the POWDER XML schema, which extends and re-defines the POWDER-BASE XML schema [<a href="#ref-powder-base">POWDER-BASE</a>], by defining a set of high level IRI constraints, for Internet-based IRI, denoted by the fact that they all include a host component (such as IRIs with schemes <code>http</code> and <code>ftp</code>).</p>
          <p>More precisely, it defines a new set of child elements of <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a>, plus an element, namely <a href="#abouthosts"><code>abouthosts</code></a>, which is used instead of the <a href="http://www.w3.org/2007/05/powder/#aboutregex"><code>aboutregex</code></a> element defined in POWDER-BASE.</p>
        </div>
      </dc:description>
      <dcterms:references>
        <div xmlns="http://www.w3.org/1999/xhtml">
          <dt id="ref-waf">WAF</dt>
          <dd><cite><a href="http://www.w3.org/TR/2007/WD-access-control-20071001/#access0">Enabling Read Access for Web Resources</a></cite> A. van Kesteren. W3C Working Draft 1 October 2007. This document is at http://www.w3.org/TR/2007/WD-access-control-20071001/#access0.</dd>
        </div>
      </dcterms:references>
    </xsd:documentation>
  </xsd:annotation>
  
  <xsd:redefine schemaLocation="http://www.w3.org/2007/05/powder/wdrb.xsd">
    <xsd:complexType name="AttributionType">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          <p xmlns="http://www.w3.org/1999/xhtml">This type re-defines the structure of the <a href="http://www.w3.org/2007/05/powder/#attribution"><code>attribution</code></a> element, by substituting element <a href="http://www.w3.org/2007/05/powder/#aboutregex"><code>aboutregex</code></a> with <a href="#abouthosts"><code>abouthosts</code></a>.</p>
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="powder:AttributionType">
          <xsd:sequence>
            <xsd:element name="abouthosts" type="powder:iriHostList" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a space-separated list of strings <var>S</var><sub>1</sub> &#x2026; <var>S</var><sub><var>n</var></sub>, denoting the set of IRIs where the host component ends with string <var>S</var><sub>1</sub> OR &#x2026; OR string <var>S</var><sub><var>n</var></sub>. This element can occur at most one time as a child of the <a href="http://www.w3.org/2007/05/powder/#attribution"><code>attribution</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
  </xsd:redefine>
  
  <xsd:redefine schemaLocation="http://www.w3.org/2007/05/powder/wdrb.xsd">
    <xsd:complexType name="IRISetType">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          <p xmlns="http://www.w3.org/1999/xhtml">This type re-defines the structure of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element, by defining a set of elements, expressing high level constraints on IRIs.</p>
        </xsd:documentation>
      </xsd:annotation>
      <xsd:complexContent>
        <xsd:extension base="powder:IRISetType">
          <xsd:sequence>
            <xsd:element name="includeschemes" type="powder:iriSchemeList" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a space-separated list of strings <var>S</var><sub>1</sub> &#x2026; <var>S</var><sub><var>n</var></sub>, denoting the set of IRIs where the scheme component starts with string <var>S</var><sub>1</sub> OR &#x2026; OR string <var>S</var><sub><var>n</var></sub>. This element can occur at most one time as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="excludeschemes" type="powder:iriSchemeList" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a space-separated list of strings <var>S</var><sub>1</sub> &#x2026; <var>S</var><sub><var>n</var></sub>, denoting the set of IRIs where the scheme component does not start with string <var>S</var><sub>1</sub> OR &#x2026; OR string <var>S</var><sub><var>n</var></sub>. This element can occur at most one time as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="includehosts" type="powder:iriHostList" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a space-separated list of strings <var>S</var><sub>1</sub> &#x2026; <var>S</var><sub><var>n</var></sub>, denoting the set of IRIs where the host component ends with string <var>S</var><sub>1</sub> OR &#x2026; OR string <var>S</var><sub><var>n</var></sub>. This element can occur at most one time as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="excludehosts" type="powder:iriHostList" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a space-separated list of strings <var>S</var><sub>1</sub> &#x2026; <var>S</var><sub><var>n</var></sub>, denoting the set of IRIs where the scheme component does not end with string <var>S</var><sub>1</sub> OR &#x2026; OR string <var>S</var><sub><var>n</var></sub>. This element can occur at most one time as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="includeports" type="powder:iriPortList" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a space-separated list of strings <var>S</var><sub>1</sub> &#x2026; <var>S</var><sub><var>n</var></sub>, denoting the set of IRIs where the port component matches string <var>S</var><sub>1</sub> OR &#x2026; OR string <var>S</var><sub><var>n</var></sub>. This element can occur at most one time as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="excludeports" type="powder:iriPortList" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a space-separated list of strings <var>S</var><sub>1</sub> &#x2026; <var>S</var><sub><var>n</var></sub>, denoting the set of IRIs where the port component does not match string <var>S</var><sub>1</sub> OR &#x2026; OR string <var>S</var><sub><var>n</var></sub>. This element can occur at most one time as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="includeexactpaths" type="powder:iriPathList" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a space-separated list of strings <var>S</var><sub>1</sub> &#x2026; <var>S</var><sub><var>n</var></sub>, denoting the set of IRIs where the path component matches string <var>S</var><sub>1</sub> OR &#x2026; OR string <var>S</var><sub><var>n</var></sub>. This element can occur at most one time as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="excludeexactpaths" type="powder:iriPathList" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a space-separated list of strings <var>S</var><sub>1</sub> &#x2026; <var>S</var><sub><var>n</var></sub>, denoting the set of IRIs where the path component does not match string <var>S</var><sub>1</sub> OR &#x2026; OR string <var>S</var><sub><var>n</var></sub>. This element can occur at most one time as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="includepathcontains" type="powder:iriPathList" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a space-separated list of strings <var>S</var><sub>1</sub> &#x2026; <var>S</var><sub><var>n</var></sub>, denoting the set of IRIs where the path component contains string <var>S</var><sub>1</sub> OR &#x2026; OR string <var>S</var><sub><var>n</var></sub>. This element can occur 0 or more times as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code>
                    </a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="excludepathcontains" type="powder:iriPathList" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a space-separated list of strings <var>S</var><sub>1</sub> &#x2026; <var>S</var><sub><var>n</var></sub>, denoting the set of IRIs where the path component does not contain string <var>S</var><sub>1</sub> OR &#x2026; OR string <var>S</var><sub><var>n</var></sub>. This element can occur 0 or more times as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="includepathstartswith" type="powder:iriPathList" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a space-separated list of strings <var>S</var><sub>1</sub> &#x2026; <var>S</var><sub><var>n</var></sub>, denoting the set of IRIs where the path component starts with string <var>S</var><sub>1</sub> OR &#x2026; OR string <var>S</var><sub><var>n</var></sub>. This element can occur at most one time as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="excludepathstartswith" type="powder:iriPathList" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a space-separated list of strings <var>S</var><sub>1</sub> &#x2026; <var>S</var><sub><var>n</var></sub>, denoting the set of IRIs where the path component does not starts with string <var>S</var><sub>1</sub> OR &#x2026; OR string <var>S</var><sub><var>n</var></sub>. This element can occur at most one time as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="includepathendswith" type="powder:iriPathList" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a space-separated list of strings <var>S</var><sub>1</sub> &#x2026; <var>S</var><sub><var>n</var></sub>, denoting the set of IRIs where the path component ends with string <var>S</var><sub>1</sub> OR &#x2026; OR string <var>S</var><sub><var>n</var></sub>. This element can occur at most one time as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="excludepathendswith" type="powder:iriPathList" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a space-separated list of strings <var>S</var><sub>1</sub> &#x2026; <var>S</var><sub><var>n</var></sub>, denoting the set of IRIs where the path component does not end with string <var>S</var><sub>1</sub> OR &#x2026; OR string <var>S</var><sub><var>n</var></sub>. This element can occur at most one time as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="includequerycontains" type="powder:QueryContainsType" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a string <var>S</var>, denoting the set of IRIs where the query component contains string <var>S</var>. This element can occur 0 or more times as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="excludequerycontains" type="powder:QueryContainsType" minOccurs="0" maxOccurs="unbounded">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a string <var>S</var>, denoting the set of IRIs where the query component does not contain string <var>S</var>. This element can occur 0 or more times as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="includeiripattern" type="powder:iriPattern" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value an IRI pattern, specified according to the syntax of an access item, as defined in [<a href="#ref-waf">WAF</a>], denoting the set of IRIs matching that pattern. This element can occur at most one time as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="excludeiripattern" type="powder:iriPattern" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value an IRI pattern, specified according to the syntax of an access item, as defined in [<a href="#ref-waf">WAF</a>], denoting the set of IRIs which do not match that pattern. This element can occur at most 1 time as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="includeresources" type="powder:iriList" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a space-separated list of strings <var>S</var><sub>1</sub> &#x2026; <var>S</var><sub><var>n</var></sub>, denoting the set of IRIs matching string <var>S</var><sub>1</sub> OR &#x2026; OR string <var>S</var><sub><var>n</var></sub>. This element can occur at most one time as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
            <xsd:element name="excluderesources" type="powder:iriList" minOccurs="0">
              <xsd:annotation>
                <xsd:documentation xml:lang="en">
                  <p xmlns="http://www.w3.org/1999/xhtml">This element takes as value a space-separated list of strings <var>S</var><sub>1</sub> &#x2026; <var>S</var><sub><var>n</var></sub>, denoting the set of IRIs which do not match string <var>S</var><sub>1</sub> OR &#x2026; OR string <var>S</var><sub><var>n</var></sub>. This element can occur at most one time as a child of the <a href="http://www.w3.org/2007/05/powder/#iriset"><code>iriset</code></a> element.</p>
                </xsd:documentation>
              </xsd:annotation>
            </xsd:element>
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
  </xsd:redefine>
  
  <xsd:complexType name="QueryContainsType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This type defines the structure of the <a href="#includequerycontains"><code>includequerycontains</code></a> and <a href="#excludequerycontains"><code>excludequerycontains</code></a> elements, which consists of a string of type <a href="http://www.w3.org/2007/05/powder/#iriQuery"><code>iriQuery</code></a>, and an optional attribute <a href="#delimiter"><code>delimiter</code></a>, denoting the character used to separate parameter-value pairs in the IRI query string. The default value for such attribute is <code>&amp;</code> (&quot;ampersand&quot;).</p>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="powder:iriQuery">
        <xsd:attribute name="delimiter">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              <p xmlns="http://www.w3.org/1999/xhtml">This attribute is used to denote the character delimiting parameter-value pairs in elements <a href="#includequerycontains"><code>includequerycontains</code></a> and <a href="#excludequerycontains"><code>excludequerycontains</code></a>.</p>
            </xsd:documentation>
          </xsd:annotation>
          <xsd:simpleType>
            <xsd:restriction base="xsd:string">
              <xsd:pattern value="[^\s]{1,1}"/>
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:attribute>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  
</xsd:schema>
