<?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" xml:lang="en">
	<!-- include the elements and attributes with built-in datatypes-->
	<xsd:include schemaLocation="./wdrb-p.xsd"/>
	<!-- include the elements and attributes with custom POWDER-base datatypes-->
	<xsd:include schemaLocation="./wdrb-c.xsd"/>
	<xsd:annotation>
		<xsd:documentation xml:lang="en">
			<dc:title>Protocol for Web Description Resources (POWDER): Web Description Resources XML Schema (WDR)</dc:title>
			<dc:type>W3C Working Group Draft</dc:type>
			<dcterms:issued>18 June 2008</dcterms:issued>
			<dc:identifier>http://www.w3.org/2007/05/powder-20080618/</dc:identifier>
			<dc:creator>Andrea Perego, Universit&#xe0; degli Studi dell'Insubria</dc:creator>
			<dc:creator>Kevin Smith, Vodafone Group R &amp; D</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 <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>powder: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>powder: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-ac">[AC]</dt>
					<dd>
						<cite>
							<a href="http://www.w3.org/TR/access-control/">Access Control for Cross-site Requests</a>
						</cite>, A van Kesteren. This document is at http://www.w3.org/TR/access-control/</dd>
				</div>
			</dcterms:references>
			<dcterms:references>
				<div xmlns="http://www.w3.org/1999/xhtml">
					<dt id="ref-powder-base">[POWDER-BASE]</dt>
					<dd>
						<cite>
							<a href="http://www.w3.org/2007/05/powder-base">Protocol for Web Description Resources (POWDER): Web Description Resources "Base" XML Schema (WDRB)</a>
						</cite>, A Perego, K Smith. This document is at http://www.w3.org/2007/05/powder-base</dd>
				</div>
			</dcterms:references>
		</xsd:documentation>
	</xsd:annotation>
	<xsd:redefine schemaLocation="./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>powder: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>powder: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>powder: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>powder: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>powder: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>powder: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>powder: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>powder: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>powder: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>powder: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>powder: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>powder: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>powder: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>powder: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>powder: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" class="edNote">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>powder: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" class="edNote">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>powder: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-ac">AC</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>powder:iriset</code>
										</a> element.</p>
									<p xmlns="http://www.w3.org/1999/xhtml" class="edNote">I'm not sure this should be part of POWDER. Maybe, it is preferable to define it in a separate schema.</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-ac">AC</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>powder:iriset</code>
										</a> element.</p>
									<p xmlns="http://www.w3.org/1999/xhtml" class="edNote">I'm not sure this should be part of POWDER. Maybe, it is preferable to define it in a separate schema.</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>powder: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>powder: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>powder: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>.</p>
			</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleContent>
			<xsd:extension base="powder:iriQuery">
				<xsd:attribute ref="powder:delimiter" default="&amp;"/>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>
	<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:element name="abouthosts" type="powder:iriHostList">
		<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>powder:attribution</code>
					</a> element.</p>
			</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
</xsd:schema>
