OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

ciq message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Fwd: off sick


---------- Forwarded message ----------
From: Hugh Wallis <hughwallis@xbrl.org>
Date: Jun 20, 2006 5:31 AM
Subject: RE: off sick
To: Max Voskob <max.voskob@paradise.net.nz>, Ram Kumar <kumar.sydney@gmail.com>





OK - as promised, here is a more detailed write up of the various
issues as well as my proposed solution.

The root cause of this is that the W3C did not publish a schema (even
a non-normative one) for the namespace  http://www.w3.org/1999/xlink.
This leaves those trying to implement XLink with the task of creating
their own schemas.
I'll give the brief summary here and then go on to describe it all in
more detail. The next stage of the problem comes from the fact that
XBRL and CIQ have created independent implementations of the
http://www.w3.org/1999/xlink namespace, both of which define things
like attribute groups and global types in that namespace which, it
could be argued, do not belong there (because the owners of the
namespace have never defined them as belonging there). These two
implementations are incompatible. In addition the CIQ implementation
has defined the traversal attributes <xsd:attribute name="to"
type="xsd:NMTOKEN">, <xsd:attribute name="from" type="xsd:NMTOKEN">
and <xsd:attribute name="label" type="xsd:NMTOKEN"> as NMTOKEN whereas
these are defined in the text of the spec at
http://www.w3.org/TR/xlink/#traversal-atts (and in the XBRL
implementation) as being NCName. To fix this all we can create a
minimal implementation of the http://www.w3.org/1999/xlink that
strictly confines itself to those things that are defined by the
owners of that namespace in the relevant spec.

OK - now for the gory detail.

Lets take a look at the XLink spec first of all:

This specification defines the namespace http://www.w3.org/1999/xlink
- see http://www.w3.org/TR/xlink/#att-method and in doing so states
"XLink's namespace provides global attributes for use on elements that
are in any arbitrary namespace. The global attributes are type, href,
role, arcrole, title, show, actuate, label, from, and to."  There is
nothing in the specification that defines anything else as belonging
to this namespace.

