<?xml version="1.0" encoding="utf-8"?>
<xsd:schema 
  xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
  xmlns:dc="http://purl.org/dc/elements/1.1/" 
  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns" 
  xmlns:powder="http://www.w3.org/2007/05/powder#" 
  xmlns:foaf="http://xmlns.com/foaf/0.1/" 
  targetNamespace="http://www.w3.org/2007/05/powder#" 
  elementFormDefault="qualified" 
  attributeFormDefault="unqualified" 
  version="1.0" 
  xml:lang="en">
  
  <!-- include powder base definitions and datatypes-->
  <xsd:include schemaLocation="http://www.w3.org/2007/05/powder/wdrd.xsd"/>
  <xsd:import namespace="http://www.w3.org/1999/02/22-rdf-syntax-ns" schemaLocation="http://www.w3.org/2007/05/powder/powder-rdfxml.xsd"/>
  
  <xsd:annotation>
    <xsd:documentation xml:lang="en">
      <dc:title>Protocol for Web Description Resources (POWDER): Web Description Resources "Base" XML Schema (WDRB)</dc:title>
      <dc:type>W3C Working Group Draft</dc:type>
      <dc:date>13 February 2009</dc:date>
      <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>
      <dc:abstract>
        <p xmlns="http://www.w3.org/1999/xhtml">This is the namespace document for the &quot;base&quot; XML schema used in the Protocol for Web Description resources (POWDER). It defines the structure for Description Resources where these are serialized in XML.</p>
      </dc:abstract>
      <dc:description>
        <div xmlns="http://www.w3.org/1999/xhtml">

        </div>
      </dc:description>
    </xsd:documentation>
  </xsd:annotation>

