﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns="http://www.w3.org/1999/xlink" elementFormDefault="qualified" targetNamespace="http://www.w3.org/1999/xlink" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import namespace="http://www.w3.org/XML/1998/namespace" />
  <xs:element name="resource">
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:any minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute fixed="resource" name="type">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="resource" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="role" type="xs:string" />
      <xs:attribute name="label" type="xs:NMTOKEN" />
    </xs:complexType>
  </xs:element>
  <xs:element name="simple">
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:any minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute name="href" type="xs:string" />
      <xs:attribute name="actuate">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="onLoad" />
            <xs:enumeration value="onRequest" />
            <xs:enumeration value="other" />
            <xs:enumeration value="none" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="show">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="new" />
            <xs:enumeration value="replace" />
            <xs:enumeration value="embed" />
            <xs:enumeration value="other" />
            <xs:enumeration value="none" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute fixed="simple" name="type">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="simple" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="role" type="xs:string" />
      <xs:attribute name="arcrole" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="title">
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:any minOccurs="0" maxOccurs="unbounded" />
      </xs:sequence>
      <xs:attribute ref="xml:lang" />
      <xs:attribute fixed="title" name="type">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="title" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="locator">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="title" />
      </xs:sequence>
      <xs:attribute name="href" type="xs:string" use="required" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute fixed="locator" name="type">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="locator" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="role" type="xs:string" />
      <xs:attribute name="label" type="xs:NMTOKEN" />
    </xs:complexType>
  </xs:element>
  <xs:element name="extended">
    <xs:complexType>
      <xs:sequence>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element ref="title" />
          <xs:element ref="resource" />
          <xs:element ref="locator" />
          <xs:element ref="arc" />
        </xs:choice>
      </xs:sequence>
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute fixed="extended" name="type">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="extended" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="role" type="xs:string" />
    </xs:complexType>
  </xs:element>
  <xs:element name="arc">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="title" />
      </xs:sequence>
      <xs:attribute name="show">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="new" />
            <xs:enumeration value="replace" />
            <xs:enumeration value="embed" />
            <xs:enumeration value="other" />
            <xs:enumeration value="none" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="actuate">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="onLoad" />
            <xs:enumeration value="onRequest" />
            <xs:enumeration value="other" />
            <xs:enumeration value="none" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="from" type="xs:NMTOKEN" />
      <xs:attribute name="to" type="xs:NMTOKEN" />
      <xs:attribute name="title" type="xs:string" />
      <xs:attribute fixed="arc" name="type">
        <xs:simpleType>
          <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="arc" />
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="arcrole" type="xs:string" />
    </xs:complexType>
  </xs:element>
</xs:schema>