<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.xml-acronym-demystifier.org" xmlns:tns="http://www.xml-acronym-demystifier.org" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
	<xs:element name="DictionaryContent">
		<xs:annotation>
			<xs:documentation>
				(2002-09-06) Now supports multiple and internationalized definition elements
				(2002-09-29) Now support AECMA enum value for standardization organizations
				(2002-10-05) Now BEA is supported as a potential spec author
				(2002-10-06) Now Verisign is also supported as a potential spec author
				(2002-10-12) Now ebXML is also supported as a potential spec author
				(2002-11-18) Added optional meta information element
				(2002-12-07) Changed type of expansion attribute to token
				(2002-12-14) Added the Open Mobile Alliance as spec author
				(2003-02-14) changed id attribute of acronym element to mandatory
				(2003-08-07) expansion attribute now required for acronym elements
				(2003-08-13) added Apache as acronym provider
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Entry" type="tns:entryType" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
		<xs:unique name="uc1">
			<xs:selector xpath="tns:Entry/tns:Acronym"/>
			<xs:field xpath="@expansion"/>
		</xs:unique>
		<xs:unique name="uc2">
			<xs:selector xpath="tns:Entry/tns:Acronym"/>
			<xs:field xpath="."/>
		</xs:unique>
		<!--
		<xs:unique name="uc3">
			<xs:selector xpath="tns:Entry/tns:AlternateForms/tns:AlternateForm"/>
			<xs:field xpath="."/>
		</xs:unique>
		-->
	</xs:element>
	<xs:complexType name="AlternateFormsType">
		<xs:sequence>
			<xs:element name="AlternateForm" type="xs:token" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="a" type="tns:aType"/>
	<xs:complexType name="DefinitionType" mixed="true">
		<xs:choice minOccurs="0" maxOccurs="unbounded">
			<xs:element ref="tns:a"/>
			<xs:element name="img" type="tns:imgType"/>
			<xs:element name="br"/>
			<xs:element name="hr"/>
			<xs:element name="b" type="xs:string"/>
			<xs:element name="i" type="tns:iType"/>
			<xs:element name="u" type="xs:string"/>
		</xs:choice>
		<xs:attribute ref="xml:lang" default="en-us"/>
	</xs:complexType>
	<xs:complexType name="aType" mixed="true">
		<xs:attribute name="URIRef" type="xs:anyURI" use="optional"/>
		<xs:attribute name="glossRef" type="xs:token" use="optional"/>
	</xs:complexType>
	<xs:complexType name="iType" mixed="true">
		<xs:sequence>
			<xs:element ref="tns:a" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="specLocsType">
		<xs:sequence>
			<xs:element ref="tns:SpecLoc" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="SpecLoc">
		<xs:complexType>
			<xs:simpleContent>
				<xs:extension base="xs:anyURI">
					<xs:attribute name="alt" type="xs:string"/>
				</xs:extension>
			</xs:simpleContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="entryType">
		<xs:sequence>
			<xs:element name="Acronym" type="tns:acronymType"/>
			<xs:element name="Meta" type="tns:metaType" minOccurs="0"/>
			<xs:element name="AlternateForms" type="tns:AlternateFormsType" minOccurs="0"/>
			<xs:element name="SpecLocs" type="tns:specLocsType" minOccurs="0"/>
			<xs:element ref="tns:SpecLoc" minOccurs="0"/>
			<xs:element name="MoreInfo" type="xs:anyURI" minOccurs="0"/>
			<xs:element name="Definition" type="tns:DefinitionType" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Optional just for the period of setting up a new definition. As soon as a definition arrives for a given acronym it will be included into the produced glossary</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="imgType">
		<xs:attribute name="src" type="xs:token"/>
		<xs:attribute name="align" type="tns:alignType"/>
	</xs:complexType>
	<xs:simpleType name="alignType">
		<xs:restriction base="xs:token">
			<xs:enumeration value="left"/>
			<xs:enumeration value="right"/>
			<xs:enumeration value="center"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="acronymType">
		<xs:simpleContent>
			<xs:extension base="xs:token">
				<xs:attribute name="expansion" type="xs:token" use="required"/>
				<xs:attribute name="type" type="tns:acronymTypeList"/>
				<xs:attribute name="id" type="xs:token" use="required"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="acronymTypeList">
		<xs:list itemType="tns:acronymTypeType"/>
	</xs:simpleType>
	<xs:simpleType name="acronymTypeType">
		<xs:restriction base="xs:token">
			<xs:enumeration value="W3C"/>
			<xs:enumeration value="OMG"/>
			<xs:enumeration value="IETF"/>
			<xs:enumeration value="OASIS"/>
			<xs:enumeration value="IBM"/>
			<xs:enumeration value="Microsoft"/>
			<xs:enumeration value="UDDI"/>
			<xs:enumeration value="HP"/>
			<xs:enumeration value="SUN"/>
			<xs:enumeration value="ISO"/>
			<xs:enumeration value="AECMA"/>
			<xs:enumeration value="BEA"/>
			<xs:enumeration value="Verisign"/>
			<xs:enumeration value="ebXML"/>
			<xs:enumeration value="OMA"/>
			<xs:enumeration value="Apache"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="metaType">
		<xs:attribute name="added" type="xs:date"/>
		<xs:attribute name="addedBy" type="xs:token"/>
	</xs:complexType>
</xs:schema>