<!-- ELEMENTS: -->

  <xsd:element name="powder" type="powder:POWDERType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">The root element of a POWDER document.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="more" type="powder:SrcType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element is used to refer to another relevant POWDER document, by specifying its IRI as value of the <a href="#src"><code>src</code></a> attribute. It can occur any number of times in a POWDER document, and only as a child of the <a href="#powder"><code>powder</code></a> element.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="attribution" type="powder:AttributionType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element is used to encapsulate information about the current POWDER document. It can occur only one time in a POWDER document, and only as a child of the <a href="#powder">
            <code>powder</code>
          </a> element.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="issuedby" type="powder:SrcType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element is used to denote the author of the current POWDER document. It must occur exactly one time in a POWDER document, and only as a child of the <a href="#attribution"><code>attribution</code></a> element.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="issued" type="xsd:dateTime">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element is used to denote the issue date of the current POWDER document. It can occur only one time in a POWDER document, and only as a child of the <a href="#attribution"><code>attribution</code></a> element.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="validfrom" type="xsd:dateTime">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element is used to denote the date from which a POWDER document is valid. It can occur only one time in a POWDER document, and only as a child of the <a href="#attribution"><code>attribution</code></a> element.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="validuntil" type="xsd:dateTime">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element is used to denote the date until which a POWDER document is valid. It can occur only one time in a POWDER document, and only as a child of the <a href="#attribution"><code>attribution</code></a> element.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="certifiedby" type="powder:SrcType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element provides a pointer, expressed as an IRI, to a third-party certifying the current POWDER document. It can occur any number of times in a POWDER document, and only as a child of the <a href="#attribution"><code>attribution</code></a> element.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="aboutregex" type="powder:iriRegEx">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element denotes, through a regular expression, the set of IRIs to which the DRs in a POWDER document apply. As such, it is a set of IRIs including the union of the set of IRIs denoted by all the instances of the <a href="#iriset"><code>iriset</code></a> element in a given POWDER document.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="ol" type="powder:OlType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element denotes an ordered list of DRs. It can appear in a POWDER document in alternative to elements <a href="#dr"><code>dr</code></a> and <a href="#descriptorset"><code>descriptorset</code></a>, only as a child of the <a href="#powder"><code>powder</code></a> element, and it can occur any number of times.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="dr" type="powder:DRType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element denotes a Description Resource (DR). It can occur any number of times in a POWDER document, and only as a child of elements <a href="#powder"><code>powder</code></a> and <a href="#ol"><code>ol</code></a>.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="descriptorset" type="powder:DescriptorsetType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element denotes the description of the resources in the DR scope, expressed by a set of descriptors, defined in specific vocabularies. It must occur exactly one time in a DR, and only as a child of elements <a href="#powder"><code>powder</code></a> and <a href="#dr"><code>dr</code></a>.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="iriset" type="powder:IRISetType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element denotes a set of IRIs of the resources in the DR scope, expressed by instances of elements <a href="#includeregex"><code>includeregex</code></a> and <a href="#excluderegex"><code>excluderegex</code></a>. It must occur at least one time in a DR, and only as a child of the <a href="#dr"><code>dr</code></a> element.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="includeregex" type="powder:iriRegEx">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element denotes, through a regular expression, the set of IRIs matching the specified pattern.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="excluderegex" type="powder:iriRegEx">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element denotes, through a regular expression, the set of IRIs which do not match the specified pattern.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
      
  <xsd:element name="typeof" type="powder:SrcType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element is used for asserting that all the resources identified in the IRI set are instances of a particular class - i.e., asserting the <code>rdf:type</code> property. I can occur any number of times as a child of the <a href="#descriptorset">descriptorset</a> element.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>

  <xsd:element name="seealso" type="powder:SrcType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element is used to associate a tag set and descriptor set with another descriptive or informative resource (not necessarily a POWDER document), by specifying its IRI as value of the <a href="#src"><code>src</code></a> attribute. It can occur any number of times as a child of the <a href="#descriptorset"><code>descriptorset</code></a> and <a href="#tagset"><code>tagset</code></a> elements.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="label" type="powder:TextType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">The purpose of this element is equivalent to the one of the RDF Schema property <code>rdfs:label</code>. It can occur any number of times as a child of elements <a href="#descriptorset">descriptorset</a> and <a href="#tagset">tagset</a>.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="comment" type="powder:TextType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">The purpose of this element is equivalent to the one of the RDF Schema property <code>rdfs:comment</code>. It can occur any number of times as a child of elements <a href="#descriptorset"><code>descriptorset</code></a> and <a href="#tagset"><code>tagset</code></a>.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="displaytext" type="powder:TextType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element is used to provide a textual summary of the statements in a DR. It should occur only one time in a DR, and only as a child of the <a href="#descriptorset"><code>descriptorset</code></a> element.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="displayicon" type="powder:SrcType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element is used to provide the IRI of an image corresponding to the graphic summary of a DR. It should occur only one time in a DR, and only as a child of the <a href="#descriptorset"><code>descriptorset</code></a> element.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="sha1sum" type="xsd:base64Binary">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element is used to encapsulate the SHA1 sum of the POWDER document denoted by the DR scope. It can occur only one time in a DR, and only as a child of the <a href="#descriptorset"><code>descriptorset</code></a> element.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="certified" type="xsd:boolean">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element is used to state whether a DR certifies the validity of the POWDER document denoted by the scope. It can occur only one time in a DR, and only as a child of the <a href="#descriptorset">
            <code>descriptorset</code></a> element.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="supportedby" type="powder:SrcType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element provides a pointer, expressed as an IRI, to a third-party from which data is available that will confirm the claims and assertions made in the DR. It can occur as a child of elements <a href="#attribution"><code>attribution</code></a> and <a href="#descriptorset"><code>descriptorset</code></a>.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="tagset" type="powder:TagsetType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element denotes the description of the resources in the DR scope, expressed by a set of tags...</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
  <xsd:element name="tag" type="xsd:token">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This element denotes a free text tag, describing a characteristics of the resources in the DR scope. It must occur at least one time in a DR, and only as a child of the <a href="#tagset"><code>tagset</code></a> element.</p>
      </xsd:documentation>
    </xsd:annotation>
  </xsd:element>
  
