<?xml version="1.0" encoding="UTF-8"?>
<!-- **************************************************************** -->
<!--                                                                  -->
<!-- **************************************************************** -->
<!-- ****************************************************************
  IC METADATA STANDARD FOR PUBLICATIONS
  ****************************************************************
  Module:   W3C XLink Declarations
  Version:  4.1
  Date:     2008-08-19
  Creators: Office of the Director of National Intelligence
  **************************************************************** -->
<!-- **************************************************************** -->
<!--                            INTRODUCTION                          -->
<!-- **************************************************************** -->
<!-- Intelligence Community Metadata Standard for Publications (IC MSP)
  was developed by the Office of the Director of National Intelligence
  (ODNI) for the express purpose of promoting document, product, and 
  general content interoperability between members of the Intelligence
  Community.
  
  IC MSP is being incorporated into the overall information sharing 
  policy and data standards framework of the ODNI in support of the 
  Information Sharing Strategy. It is expected that the name IC MSP
  will be deprecated as the transition to the new framework is 
  completed.
  
  It is envisioned that this schema or its components may be overriden
  for localized implementations. Therefore, permission to use, copy, 
  modify and distribute the IC MSP XML Schema and its accompanying 
  documentation for any purpose is hereby granted in perpetuity.
  
  Please reference the preceding two paragraphs in all copies or 
  variations. The developers make no representation about the 
  suitability of the schema for any purpose. It is provided "as is"
  without expressed or implied warranty.
  
  If you modify the IC MSP XML Schema in any way label your schema 
  as a variant of IC MSP. See the maintenance documentation as it 
  becomes available for more information.
  
  Please direct all questions, bug reports,or suggestions for changes
  to the Office of the Director of National Intelligence, Office of
  the Chief Information Officer
-->
<!-- **************************************************************** -->
<!-- This schema defines attributes and attribute groups for implementing 
     thw W3C XLink specification and is intended to be called by the 
     schemas defining the Intelligence Community Metadata Standard for 
     Publications (IC MSP),
     
     This schema is assigned the target namespace defined by W3C 
     for XLink, namely, "http://www.w3.org/1999/xlink". 
                                                                      -->
<!-- **************************************************************** -->
<!-- This module contains declarations of attributes and attribute
     groups to be used in IC MSP schemas to add XLink attributes to
     elements declared in those schemas.

     This module has NO dependencies on other modules.
     
     This module is not designed to be used by itself, it must be called
     by a schema which defines a document structure including elements
     to serve as Xlink elements. -->
<!-- **************************************************************** -->
<!--        Formal Change List for ICIS DSCA W3C XLink Schema         -->
<!-- **************************************************************** -->
<!-- The formal change list for this schema is at the end of the 
     schema.                                                          -->
