<!DOCTYPE schema PUBLIC '-//W#C//DTD XML Schema Version 1.0//EN'
		SYSTEM "http://www.w3.org/1999/05/06-xmlschema-1/structures.dtd">

<schema name="protein.xsd">

<!-- datatype: Schema-datatypes -->

<datatype name="name">
	<basetype name="string" uri="http://www.w3.org/xmlschemas/datatypes"/>
	<maxLength>10</maxLength>
</datatype>

<datatype name="ProteinName">
	<basetype name="name">
	<lexicalRepresentatiom>
		<lexical>"[A-Z]{1-10}"</lexical>
	</lexicalRepresentation>
</datatype>

<!-- archetype -->

<archetype name="namedEntity" model="refinable">
	<attrDecl name="name" required="true">
		<datatypeRef name="name"/>
	</attrDecl>
</archetype>

<archetype name="namedSizedEntity" model="refinable">
	<refines><archetypeRef name="namedEntity"></refines>
	<attrDecl name="length">
		<datatypeRef name="integer">
			<default>0</default>
		</datatypeRef>
	</attrDecl>
</archetype>

<!-- elementType -->

<elementType name="GENE">
	<archetypeRef name="namedEntity">
</elementType>

<elementType name="PROTEIN">
	<archetypeRef name="namedSizedEntity">
	<attrDecl name="name">
		<datatypeRef name="ProteinName">
	</attrDecl>
	<choice>
		<empty/>
		<sequence>
			<elementTypeRef name="GENE"/>
			<all minOccur=0 maxOccur="*">
				<elementtypeRef name="INTERACTION"/>
			</all>
		</sequence>
	</choice>
</elementType>

<elementType name="INTERACTION">
	<sequence>
		<elementTypeRef name="PROTEIN"/>
		<elementTypeRef name="GENE"/>
	</sequence>
</elementType>

</schema>

<!-- EXAMPLE:

<?xml version="1.0"?>
<?schema href="protein.xsd"?>

<PROTEIN name="BICOID" length="422">
	<GENE name="Bicoid"/>
	<INTERACTION>
		<PROTEIN name="BICOID"/>
		<GENE name="Hunchback"/>
	</INTERACTION>
</PROTEIN>

 -->