XBRL has defined a schema as follows (a non-normative version is
available at http://www.xbrl.org/2003/xlink-2003-12-31.xsd ):

xlink-2003-12-31.xsd (normative)

<?xml version="1.0" encoding="UTF-8"?>

<!-- (c) XBRL International. See www.xbrl.org/legal -->

<schema targetNamespace="http://www.w3.org/1999/xlink";

  xmlns:xlink="http://www.w3.org/1999/xlink";

  xmlns="http://www.w3.org/2001/XMLSchema";

  elementFormDefault="qualified"

  attributeFormDefault="qualified">



  <annotation>

    <documentation>

    XLink attribute specification

    </documentation>

  </annotation>



  <simpleType name="nonEmptyURI">

    <annotation>

      <documentation>

      A URI type with a minimum length of 1 character.

      Used on role and arcrole and href elements.

      </documentation>

    </annotation>

    <restriction base="anyURI">

      <minLength value="1"/>

    </restriction>

  </simpleType>



  <simpleType name="typeEnum">

    <annotation>

      <documentation>

    Enumeration of values for the type attribute

    </documentation>

    </annotation>

    <restriction base="string">

      <enumeration value="simple"/>

      <enumeration value="extended"/>

      <enumeration value="locator"/>

      <enumeration value="arc"/>

      <enumeration value="resource"/>

      <enumeration value="title"/>

    </restriction>

  </simpleType>



  <attributeGroup name="simpleType">

    <attribute name="type" use="required">

      <simpleType>

        <restriction base="token">

          <enumeration value="simple"/>

        </restriction>

      </simpleType>

    </attribute>

  </attributeGroup>



  <attributeGroup name="extendedType">

    <attribute name="type" use="required">

      <simpleType>

        <restriction base="token">

          <enumeration value="extended"/>

        </restriction>

      </simpleType>

    </attribute>

  </attributeGroup>



  <attributeGroup name="locatorType">

    <attribute name="type" use="required">

      <simpleType>

        <restriction base="token">

          <enumeration value="locator"/>

        </restriction>

      </simpleType>

    </attribute>

  </attributeGroup>



  <attributeGroup name="arcType">

    <attribute name="type" use="required">

      <simpleType>

        <restriction base="token">

          <enumeration value="arc"/>

        </restriction>

      </simpleType>

    </attribute>

  </attributeGroup>



  <attributeGroup name="resourceType">

    <attribute name="type" use="required">

      <simpleType>

        <restriction base="token">

          <enumeration value="resource"/>

        </restriction>

      </simpleType>

    </attribute>

  </attributeGroup>



  <attributeGroup name="titleType">

    <attribute name="type" use="required">

      <simpleType>

        <restriction base="token">

          <enumeration value="title"/>

        </restriction>

      </simpleType>

    </attribute>

  </attributeGroup>



  <simpleType name="showEnum">

    <annotation>

      <documentation>

      Enumeration of values for the show attribute

      </documentation>

    </annotation>

    <restriction base="string">

      <enumeration value="new"/>

      <enumeration value="replace"/>

      <enumeration value="embed"/>

      <enumeration value="other"/>

      <enumeration value="none"/>

    </restriction>

  </simpleType>



  <simpleType name="actuateEnum">

    <annotation>

      <documentation>

      Enumeration of values for the actuate attribute

      </documentation>

    </annotation>

    <restriction base="string">

      <enumeration value="onLoad"/>

      <enumeration value="onRequest"/>

      <enumeration value="other"/>

      <enumeration value="none"/>

    </restriction>

  </simpleType>



  <attribute name="type" type="xlink:typeEnum"/>

  <attribute name="role" type="xlink:nonEmptyURI"/>

  <attribute name="arcrole" type="xlink:nonEmptyURI"/>

  <attribute name="title" type="string"/>

  <attribute name="show" type="xlink:showEnum"/>

  <attribute name="actuate" type="xlink:actuateEnum"/>

  <attribute name="label" type="NCName"/>

  <attribute name="from" type="NCName"/>

  <attribute name="to" type="NCName"/>

  <attribute name="href" type="anyURI"/>



</schema>

and this is complemented by a schema in an xbrl owned namespace as
follows (non-normative version is available at
http://www.xbrl.org/2003/xl-2003-12-31.xsd ):

xl-2003-12-31.xsd (normative)

<?xml version="1.0" encoding="UTF-8"?>

<!-- (c) XBRL International.  See www.xbrl.org/legal -->

<schema targetNamespace="http://www.xbrl.org/2003/XLink";

  xmlns:xlink="http://www.w3.org/1999/xlink";

  xmlns:xl="http://www.xbrl.org/2003/XLink";

  xmlns="http://www.w3.org/2001/XMLSchema";

  elementFormDefault="qualified"

  attributeFormDefault="unqualified">



  <import namespace="http://www.w3.org/1999/xlink";
schemaLocation="xlink-2003-12-31.xsd"/>



  <complexType name="documentationType">

    <annotation>

      <documentation>

      Element type to use for documentation of

      extended links and linkbases.

      </documentation>

    </annotation>

    <simpleContent>

      <extension base="string">

        <anyAttribute namespace="##other" processContents="lax"/>

      </extension>

    </simpleContent>

  </complexType>



  <element name="documentation" type="xl:documentationType" abstract="true">

    <annotation>

      <documentation>

      Abstract element to use for documentation of

      extended links and linkbases.

      </documentation>

    </annotation>

  </element>



  <annotation>

    <documentation>

    XBRL simple and extended link schema constructs

    </documentation>

  </annotation>



  <complexType name="titleType">

    <annotation>

      <documentation>

      Type for the abstract title element -

      used as a title element template.

      </documentation>

    </annotation>

    <complexContent>

      <restriction base="anyType">

        <attributeGroup ref="xlink:titleType"/>

      </restriction>

    </complexContent>

  </complexType>

  <element name="title" type="xl:titleType" abstract="true">

    <annotation>

      <documentation>

      Generic title element for use in extended link documentation.

      Used on extended links, arcs, locators.

      See http://www.w3.org/TR/xlink/#title-element for details.

      </documentation>

    </annotation>

  </element>



  <complexType name="locatorType">

    <annotation>

      <documentation>

      Generic locator type.

      </documentation>

    </annotation>

    <complexContent>

      <restriction base="anyType">

        <sequence>

          <element ref="xl:title" minOccurs="0" maxOccurs="unbounded" />

        </sequence>

        <attributeGroup ref="xlink:locatorType"/>

        <attribute ref="xlink:href" use="required" />

        <attribute ref="xlink:label" use="required" />

        <attribute ref="xlink:role" use="optional" />

        <attribute ref="xlink:title" use="optional" />

      </restriction>

    </complexContent>

  </complexType>

  <element name="locator" type="xl:locatorType" abstract="true">

    <annotation>

      <documentation>

      Abstract locator element to be used as head of locator substitution group

      for all extended link locators in XBRL.

      </documentation>

    </annotation>

  </element>



  <simpleType name="useEnum">

    <annotation>

      <documentation>

      Enumerated values for the use attribute on extended link arcs.

      </documentation>

    </annotation>

    <restriction base="NMTOKEN">

      <enumeration value="optional" />

      <enumeration value="prohibited" />

    </restriction>

  </simpleType>



  <complexType name="arcType">

    <annotation>

      <documentation>

      basic extended link arc type - extended where necessary for specific arcs

      Extends the generic arc type by adding use, priority and order attributes.

      </documentation>

    </annotation>

    <complexContent>

      <restriction base="anyType">

        <sequence>

          <element ref="xl:title" minOccurs="0" maxOccurs="unbounded" />

        </sequence>

        <attributeGroup ref="xlink:arcType"/>

        <attribute ref="xlink:from" use="required" />

        <attribute ref="xlink:to" use="required" />

        <attribute ref="xlink:arcrole" use="required" />

        <attribute ref="xlink:title" use="optional" />

        <attribute ref="xlink:show" use="optional" />

        <attribute ref="xlink:actuate" use="optional" />

        <attribute name="order" type="decimal" use="optional" />

        <attribute name="use" type="xl:useEnum" use="optional" />

        <attribute name="priority" type="integer" use="optional" />

        <anyAttribute namespace="##other" processContents="lax" />

      </restriction>

    </complexContent>

  </complexType>

  <element name="arc" type="xl:arcType" abstract="true">

    <annotation>

      <documentation>

      Abstract element to use as head of arc element substitution group.

      </documentation>

    </annotation>

  </element>



  <complexType name="resourceType">

    <annotation>

      <documentation>

      Generic type for the resource type element

      </documentation>

    </annotation>

    <complexContent mixed="true">

      <restriction base="anyType">

        <attributeGroup ref="xlink:resourceType"/>

        <attribute ref="xlink:label" use="required" />

        <attribute ref="xlink:role" use="optional" />

        <attribute ref="xlink:title" use="optional" />

        <attribute name="id" type="ID" use="optional" />

      </restriction>

    </complexContent>

  </complexType>

  <element name="resource" type="xl:resourceType" abstract="true">

    <annotation>

      <documentation>

      Abstract element to use as head of resource element substitution group.

      </documentation>

    </annotation>

  </element>



  <complexType name="extendedType">

    <annotation>

      <documentation>

      Generic extended link type

      </documentation>

    </annotation>

    <complexContent>

      <restriction base="anyType">

        <choice minOccurs="0" maxOccurs="unbounded">

          <element ref="xl:title" />

          <element ref="xl:documentation" />

          <element ref="xl:locator" />

          <element ref="xl:arc" />

          <element ref="xl:resource" />

        </choice>

        <attributeGroup ref="xlink:extendedType"/>

        <attribute ref="xlink:role" use="required" />

        <attribute ref="xlink:title" use="optional" />

        <attribute name="id" type="ID" use="optional" />

        <anyAttribute namespace="http://www.w3.org/XML/1998/namespace";
processContents="lax"/>

      </restriction>

    </complexContent>

  </complexType>

  <element name="extended" type="xl:extendedType" abstract="true">

    <annotation>

      <documentation>

      Abstract extended link element at head of extended link
substitution group.

      </documentation>

    </annotation>

  </element>



  <complexType name="simpleType">

    <annotation>

      <documentation>

      Type for the simple links defined in XBRL

      </documentation>

    </annotation>

    <complexContent>

      <restriction base="anyType">

        <attributeGroup ref="xlink:simpleType"/>

        <attribute ref="xlink:href" use="required" />

        <attribute ref="xlink:arcrole" use="optional" />

        <attribute ref="xlink:role" use="optional" />

        <attribute ref="xlink:title" use="optional" />

        <attribute ref="xlink:show" use="optional" />

        <attribute ref="xlink:actuate" use="optional" />

        <anyAttribute namespace="http://www.w3.org/XML/1998/namespace";
processContents="lax"/>

      </restriction>

    </complexContent>

  </complexType>

  <element name="simple" type="xl:simpleType" abstract="true">

    <annotation>

      <documentation>

      The abstract element at the head of the simple link substitution group.

      </documentation>

...

[Message clipped]
<?xml version="1.0" encoding="UTF-8"?>
<!-- (c) XBRL International.  See www.xbrl.org/legal  
 
This is a test of a minimal implementation of the http://www.w3.org/1999/xlink namespace

This is not an official XBRL International schema

-->
<schema targetNamespace="http://www.w3.org/1999/xlink"; 
  xmlns:xlink="http://www.w3.org/1999/xlink"; 
  xmlns="http://www.w3.org/2001/XMLSchema"; 
  elementFormDefault="qualified"
  attributeFormDefault="qualified">
  
  <annotation>
    <documentation>
    XLink attribute specification
    </documentation>
  </annotation>
  
   
  <attribute name="type">
    <simpleType>
	    <annotation>
	      <documentation>
	    Enumeration of values for the type attribute
	    </documentation>
	    </annotation>
	    <restriction base="string">
	      <enumeration value="simple"/>
	      <enumeration value="extended"/>
	      <enumeration value="locator"/>
	      <enumeration value="arc"/>
	      <enumeration value="resource"/>
	      <enumeration value="title"/>
	    </restriction>
	  </simpleType>
  </attribute>
  
  <attribute name="role">
    <simpleType>
	    <annotation>
	      <documentation>
	      A URI with a minimum length of 1 character.
	      </documentation>
	    </annotation>
	    <restriction base="anyURI">
	      <minLength value="1"/>
	    </restriction>
  </simpleType>
  </attribute>

  <attribute name="arcrole">
      <simpleType>
	    <annotation>
	      <documentation>
	      A URI with a minimum length of 1 character.
	      </documentation>
	    </annotation>
	    <restriction base="anyURI">
	      <minLength value="1"/>
	    </restriction>
  </simpleType>
  </attribute>

  <attribute name="title" type="string"/>
  
  <attribute name="show">
    <simpleType>
	    <annotation>
	      <documentation>
	      Enumeration of values for the show attribute
	      </documentation>
	    </annotation>
	    <restriction base="string">
	      <enumeration value="new"/>
	      <enumeration value="replace"/>
	      <enumeration value="embed"/>
	      <enumeration value="other"/>
	      <enumeration value="none"/>
	    </restriction>
	  </simpleType>
	</attribute>

  <attribute name="actuate">
    <simpleType>
    <annotation>
      <documentation>
      Enumeration of values for the actuate attribute
      </documentation>
    </annotation>
    <restriction base="string">
      <enumeration value="onLoad"/>
      <enumeration value="onRequest"/>
      <enumeration value="other"/>
      <enumeration value="none"/>
    </restriction>
  </simpleType>
	</attribute>
	
  <attribute name="label" type="NCName"/>
  
  <attribute name="from" type="NCName"/>
  
  <attribute name="to" type="NCName"/>
  
  <attribute name="href" type="anyURI"/>
  
</schema>

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2005 rel. 3 U (http://www.altova.com) by Ram Kumar -->
<!--This schema is a definition of xLink attributes that can be used for linking and referencing Parties, Party Names and Addresses.-->
<!--See http://www.w3.org/XML/Linking for more information on xLink-->
<!--This has been modified by Hugh Wallis as a test to implement many of these constructs in a non W3C namespace-->
<!--Copyright 2005 OASIS CIQ TC-->
<xsd:schema targetNamespace="urn:oasis:names:tc:ciq:xl:3" xmlns:xl="urn:oasis:names:tc:ciq:xl:3" xmlns:xlink="http://www.w3.org/1999/xlink"; xmlns:xsd="http://www.w3.org/2001/XMLSchema"; elementFormDefault="qualified" attributeFormDefault="qualified">
	<xsd:annotation>
		<xsd:documentation> 
		Specification Name: OASIS CIQ TC - xLink
		Description: Defines the W3C schema for establishing links between entities
		Produced by: OASIS Customer Information Quality Technical Committee
		Version: 3.0  
		Status: Public Review Draft
		Copyright: W3C/OASIS
		Last Modified: 05 April 2006
		Last Modified by: Ram Kumar 
		NOTE: Do not modify this schema as it will break specifications compatibility 
		</xsd:documentation>
	</xsd:annotation>
	<xsd:import namespace="http://www.w3.org/1999/xlink"; schemaLocation="xlink-2003-12-31-revised.xsd"/>
	<xsd:attributeGroup name="grLocator">
		<xsd:annotation>
			<xsd:documentation>Defines a set of attributes for an element of type LOCATOR</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute ref="xlink:type" fixed="locator">
			<xsd:annotation>
				<xsd:documentation>Indicates this is a xLink 'locator' element</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute ref="xlink:href">
			<xsd:annotation>
				<xsd:documentation>Identifies the remote resource or its location. E.g. a full URL to the resource or a #some_id for local resources with xml:id attribute.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>
	<xsd:attributeGroup name="grResource">
		<xsd:annotation>
			<xsd:documentation>Defines a set of attributes for an element of type RESOURCE</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute ref="xlink:type" fixed="resource">
			<xsd:annotation>
				<xsd:documentation>Indicates this a xLink 'resource' element</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute ref="xlink:label">
			<xsd:annotation>
				<xsd:documentation>An identifier of an element of type 'resource'. The identifier is used by xlink:from and xlink:to</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>
	<xsd:attributeGroup name="grLocatorOrResource">
		<xsd:annotation>
			<xsd:documentation>Defines a set of attributes for an element of type LOCATOR (href is required) or RESOURCE (href is ignored) - it is not possible using XML schema to constrain the values of xlink:type to a choice of "locator" or "resource"</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute ref="xlink:type">
			<xsd:annotation>
				<xsd:documentation>Indicates the type of the element for linking purposes as per the enumeration. Only valuse "locator" or "resource" should be used for this</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute ref="xlink:label">
			<xsd:annotation>
				<xsd:documentation>An identifier of an element of type 'resource' or 'locator'. The identifier is used by xlink:from and xlink:to</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute ref="xlink:href">
			<xsd:annotation>
				<xsd:documentation>Identifies the remote resource or its location. E.g. a full URL to the resource or a #some_id for local resources with xml:id attribute.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>
	<xsd:attributeGroup name="grArc">
		<xsd:annotation>
			<xsd:documentation>Defines a set of attributes for an element of type ARC</xsd:documentation>
		</xsd:annotation>
		<xsd:attribute ref="xlink:type" fixed="arc">
			<xsd:annotation>
				<xsd:documentation>Indicates this is a xLink 'arc' element</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute ref="xlink:arcrole">
			<xsd:annotation>
				<xsd:documentation>Identifies the relationship type between elements referenced by FROM and TO.</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute ref="xlink:from">
			<xsd:annotation>
				<xsd:documentation>Points at an element of xlink:type='resource' or 'locator' from any namespace within the same addressable XML where xlink:label has a matching value</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute ref="xlink:to">
			<xsd:annotation>
				<xsd:documentation>Points at an element of xlink:type='resource' or 'locator' from any namespace within the same addressable XML where xlink:label has a matching value</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute ref="xlink:title">
			<xsd:annotation>
				<xsd:documentation>A human-readable description of the relationship</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
	</xsd:attributeGroup>
</xsd:schema>

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2006 sp1 U (http://www.altova.com) by Navin Mathur (NSW Police) -->
<xs:schema xmlns="urn:oasis:names:tc:ciq:xnl:3" xmlns:xs="http://www.w3.org/2001/XMLSchema"; xmlns:xlink="http://www.w3.org/1999/xlink"; targetNamespace="urn:oasis:names:tc:ciq:xnl:3" elementFormDefault="qualified" attributeFormDefault="qualified">
	<xs:annotation>
		<xs:documentation> 
		Specification Name: OASIS CIQ TC - extensible Name Language (xNL) 
		Description: Defines the W3C schema for representing party names
		Produced by: OASIS Customer Information Quality Technical Committee
		Version: 3.0  
		Status: Public Review Draft
		Copyright: 2006, OASIS
		Last Modified: 05 April 2006
		Last Modified by: Ram Kumar 
		NOTE: Do not modify this schema as it will break specifications compatibility 
		</xs:documentation>
	</xs:annotation>
	<xs:include schemaLocation="xNL-types.xsd"/>
	<xs:import namespace="http://www.w3.org/1999/xlink"; schemaLocation="xLink.xsd"/>
	<xs:attributeGroup name="grAbbreviation">
		<xs:annotation>
			<xs:documentation>A group of attributes for internal reuse.</xs:documentation>
		</xs:annotation>
		<xs:attribute name="Abbreviation" type="xs:boolean">
			<xs:annotation>
				<xs:documentation>Indicates if the value is an abbreviation or initial</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="grDataQuality">
		<xs:annotation>
			<xs:documentation>A group of attributes for internal reuse.</xs:documentation>
		</xs:annotation>
		<xs:attribute name="DataQuality" type="DataQualityEnumeration">
			<xs:annotation>
				<xs:documentation>This attribute indicates what level of trust can be given to the parent element. Omit this attribute if the data quality is unknown.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="ValidFrom" type="xs:dateTime">
			<xs:annotation>
				<xs:documentation>The first date when the name is valid. Inclusive.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="ValidTo" type="xs:dateTime">
			<xs:annotation>
				<xs:documentation>The last date when the name is valid. Inclusive.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:element name="PartyName" type="PartyNameType">
		<xs:annotation>
			<xs:documentation>Container for defining a name of a Person, an Organisation or combination of the above as a joint name.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="PartyNameType">
		<xs:annotation>
			<xs:documentation>Reusable complex type</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="NameLine" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Define name as a free format text. Use this when the type of the entity (person or organisation) is unknown, or is not broken down into individual elements (e.g. unstructured, unparsed) or is beyond the provided types.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="string">
							<xs:attribute name="Type" type="string">
								<xs:annotation>
									<xs:documentation>Type define what this free format name line could mean. For example, the Type could be "Unknown" </xs:documentation>
								</xs:annotation>
							</xs:attribute>
							<xs:attributeGroup ref="grDataQuality"/>
							<xs:attributeGroup ref="grAbbreviation"/>
							<xs:anyAttribute namespace="##other" processContents="lax"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="PersonName" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Container for person name details.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="PersonNameType">
							<xs:sequence>
								<xs:element name="KnownAs" minOccurs="0" maxOccurs="unbounded">
									<xs:annotation>
										<xs:documentation>Sometimes the same person is known by different unofficial or official names. If name is structured, use this element. Else, Alias Enumeration in NameElement is fine</xs:documentation>
									</xs:annotation>
									<xs:complexType>
										<xs:complexContent>
											<xs:extension base="PersonNameType"/>
										</xs:complexContent>
									</xs:complexType>
								</xs:element>
							</xs:sequence>
							<xs:attribute name="ID" type="xs:string">
								<xs:annotation>
									<xs:documentation>Globally unique identifier of the entity. </xs:documentation>
								</xs:annotation>
							</xs:attribute>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="OrganisationName" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>A container for organisation name details.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:complexContent>
						<xs:extension base="OrganisationNameType">
							<xs:sequence>
								<xs:element name="KnownAs" minOccurs="0" maxOccurs="unbounded">
									<xs:annotation>
										<xs:documentation>Any other names the organisation can be known under. if name is structured, use this element. Else Alias Enumeration in NameElement is fine</xs:documentation>
									</xs:annotation>
									<xs:complexType>
										<xs:complexContent>
											<xs:extension base="OrganisationNameType"/>
										</xs:complexContent>
									</xs:complexType>
								</xs:element>
							</xs:sequence>
							<xs:attribute name="ID" type="xs:string">
								<xs:annotation>
									<xs:documentation>Globally unique identifier of the entity. </xs:documentation>
								</xs:annotation>
							</xs:attribute>
						</xs:extension>
					</xs:complexContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attribute name="ID" type="xs:string">
			<xs:annotation>
				<xs:documentation>Globally unique identifier of the entity. </xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attribute name="JointNameConnector" type="string">
			<xs:annotation>
				<xs:documentation>The connector used to join more than one person name. Example: Mr Hunt AND Mrs Clark, where AND is the JointNameConnector. The flow is from the preceding to the following. If there is more than 2 names then all names are connected using this connector in the natural order.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:attributeGroup ref="grDataQuality"/>
		<xs:attributeGroup ref="xlink:grLocatorOrResource"/>
		<xs:anyAttribute namespace="##other" processContents="lax"/>
	</xs:complexType>
	<xs:complexType name="PersonNameType">
		<xs:annotation>
			<xs:documentation>Reusable complex type</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="NameElement" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Name or part of a name defined as a free format text. </xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="string">
							<xs:attribute name="ElementType" type="PersonNameElementEnumeration">
								<xs:annotation>
									<xs:documentation>Clarifies the meaning of the element.Could be first name, middle name, etc. that is defined in the enumeration list. Omit this attribute if the type of the name element is not known.</xs:documentation>
								</xs:annotation>
							</xs:attribute>
							<xs:attributeGroup ref="grAbbreviation"/>
							<xs:anyAttribute namespace="##other" processContents="lax"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attributeGroup ref="grDataQuality"/>
		<xs:attribute name="AliasType" type="PersonNameAliasTypeEnumeration">
			<xs:annotation>
				<xs:documentation>Enumerated list of common types of aliases or name types.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:anyAttribute namespace="##other" processContents="lax"/>
	</xs:complexType>
	<xs:complexType name="OrganisationNameType">
		<xs:annotation>
			<xs:documentation>Reusable complex type</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="NameElement" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Name of the organisation. E.g. ACME Inc.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="string">
							<xs:attribute name="ElementType" type="OrganisationNameElementEnumeration">
								<xs:annotation>
									<xs:documentation>Clarifies the meaning of the element. Example: name, type . Omit this attribute if the type of the name element is not known.</xs:documentation>
								</xs:annotation>
							</xs:attribute>
							<xs:attributeGroup ref="grAbbreviation"/>
							<xs:anyAttribute namespace="##other" processContents="lax"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="SubdivisionName" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>A container for organisation subdivision name details, e.g. Hardware Department.</xs:documentation>
				</xs:annotation>
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="string">
							<xs:attributeGroup ref="grAbbreviation"/>
							<xs:anyAttribute namespace="##other" processContents="lax"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
		<xs:attributeGroup ref="grDataQuality"/>
		<xs:attribute name="AliasType" type="OrganisationNameAliasTypeEnumeration">
			<xs:annotation>
				<xs:documentation>Enumerated list of common types of aliases or name types.</xs:documentation>
			</xs:annotation>
		</xs:attribute>
		<xs:anyAttribute namespace="##other" processContents="lax"/>
	</xs:complexType>
</xs:schema>

<?xml version="1.0" encoding="UTF-8"?>
<!-- (c) XBRL International.  See www.xbrl.org/legal  
 
This is a test of implementing the http://www.xbrl.org/2003/XLink namespace using
only a minimal implementation of the http://www.w3.org/1999/xlink namespace which
restricts itself to defining the attributes specified in the XLink 1.0 specification

This is not an official XBRL International schema

-->
<schema targetNamespace="http://www.xbrl.org/2003/XLink"; 
  xmlns:xlink="http://www.w3.org/1999/xlink"; 
  xmlns:xl="http://www.xbrl.org/2003/XLink"; 
  xmlns="http://www.w3.org/2001/XMLSchema"; 
  elementFormDefault="qualified" 
  attributeFormDefault="unqualified">

  <import namespace="http://www.w3.org/1999/xlink"; schemaLocation="xlink-2003-12-31-revised.xsd"/>

  <complexType name="documentationType">
    <annotation>
      <documentation>
      Element type to use for documentation of 
      extended links and linkbases.
      </documentation>
    </annotation>
    <simpleContent>
      <extension base="string">
        <anyAttribute namespace="##other" processContents="lax"/>
      </extension>
    </simpleContent>
  </complexType>

  <element name="documentation" type="xl:documentationType" abstract="true">
    <annotation>
      <documentation>
      Abstract element to use for documentation of 
      extended links and linkbases.
      </documentation>
    </annotation>
  </element>
  
  <annotation>
    <documentation>
    XBRL simple and extended link schema constructs
    </documentation>
  </annotation>
  
  <complexType name="titleType">
    <annotation>
      <documentation>
      Type for the abstract title element - 
      used as a title element template.
      </documentation>
    </annotation>
    <complexContent>
      <restriction base="anyType">
	    <attribute ref="xlink:type" use="required" fixed="title"/>
      </restriction>
    </complexContent>
  </complexType>
  <element name="title" type="xl:titleType" abstract="true">
    <annotation>
      <documentation>
      Generic title element for use in extended link documentation.
      Used on extended links, arcs, locators.
      See http://www.w3.org/TR/xlink/#title-element for details.
      </documentation>
    </annotation>
  </element>

  <complexType name="locatorType">
    <annotation>
      <documentation>
      Generic locator type.
      </documentation>
    </annotation>
    <complexContent>
      <restriction base="anyType">
        <sequence>
          <element ref="xl:title" minOccurs="0" maxOccurs="unbounded" />
        </sequence>
	   <attribute ref="xlink:type" use="required" fixed="locator"/>
        <attribute ref="xlink:href" use="required" />
        <attribute ref="xlink:label" use="required" />
        <attribute ref="xlink:role" use="optional" />
        <attribute ref="xlink:title" use="optional" />
      </restriction>
    </complexContent>
  </complexType>
  <element name="locator" type="xl:locatorType" abstract="true">
    <annotation>
      <documentation>
      Abstract locator element to be used as head of locator substitution group
      for all extended link locators in XBRL.
      </documentation>
    </annotation>
  </element>

  <simpleType name="useEnum">
    <annotation>
      <documentation>
      Enumerated values for the use attribute on extended link arcs.
      </documentation>
    </annotation>
    <restriction base="NMTOKEN">
      <enumeration value="optional" />
      <enumeration value="prohibited" />
    </restriction>
  </simpleType>

  <complexType name="arcType">
    <annotation>
      <documentation>
      basic extended link arc type - extended where necessary for specific arcs
      Extends the generic arc type by adding use, priority and order attributes.
      </documentation>
    </annotation>
    <complexContent>
      <restriction base="anyType">
        <sequence>
          <element ref="xl:title" minOccurs="0" maxOccurs="unbounded" />
        </sequence>
        <attribute ref="xlink:type" use="required" fixed="arc"/>
        <attribute ref="xlink:from" use="required" />
        <attribute ref="xlink:to" use="required" />
        <attribute ref="xlink:arcrole" use="required" />
        <attribute ref="xlink:title" use="optional" />
        <attribute ref="xlink:show" use="optional" />
        <attribute ref="xlink:actuate" use="optional" />
        <attribute name="order" type="decimal" use="optional" />
        <attribute name="use" type="xl:useEnum" use="optional" />
        <attribute name="priority" type="integer" use="optional" />
        <anyAttribute namespace="##other" processContents="lax" />
      </restriction>
    </complexContent>
  </complexType>
  <element name="arc" type="xl:arcType" abstract="true">
    <annotation>
      <documentation>
      Abstract element to use as head of arc element substitution group.
      </documentation>
    </annotation>
  </element>

  <complexType name="resourceType">
    <annotation>
      <documentation>
      Generic type for the resource type element
      </documentation>
    </annotation>
    <complexContent mixed="true">
      <restriction base="anyType">  
	   <attribute ref="xlink:type" use="required" fixed="resource"/>
        <attribute ref="xlink:label" use="required" />
        <attribute ref="xlink:role" use="optional" />
        <attribute ref="xlink:title" use="optional" />
        <attribute name="id" type="ID" use="optional" />
      </restriction>
    </complexContent>
  </complexType>
  <element name="resource" type="xl:resourceType" abstract="true">
    <annotation>
      <documentation>
      Abstract element to use as head of resource element substitution group.
      </documentation>
    </annotation>
  </element>

  <complexType name="extendedType">
    <annotation>
      <documentation>
      Generic extended link type
      </documentation>
    </annotation>
    <complexContent>
      <restriction base="anyType">
        <choice minOccurs="0" maxOccurs="unbounded">
          <element ref="xl:title" />
          <element ref="xl:documentation" />
          <element ref="xl:locator" />
          <element ref="xl:arc" />
          <element ref="xl:resource" />
        </choice>
	   <attribute ref="xlink:type" use="required" fixed="extended"/>
        <attribute ref="xlink:role" use="required" />
        <attribute ref="xlink:title" use="optional" />
        <attribute name="id" type="ID" use="optional" />
        <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"; processContents="lax"/>
      </restriction>
    </complexContent>
  </complexType>
  <element name="extended" type="xl:extendedType" abstract="true">
    <annotation>
      <documentation>
      Abstract extended link element at head of extended link substitution group.
      </documentation>
    </annotation>
  </element>

  <complexType name="simpleType">
    <annotation>
      <documentation>
      Type for the simple links defined in XBRL
      </documentation>
    </annotation>
    <complexContent>
      <restriction base="anyType">
        <attribute ref="xlink:type" use="required" fixed="simple"/>
        <attribute ref="xlink:href" use="required" />
        <attribute ref="xlink:arcrole" use="optional" />
        <attribute ref="xlink:role" use="optional" />
        <attribute ref="xlink:title" use="optional" />
        <attribute ref="xlink:show" use="optional" />
        <attribute ref="xlink:actuate" use="optional" />
        <anyAttribute namespace="http://www.w3.org/XML/1998/namespace"; processContents="lax"/>
      </restriction>
    </complexContent>
  </complexType>
  <element name="simple" type="xl:simpleType" abstract="true">
    <annotation>
      <documentation>
      The abstract element at the head of the simple link substitution group.
      </documentation>
    </annotation>
  </element>

</schema>



[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]