<!-- COMPLEX TYPES -->
    
  <xsd:complexType name="POWDERType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This type defines the structure of the <a href="#powder"><code>powder</code></a> element, which has as required child the <a href="#attribution"><code>attribution</code></a> element, as optional child the <a href="#more"><code>more</code></a> element, whereas any of elements <a href="#ol"><code>ol</code></a>, <a href="#descriptorset"><code>descriptorset</code></a>, and <a href="#dr"><code>dr</code></a> can occur zero or more times.</p>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element ref="powder:more" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element ref="powder:attribution"/>
      <xsd:choice maxOccurs="unbounded">
        <xsd:element ref="powder:ol"/>
        <xsd:element ref="powder:dr"/>
        <xsd:element ref="powder:descriptorset"/>
        <xsd:element ref="powder:tagset"/>
      </xsd:choice>
    </xsd:sequence>
    <xsd:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="lax" />
  </xsd:complexType>

  <xsd:complexType name="SrcType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This is the type for all element having a required attribute <a href="#src"><code>src</code></a>, and no child nodes.</p>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:any namespace="##any" minOccurs="0" maxOccurs="0"/>
    </xsd:sequence>
    <xsd:attribute name="src" type="xsd:anyURI" use="required">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          <p xmlns="http://www.w3.org/1999/xhtml">This attribute takes as value a single IRI.</p>
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  
  <xsd:complexType name="AttributionType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This type defines the structure of the <a href="#attribution"><code>attribution</code></a> element, which consists of seven child elements, namely, <a href="#issuedby"><code>issuedby</code></a>, which must occur exactly one time, and <a href="#issued"><code>issued</code></a>, <a href="#validfrom"><code>validfrom</code></a>, <a href="#validuntil"><code>validuntil</code></a>, <a href="#aboutregex"><code>aboutregex</code></a>, which can occur at most one time, and, finally, <a href="#certifiedby"><code>certifiedby</code></a> and <a href="#supportedby"><code>supportedby</code></a>, which can occur any number of times. Additionally, <a href="#attribution"><code>attribution</code></a> can include further elements from external vocabularies.</p>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element ref="powder:issuedby"/>
      <xsd:element ref="powder:issued" minOccurs="0"/>
      <xsd:element ref="powder:validfrom" minOccurs="0"/>
      <xsd:element ref="powder:validuntil" minOccurs="0"/>
      <xsd:element ref="powder:aboutregex" minOccurs="0"/>
      <xsd:element ref="powder:certifiedby" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:element ref="powder:supportedby" minOccurs="0" maxOccurs="unbounded"/>
      <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="lax" />
  </xsd:complexType>

  <xsd:complexType name="OlType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This type defines the structure of the <a href="#ol"><code>ol</code></a> element, which consists of a required child element, namely, the <a href="#dr"><code>dr</code></a> element, which must occur at least one time.</p>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element ref="powder:dr" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="lax" />
  </xsd:complexType>
  
  <xsd:complexType name="DRType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This type defines the structure of the <a href="#dr"><code>dr</code></a> element, which consists of two required child elements, namely, the <a href="#iriset"><code>iriset</code></a> element, which must occur at least one time, and one element, occuring exactly one time, which can be either the <a href="#descriptorset"><code>descriptorset</code></a> or the <a href="#tagset"><code>tagset</code></a> element, or both.</p>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element ref="powder:iriset" maxOccurs="unbounded"/>
      <xsd:choice maxOccurs="unbounded">
        <xsd:element ref="powder:descriptorset"/>
        <xsd:element ref="powder:tagset"/>
      </xsd:choice>
    </xsd:sequence>
    <xsd:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="lax" />
  </xsd:complexType>
  
  <xsd:complexType name="IRISetType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This type defines the structure of the <a href="#iriset"><code>iriset</code></a> element, which consists of two child elements, namely, element <a href="#includeregex"><code>includeregex</code></a>, which must occur exactly one or more times, and element <a href="#excluderegex"><code>excluderegex</code></a>, which is optional, and it can occur any number of times. Additionally, <a href="#iriset"><code>iriset</code></a> may have as children IRI constraints defined in separate XML schemas.</p>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element ref="powder:includeregex" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element ref="powder:excluderegex" minOccurs="0" maxOccurs="unbounded" />
      <xsd:any namespace="##other" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation xml:lang="en">
            <p xmlns="http://www.w3.org/1999/xhtml">This element is included in order to allow the extension of element <a href="#iriset"><code>iriset</code></a> with additional sets of IRI constraints, defined in separate XML schemas.</p>
          </xsd:documentation>
        </xsd:annotation>
      </xsd:any>
    </xsd:sequence>
    <xsd:anyAttribute namespace="##other" processContents="lax"/>
  </xsd:complexType>
  
  <xsd:complexType name="DescriptorsetType" mixed="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This type defines the structure of the <a href="#descriptorset"><code>descriptorset</code></a> element, which can have one of the following alternative forms:</p>
        <ul xmlns="http://www.w3.org/1999/xhtml">
          <li>If <code>descriptorset</code> is a direct child of element <a href="#powder"><code>powder</code></a>, it must be associated with attribute <code>xml:id</code> or <a href="#node"><code>node</code></a>, and include one or more child elements.</li>
          <li>If <code>descriptorset</code> is a child of element <a href="#dr"><code>dr</code></a>, it can include one or more child elements, unless it is associated with attribute <code>rdf:resource</code>, <a href="#src"><code>src</code></a> or <a href="#include"><code>include</code></a>. In such a case, no child elements are allowed.</li>
        </ul>
      </xsd:documentation>
    </xsd:annotation>

        <xsd:choice minOccurs="0" maxOccurs="unbounded">
          <xsd:any namespace="##other" processContents="lax"/>
          <xsd:element ref="powder:typeof"/>
          <xsd:element ref="powder:label"/>
          <xsd:element ref="powder:comment"/>
          <xsd:element ref="powder:displaytext"/>
          <xsd:element ref="powder:displayicon"/>
          <xsd:element ref="powder:sha1sum"/>
          <xsd:element ref="powder:certified"/>
          <xsd:element ref="powder:supportedby"/>
        </xsd:choice>
        <xsd:attribute name="src" type="xsd:anyURI">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              <p xmlns="http://www.w3.org/1999/xhtml">This attribute takes as value a single IRI referring to an instance of element <a href="#descriptorset"><code>descriptorset</code></a> included in an external POWDER document, specified through attribute <code>xml:id</code>.</p>
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute ref="rdf:resource"/>
        <xsd:attribute name="node" type="xsd:ID">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              <p xmlns="http://www.w3.org/1999/xhtml">This attribute associates an identifier to a <a href="#descriptorset"><code>descriptorset</code></a>, allowing other instances of element <a href="#descriptorset"><code>descriptorset</code></a> in the same POWDER document to refer to it by using the <a href="#include"><code>include</code></a> attribute.</p>
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:attribute name="include" type="xsd:IDREF">
          <xsd:annotation>
            <xsd:documentation xml:lang="en">
              <p xmlns="http://www.w3.org/1999/xhtml">This attribute takes as value the identifier of another instance of element <a href="#descriptorset"><code>descriptorset</code></a> in the same POWDER document, specified through attributes <a href="#node"><code>node</code></a> or <code>xml:id</code>.</p>
            </xsd:documentation>
          </xsd:annotation>
        </xsd:attribute>
        <xsd:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="lax" />

  </xsd:complexType>
  
  <xsd:complexType name="TagsetType">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This type defines the structure of the <a href="#tagset"><code>tagset</code></a> element, corresponding to one or more instances of the <a href="#tag"><code>tag</code></a> element, and to zero or more instances of elements <a href="#seealso"><code>seealso</code></a>, <a href="#comment"><code>comment</code></a>, and <a href="#label"><code>label</code></a>.</p>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element ref="powder:seealso"/>
        <xsd:element ref="powder:comment"/>
        <xsd:element ref="powder:label"/>
      </xsd:choice>
      <xsd:element ref="powder:tag" maxOccurs="unbounded"/>
      <xsd:choice minOccurs="0" maxOccurs="unbounded">
        <xsd:element ref="powder:seealso"/>
        <xsd:element ref="powder:comment"/>
        <xsd:element ref="powder:label"/>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>

<!-- ## Type for elements with textual content + optional xml:lang -->
    
  <xsd:complexType name="TextType" mixed="true">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        <p xmlns="http://www.w3.org/1999/xhtml">This is the type for all elements including textual content (possibly, with markup).</p>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence minOccurs="0" maxOccurs="unbounded">
      <xsd:any namespace="##other" processContents="lax"/>
    </xsd:sequence>
    <xsd:anyAttribute namespace="http://www.w3.org/XML/1998/namespace" processContents="lax" />
  </xsd:complexType>
  
</xsd:schema>