<!-- **************************************************************** -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.w3.org/1999/xlink" targetNamespace="http://www.w3.org/1999/xlink">
  <xsd:annotation>
    <xsd:documentation xml:lang="en">
        W3C XML Schema module for W3C XLink-compliant attributes.
    </xsd:documentation>
  </xsd:annotation>
  <!-- ************************************************************* -->
  <!-- ATTRIBUTES DEFINED BY W3C REC-xlink-20010627................. -->
  <!-- ************************************************************* -->
  <!-- locator attribute -->
  <xsd:attribute name="href" type="xsd:anyURI">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        A hyperlink reference address.
      </xsd:documentation>
    </xsd:annotation>
  </xsd:attribute>
  <!-- semantic attributes -->
  <xsd:attribute name="role" type="xsd:anyURI">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        Identification of a resource that specifies the intended property of a hyperlink.  xlink:role may be used to categorize a link by its role. The value of this attribute must be a uniform resource identifier (URI).
      </xsd:documentation>
    </xsd:annotation>
  </xsd:attribute>
  <xsd:attribute name="arcrole" type="xsd:anyURI">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        Identification of a resource that specifies the intended property of a hyperlink.
      </xsd:documentation>
    </xsd:annotation>
  </xsd:attribute>
  <xsd:attribute name="title" type="xsd:string">
    <xsd:annotation>
      <xsd:documentation xml:lang="en">
        A concise description of the target of a hyperlink in a human-readable form used to provide a plain text description of the link for display during a mouse-over.
      </xsd:documentation>
    </xsd:annotation>
  </xsd:attribute>
  <!-- behavior attributes -->
  <xsd:attribute name="show">
    <xsd:annotation>
      <xsd:documentation>
             The 'show' attribute is used to communicate the desired presentation of the ending resource on traversal from the starting resource; it's value should be treated as follows: 
             new - load ending resource in a new window, frame, pane, or other presentation context
            replace - load the resource in the same window, frame, pane, or other presentation context
            embed - load ending resource in place of the presentation of the starting resource
            other - behavior is unconstrained; examine other markup in the link for hints 
            none - behavior is unconstrained 
          </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:enumeration value="new"/>
        <xsd:enumeration value="replace"/>
        <xsd:enumeration value="embed"/>
        <xsd:enumeration value="other"/>
        <xsd:enumeration value="none"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:attribute>
  <xsd:attribute name="actuate">
    <xsd:annotation>
      <xsd:documentation>
            The 'actuate' attribute is used to communicate the desired timing of traversal from the starting resource to the ending resource; it's value should be treated as follows:
             onLoad - traverse to the ending resource immediately on loading the starting resource 
             onRequest - traverse from the starting resource to the ending resource only on a post-loading event triggered for this purpose 
             other - behavior is unconstrained; examine other markup in link for hints 
             none - behavior is unconstrained
          </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleType>
      <xsd:restriction base="xsd:string">
        <xsd:enumeration value="onLoad"/>
        <xsd:enumeration value="onRequest"/>
        <xsd:enumeration value="other"/>
        <xsd:enumeration value="none"/>
      </xsd:restriction>
    </xsd:simpleType>
  </xsd:attribute>
  <!-- traversal attributes -->
  <xsd:attribute name="label" type="xsd:string"/>
  <xsd:attribute name="from" type="xsd:string"/>
  <xsd:attribute name="to" type="xsd:string"/>
  <!-- ************************************************************* -->
  <!-- ATTRIBUTE GROUPS SPECIFIC TO ODNI                         -->
  <!-- ************************************************************* -->
  <xsd:attributeGroup name="RequiredSimpleLinkAttributesGroup">
    <xsd:attribute name="type" type="xsd:NMTOKEN" fixed="simple" form="qualified">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          Identifies the type of Extensible Linking Language (XLink) element the current element is functioning as.  The value of this attribute is constrained to certain value(s) by the schema.  XLink elements can serve several functions. The function is indicated by the value of the attribute xlink:type. The value of xlink:type can be simple, extended, locator, arc, or resource. In addition to xlink:type, the XLink specification defines several other attributes which are used in various combinations to fulfill the various functions. These attributes are: xlink:href, xlink:arcrole, xlink:role, xlink:show, xlink:actuate, xlink:title, xlink:label, xlink:from, and xlink:to.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute ref="href" use="required"/>
    <xsd:attribute ref="role" use="optional"/>
    <xsd:attribute ref="arcrole" use="optional"/>
    <xsd:attribute ref="title" use="optional"/>
    <xsd:attribute ref="show" use="optional"/>
    <xsd:attribute ref="actuate" use="optional"/>
  </xsd:attributeGroup>
  <xsd:attributeGroup name="SimpleOrExtendedLinkAttributesGroup">
    <xsd:attribute name="type" use="required" form="qualified">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          Identifies the type of Extensible Linking Language (XLink) element the current element is functioning as.  The value of this attribute is constrained to certain value(s) by the schema.  XLink elements can serve several functions. The function is indicated by the value of the attribute xlink:type. The value of xlink:type can be simple, extended, locator, arc, or resource. In addition to xlink:type, the XLink specification defines several other attributes which are used in various combinations to fulfill the various functions. These attributes are: xlink:href, xlink:arcrole, xlink:role, xlink:show, xlink:actuate, xlink:title, xlink:label, xlink:from, and xlink:to.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:simpleType>
        <xsd:restriction base="xsd:NMTOKEN">
          <xsd:enumeration value="extended"/>
          <xsd:enumeration value="simple"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:attribute>
    <xsd:attribute ref="href" use="optional"/>
    <xsd:attribute ref="role" use="optional"/>
    <xsd:attribute ref="arcrole" use="optional"/>
    <xsd:attribute ref="title" use="optional"/>
    <xsd:attribute ref="show" use="optional"/>
    <xsd:attribute ref="actuate" use="optional"/>
  </xsd:attributeGroup>
  <xsd:attributeGroup name="SimpleOrResourceAttributesGroup">
    <xsd:attribute name="type" use="optional" form="qualified">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          Identifies the type of Extensible Linking Language (XLink) element the current element is functioning as.  The value of this attribute is constrained to certain value(s) by the schema.  XLink elements can serve several functions. The function is indicated by the value of the attribute xlink:type. The value of xlink:type can be simple, extended, locator, arc, or resource. In addition to xlink:type, the XLink specification defines several other attributes which are used in various combinations to fulfill the various functions. These attributes are: xlink:href, xlink:arcrole, xlink:role, xlink:show, xlink:actuate, xlink:title, xlink:label, xlink:from, and xlink:to.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:simpleType>
        <xsd:restriction base="xsd:NMTOKEN">
          <xsd:enumeration value="resource"/>
          <xsd:enumeration value="simple"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:attribute>
    <xsd:attribute ref="href" use="optional"/>
    <xsd:attribute ref="role" use="optional"/>
    <xsd:attribute ref="arcrole" use="optional"/>
    <xsd:attribute ref="title" use="optional"/>
    <xsd:attribute ref="show" use="optional"/>
    <xsd:attribute ref="actuate" use="optional"/>
    <xsd:attribute ref="label" use="optional"/>
  </xsd:attributeGroup>
  <!-- ************************************************************* -->
  <!-- ATTRIBUTE GROUPS SUGGESTED BY W3C REC-xlink-20010627          -->
  <!-- ************************************************************* -->
  <xsd:attributeGroup name="SimpleLinkAttributesGroup">
    <xsd:attribute name="type" type="xsd:NMTOKEN" fixed="simple" form="qualified">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          Identifies the type of Extensible Linking Language (XLink) element the current element is functioning as.  The value of this attribute is constrained to certain value(s) by the schema.  XLink elements can serve several functions. The function is indicated by the value of the attribute xlink:type. The value of xlink:type can be simple, extended, locator, arc, or resource. In addition to xlink:type, the XLink specification defines several other attributes which are used in various combinations to fulfill the various functions. These attributes are: xlink:href, xlink:arcrole, xlink:role, xlink:show, xlink:actuate, xlink:title, xlink:label, xlink:from, and xlink:to.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute ref="href" use="optional"/>
    <xsd:attribute ref="role" use="optional"/>
    <xsd:attribute ref="arcrole" use="optional"/>
    <xsd:attribute ref="title" use="optional"/>
    <xsd:attribute ref="show" use="optional"/>
    <xsd:attribute ref="actuate" use="optional"/>
  </xsd:attributeGroup>
  <xsd:attributeGroup name="ExtendedLinkAttributesGroup">
    <xsd:attribute name="type" type="xsd:NMTOKEN" fixed="extended" form="qualified">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          Identifies the type of Extensible Linking Language (XLink) element the current element is functioning as.  The value of this attribute is constrained to certain value(s) by the schema.  XLink elements can serve several functions. The function is indicated by the value of the attribute xlink:type. The value of xlink:type can be simple, extended, locator, arc, or resource. In addition to xlink:type, the XLink specification defines several other attributes which are used in various combinations to fulfill the various functions. These attributes are: xlink:href, xlink:arcrole, xlink:role, xlink:show, xlink:actuate, xlink:title, xlink:label, xlink:from, and xlink:to.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute ref="role" use="optional"/>
    <xsd:attribute ref="title" use="optional"/>
  </xsd:attributeGroup>
  <xsd:attributeGroup name="LocatorAttributesGroup">
    <xsd:attribute name="type" type="xsd:NMTOKEN" fixed="locator" form="qualified">
    <xsd:annotation>
        <xsd:documentation xml:lang="en">
          Identifies the type of Extensible Linking Language (XLink) element the current element is functioning as.  The value of this attribute is constrained to certain value(s) by the schema.  XLink elements can serve several functions. The function is indicated by the value of the attribute xlink:type. The value of xlink:type can be simple, extended, locator, arc, or resource. In addition to xlink:type, the XLink specification defines several other attributes which are used in various combinations to fulfill the various functions. These attributes are: xlink:href, xlink:arcrole, xlink:role, xlink:show, xlink:actuate, xlink:title, xlink:label, xlink:from, and xlink:to.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute ref="href" use="required"/>
    <xsd:attribute ref="role" use="optional"/>
    <xsd:attribute ref="title" use="optional"/>
    <xsd:attribute ref="label" use="optional"/>
  </xsd:attributeGroup>
  <xsd:attributeGroup name="ArcAttributesGroup">
    <xsd:attribute name="type" type="xsd:NMTOKEN" fixed="arc" form="qualified">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          Identifies the type of Extensible Linking Language (XLink) element the current element is functioning as.  The value of this attribute is constrained to certain value(s) by the schema.  XLink elements can serve several functions. The function is indicated by the value of the attribute xlink:type. The value of xlink:type can be simple, extended, locator, arc, or resource. In addition to xlink:type, the XLink specification defines several other attributes which are used in various combinations to fulfill the various functions. These attributes are: xlink:href, xlink:arcrole, xlink:role, xlink:show, xlink:actuate, xlink:title, xlink:label, xlink:from, and xlink:to.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute ref="arcrole" use="optional"/>
    <xsd:attribute ref="title" use="optional"/>
    <xsd:attribute ref="show" use="optional"/>
    <xsd:attribute ref="actuate" use="optional"/>
    <xsd:attribute ref="from" use="optional"/>
    <xsd:attribute ref="to" use="optional"/>
  </xsd:attributeGroup>
  <xsd:attributeGroup name="ResourceAttributesGroup">
    <xsd:attribute name="type" form="qualified">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          Identifies the type of Extensible Linking Language (XLink) element the current element is functioning as.  The value of this attribute is constrained to certain value(s) by the schema.  XLink elements can serve several functions. The function is indicated by the value of the attribute xlink:type. The value of xlink:type can be simple, extended, locator, arc, or resource. In addition to xlink:type, the XLink specification defines several other attributes which are used in various combinations to fulfill the various functions. These attributes are: xlink:href, xlink:arcrole, xlink:role, xlink:show, xlink:actuate, xlink:title, xlink:label, xlink:from, and xlink:to.
        </xsd:documentation>
      </xsd:annotation>
      <xsd:simpleType>
        <xsd:restriction base="xsd:NMTOKEN">
          <xsd:enumeration value="resource"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:attribute>
    <xsd:attribute ref="role" use="optional"/>
    <xsd:attribute ref="title" use="optional"/>
    <xsd:attribute ref="label" use="optional"/>
  </xsd:attributeGroup>
  <xsd:attributeGroup name="TitleAttributesGroup">
    <xsd:attribute name="type" type="xsd:NMTOKEN" fixed="title" form="qualified">
      <xsd:annotation>
        <xsd:documentation xml:lang="en">
          Identifies the type of Extensible Linking Language (XLink) element the current element is functioning as.  The value of this attribute is constrained to certain value(s) by the schema.  XLink elements can serve several functions. The function is indicated by the value of the attribute xlink:type. The value of xlink:type can be simple, extended, locator, arc, or resource. In addition to xlink:type, the XLink specification defines several other attributes which are used in various combinations to fulfill the various functions. These attributes are: xlink:href, xlink:arcrole, xlink:role, xlink:show, xlink:actuate, xlink:title, xlink:label, xlink:from, and xlink:to.
        </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:attributeGroup>
</xsd:schema>
