Schema Name: ATOM.xsd
Target Namespace: http://www.w3.org/2005/Atom
Collapse XSD Schema Code:

	<!--
		-*- rnc -*- RELAX NG Compact Syntax Grammar for the Atom Format
		Specification Version 11
	-->
	<!--
		$Revision: 34 $
		$Date: 2009-08-07 22:20:47 +0000 (Fri, 07 Aug 2009) $
		$Author: albertcbrown $
		$HeadURL: file:///var/svn/repos/cmis/trunk/SchemaProject/schema/ATOM.xsd $
	-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
	elementFormDefault="qualified" targetNamespace="http://www.w3.org/2005/Atom"
	xmlns:atom="http://www.w3.org/2005/Atom" xmlns:xhtml="http://www.w3.org/1999/xhtml"
	xmlns:xml="http://www.w3.org/XML/1998/namespace"
	xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
	jaxb:extensionBindingPrefixes="xjc" jaxb:version="2.1" version="0.62d">
    
    <xs:import namespace="http://www.w3.org/XML/1998/namespace" />
    
	<!-- Common attributes -->
	<xs:attributeGroup name="atomCommonAttributes">
		<xs:attribute ref="xml:base" />
		<xs:attribute ref="xml:lang" />
		<xs:attributeGroup ref="atom:undefinedAttribute" />
	</xs:attributeGroup>
	<!-- Text Constructs -->
	<xs:attributeGroup name="atomPlainTextConstruct">
		<xs:attributeGroup ref="atom:atomCommonAttributes" />
		<xs:attribute name="type">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="text" />
					<xs:enumeration value="html" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:group name="atomXHTMLTextConstruct">
		<xs:sequence>
			<xs:any minOccurs="0" maxOccurs="unbounded" namespace="http://www.w3.org/1999/xhtml" />
		</xs:sequence>
	</xs:group>
	<xs:attributeGroup name="atomXHTMLTextConstruct">
		<xs:attributeGroup ref="atom:atomCommonAttributes" />
		<xs:attribute name="type" use="required">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="xhtml" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:complexType name="atomTextConstruct" mixed="true">
		<xs:group minOccurs="0" ref="atom:atomXHTMLTextConstruct" />
		<xs:attribute name="type">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="text" />
					<xs:enumeration value="html" />
					<xs:enumeration value="xhtml" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
		<xs:attributeGroup ref="atom:atomCommonAttributes" />
	</xs:complexType>
	<!-- Person Construct -->
	<xs:complexType name="atomPersonConstruct">
		<xs:sequence>
			<xs:element ref="atom:name" minOccurs="0" maxOccurs="1" />
			<xs:element ref="atom:uri" minOccurs="0" maxOccurs="1" />
			<xs:element ref="atom:email" minOccurs="0" maxOccurs="1" />
			<xs:group ref="atom:extensionElement" minOccurs="0"
				maxOccurs="unbounded" />
		</xs:sequence>
		<xs:attributeGroup ref="atom:atomCommonAttributes" />
	</xs:complexType>
	<xs:element name="name" type="xs:string" />
	<xs:element name="uri" type="xs:string" />
	<xs:element name="email" type="atom:atomEmailAddress" />
	<!-- Date Construct -->
	<xs:complexType name="atomDateConstruct">
		<xs:simpleContent>
			<xs:extension base="xs:dateTime">
				<xs:attributeGroup ref="atom:atomCommonAttributes" />
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<!-- atom:feed -->
	<xs:element name="feed" type="atom:feedType"></xs:element>
	<xs:complexType name="feedType">
		<xs:sequence>
			<xs:choice maxOccurs="unbounded">
				<xs:annotation>
					<xs:appinfo>
						<jaxb:property name="items" />
					</xs:appinfo>
				</xs:annotation>
				<xs:element ref="atom:author" />
				<xs:element ref="atom:category" />
				<xs:element ref="atom:contributor" />
				<xs:element ref="atom:generator" />
				<xs:element ref="atom:icon" />
				<xs:element ref="atom:id" />
				<xs:element ref="atom:link" />
				<xs:element ref="atom:logo" />
				<xs:element ref="atom:rights" />
				<xs:element ref="atom:subtitle" />
				<xs:element ref="atom:title" />
				<xs:element ref="atom:updated" />
			</xs:choice>

			<!--  original atom extension element -->
			<xs:group ref="atom:extensionElement" />

			<xs:element minOccurs="0" maxOccurs="unbounded" ref="atom:entry" />
		</xs:sequence>
		<xs:attributeGroup ref="atom:atomCommonAttributes" />
	</xs:complexType>
	<!-- atom:entry -->
	<xs:element name="entry" type="atom:entryType">
	</xs:element>
	<xs:complexType name="entryType">
		<xs:sequence>
			<xs:choice maxOccurs="unbounded">
				<xs:annotation>
					<xs:appinfo>
						<jaxb:property name="items" />
					</xs:appinfo>
				</xs:annotation>
				<xs:element ref="atom:author" />
				<xs:element ref="atom:category" />
				<xs:element ref="atom:content" />
				<xs:element ref="atom:contributor" />
				<xs:element ref="atom:id" />
				<xs:element ref="atom:link" />
				<xs:element ref="atom:published" />
				<xs:element ref="atom:rights" />
				<xs:element ref="atom:source" />
				<xs:element ref="atom:summary" />
				<xs:element ref="atom:title" />
				<xs:element ref="atom:updated" />
			</xs:choice>

			<!-- Normal ATOM extension element -->
			<xs:group ref="atom:extensionElement" />
		</xs:sequence>
		<xs:attributeGroup ref="atom:atomCommonAttributes" />
	</xs:complexType>

	<!-- atom:content -->
	<xs:attributeGroup name="atomInlineTextConstruct">
		<xs:attributeGroup ref="atom:atomCommonAttributes" />
		<xs:attribute name="type">
			<xs:simpleType>
				<xs:restriction base="xs:token">
					<xs:enumeration value="text" />
					<xs:enumeration value="html" />
				</xs:restriction>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:group name="atomInlineOtherConstruct">
		<xs:sequence>
			<xs:group minOccurs="0" maxOccurs="unbounded" ref="atom:anyElement" />
		</xs:sequence>
	</xs:group>
	<xs:attributeGroup name="atomInlineOtherConstruct">
		<xs:attributeGroup ref="atom:atomCommonAttributes" />
		<xs:attribute name="type">
			<xs:simpleType>
				<xs:union memberTypes="atom:atomMediaType">
					<xs:simpleType>
						<xs:restriction base="xs:token">
							<xs:enumeration value="xhtml" />
						</xs:restriction>
					</xs:simpleType>
				</xs:union>
			</xs:simpleType>
		</xs:attribute>
	</xs:attributeGroup>
	<xs:attributeGroup name="atomOutOfLineConstruct">
		<xs:attributeGroup ref="atom:atomCommonAttributes" />
		<xs:attribute name="type" type="atom:atomMediaType" />
		<xs:attribute name="src" use="required" />
	</xs:attributeGroup>
	<xs:element name="content">
		<xs:complexType mixed="true">
			<xs:group minOccurs="0" ref="atom:atomInlineOtherConstruct" />
			<xs:attribute name="type">
				<xs:simpleType>
					<xs:union memberTypes="atom:atomMediaType">
						<xs:simpleType>
							<xs:restriction base="xs:token">
								<xs:enumeration value="text" />
								<xs:enumeration value="html" />
							</xs:restriction>
						</xs:simpleType>
						<xs:simpleType>
							<xs:union memberTypes="atom:atomMediaType">
								<xs:simpleType>
									<xs:restriction base="xs:token">
										<xs:enumeration value="xhtml" />
									</xs:restriction>
								</xs:simpleType>
							</xs:union>
						</xs:simpleType>
					</xs:union>
				</xs:simpleType>
			</xs:attribute>
			<xs:attributeGroup ref="atom:atomCommonAttributes" />
			<xs:attribute name="src" />
		</xs:complexType>
	</xs:element>
	<!-- atom:author -->
	<xs:element name="author" type="atom:atomPersonConstruct" />
	<!-- atom:category -->
	<xs:element name="category">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="atom:undefinedContent">
					<xs:attributeGroup ref="atom:atomCommonAttributes" />
					<xs:attribute name="term" use="required" />
					<xs:attribute name="scheme" />
					<xs:attribute name="label" />
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<!-- atom:contributor -->
	<xs:element name="contributor" type="atom:atomPersonConstruct" />
	<!-- atom:generator -->
	<xs:element name="generator">
		<xs:complexType mixed="true">
			<xs:attributeGroup ref="atom:atomCommonAttributes" />
			<xs:attribute name="uri" />
			<xs:attribute name="version" />
		</xs:complexType>
	</xs:element>
	<!-- atom:icon -->
	<xs:element name="icon">
		<xs:complexType mixed="true">
			<xs:attributeGroup ref="atom:atomCommonAttributes" />
		</xs:complexType>
	</xs:element>
	<!-- atom:id -->
	<xs:element name="id">
		<xs:complexType mixed="true">
			<xs:attributeGroup ref="atom:atomCommonAttributes" />
		</xs:complexType>
	</xs:element>
	<!-- atom:logo -->
	<xs:element name="logo">
		<xs:complexType mixed="true">
			<xs:attributeGroup ref="atom:atomCommonAttributes" />
		</xs:complexType>
	</xs:element>
	<!-- atom:link -->
	<xs:element name="link">
		<xs:annotation>
			<xs:documentation>
				The "atom:link" element defines a reference from an
				entry or feed to a Web resource. This specification
				assigns no
				meaning to the content (if any) of this
				element.
			</xs:documentation>
		</xs:annotation>

		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="atom:undefinedContent">
					<xs:attributeGroup ref="atom:atomCommonAttributes" />
					<xs:attribute name="href" use="required" />
					<xs:attribute name="rel"></xs:attribute>
					<xs:attribute name="type" type="atom:atomMediaType" />
					<xs:attribute name="hreflang" type="atom:atomLanguageTag" />
					<xs:attribute name="title" />
					<xs:attribute name="length" />
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<!-- atom:published -->
	<xs:element name="published" type="atom:atomDateConstruct" />
	<!-- atom:rights -->
	<xs:element name="rights" type="atom:atomTextConstruct" />
	<!-- atom:source -->
	<xs:element name="source">
		<xs:annotation>
			<xs:documentation>
				atom:source is used to preserve metadata of a feed
				when
				an entry is copied from a feed to another feed.
			</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element ref="atom:author" />
				<xs:element ref="atom:category" />
				<xs:element ref="atom:contributor" />
				<xs:element ref="atom:generator" />
				<xs:element ref="atom:icon" />
				<xs:element ref="atom:id" />
				<xs:element ref="atom:link" />
				<xs:element ref="atom:logo" />
				<xs:element ref="atom:rights" />
				<xs:element ref="atom:subtitle" />
				<xs:element ref="atom:title" />
				<xs:element ref="atom:updated" />
				<xs:group ref="atom:extensionElement" />
			</xs:choice>
			<xs:attributeGroup ref="atom:atomCommonAttributes" />
		</xs:complexType>
	</xs:element>
	<!-- atom:subtitle -->
	<xs:element name="subtitle" type="atom:atomTextConstruct" />
	<!-- atom:summary -->
	<xs:element name="summary" type="atom:atomTextConstruct" />
	<!-- atom:title -->
	<xs:element name="title" type="atom:atomTextConstruct">
		<xs:annotation>
			<xs:documentation>
				The "atom:title" element is a Text construct that
				conveys a human- readable title for an entry or feed.
				atomTitle =
				element atom:title { atomTextConstruct }.
			</xs:documentation>
		</xs:annotation>
	</xs:element>
	<!-- atom:updated -->
	<xs:element name="updated" type="atom:atomDateConstruct">
		<xs:annotation>
			<xs:documentation>
				The "atom:updated" element is a Date construct
				indicating the most recent instant in time when an entry
				or feed was
				modified in a way the publisher considers
				significant. Therefore, not
				all modifications
				necessarily result in a changed atom:updated value.
				atomUpdated = element atom:updated { atomDateConstruct
				}. Publishers
				MAY change the value of this element over
				time.
			</xs:documentation>
		</xs:annotation>
	</xs:element>
	<!-- Low-level simple types -->
	<xs:simpleType name="atomNCName">
		<xs:restriction base="xs:string">
			<xs:minLength value="1" />
			<xs:pattern value="[^:]*" />
		</xs:restriction>
	</xs:simpleType>
	<!-- Whatever a media type is, it contains at least one slash -->
	<xs:simpleType name="atomMediaType">
		<xs:restriction base="xs:string">
			<xs:pattern value=".+/.+" />
		</xs:restriction>
	</xs:simpleType>
	<!-- As defined in RFC 3066 -->
	<xs:simpleType name="atomLanguageTag">
		<xs:restriction base="xs:string">
			<xs:pattern value="[A-Za-z]{1,8}(-[A-Za-z0-9]{1,8})*" />
		</xs:restriction>
	</xs:simpleType>
	<!--
		Unconstrained; it's not entirely clear how IRI fit into xsd:anyURI so
		let's not try to constrain it here
	-->
	<!-- Whatever an email address is, it contains at least one @ -->
	<xs:simpleType name="atomEmailAddress">
		<xs:restriction base="xs:string">
			<xs:pattern value=".+@.+" />
		</xs:restriction>
	</xs:simpleType>

	<!-- Simple Extension -->
	<xs:group name="extensionElement">
		<xs:sequence>
			<xs:any namespace="##other" processContents="lax" minOccurs="0"
				maxOccurs="unbounded">
				<xs:annotation>
					<xs:appinfo>
						<jaxb:property name='anyOther' />
					</xs:appinfo>
				</xs:annotation>
			</xs:any>
			<xs:any namespace="##local" processContents="lax" minOccurs="0"
				maxOccurs="unbounded">
				<xs:annotation>
					<xs:appinfo>
						<jaxb:property name='anyLocal' />
					</xs:appinfo>
				</xs:annotation>
			</xs:any>
		</xs:sequence>
	</xs:group>
	<xs:attributeGroup name="undefinedAttribute">
		<xs:anyAttribute namespace="##other" processContents="lax" />
	</xs:attributeGroup>
	<xs:complexType name="undefinedContent">
		<xs:sequence>
			<xs:any namespace="##other" processContents="lax" minOccurs="0"
				maxOccurs="unbounded">
				<xs:annotation>
					<xs:appinfo>
						<jaxb:property name='anyOther' />
					</xs:appinfo>
				</xs:annotation>
			</xs:any>
			<xs:any namespace="##local" processContents="lax" minOccurs="0"
				maxOccurs="unbounded">
				<xs:annotation>
					<xs:appinfo>
						<jaxb:property name='anyLocal' />
					</xs:appinfo>
				</xs:annotation>
			</xs:any>
		</xs:sequence>

		<!--
			<xs:group minOccurs="0" maxOccurs="unbounded"
			ref="atom:anyForeignElement" />
		-->
	</xs:complexType>
	<xs:group name="anyElement">
		<xs:sequence>
			<xs:any processContents="lax" />
		</xs:sequence>
	</xs:group>
	<xs:group name="anyForeignElement">
		<xs:sequence>
			<xs:any namespace="##other" processContents="lax" />
			<xs:any namespace="##local" processContents="lax" />
		</xs:sequence>
	</xs:group>
	<!-- XHTML -->
	<xs:group name="anyXHTML">
		<xs:sequence>
			<xs:any namespace="http://www.w3.org/1999/xhtml"
				processContents="lax" />
		</xs:sequence>
	</xs:group>
</xs:schema>
	<!-- EOF -->
Collapse AttributeGroups:
Collapse ComplexTypes:
Collapse Elements:
Collapse Groups:
Collapse SimpleTypes: