<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2008 sp1 (http://www.altova.com) by William A Shaffer (Waysys LLC) -->
<xs:schema xmlns="http://waysysweb.com/schema/wysdom/usecase.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:base="http://waysysweb.com/schema/wysdom/basic.xsd" targetNamespace="http://waysysweb.com/schema/wysdom/usecase.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:annotation>
		<xs:documentation>
			<dc:creator>William Shaffer</dc:creator>
			<dc:description>This schema describes the content model for WysDoM use case.</dc:description>
			<dc:publisher>Waysys LLC</dc:publisher>
			<dc:rights>Copyright (c) 2007 Waysys LLC</dc:rights>
		</xs:documentation>
	</xs:annotation>
	<!---->
	<!--Imports-->
	<!---->
	<xs:import namespace="http://waysysweb.com/schema/wysdom/basic.xsd" schemaLocation="basic.xsd"/>
	<xs:import namespace="http://purl.org/dc/elements/1.1/" schemaLocation="dc.xsd"/>
	<!---->
	<!--Use case definition-->
	<!---->
	<xs:element name="usecase">
		<xs:annotation>
			<xs:documentation>This element is the top level element of the use case document.  </xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="uchead"/>
				<xs:element ref="ucbody"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="uchead">
		<xs:annotation>
			<xs:documentation>The Use Case Header contains aboout the project,  the status of the use case, and the revision history.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="identifier" type="base:SimpleText">
					<xs:annotation>
						<xs:documentation>Use this element to provide an identifier for the use case that can be used in a termref element.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="project" type="base:SimpleText">
					<xs:annotation>
						<xs:documentation>Use this element to list the project to which this use case belongs</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="package" type="base:SimpleText">
					<xs:annotation>
						<xs:documentation>Use this element to name the package that contains this use case.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="status">
					<xs:annotation>
						<xs:documentation>Use this element to note the level of completion of this use case.</xs:documentation>
					</xs:annotation>
					<xs:simpleType>
						<xs:restriction base="xs:string">
							<xs:enumeration value="NotStarted"/>
							<xs:enumeration value="InProgress"/>
							<xs:enumeration value="PendingReview"/>
							<xs:enumeration value="Completed"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				<xs:element ref="base:revisionhistory">
					<xs:annotation>
						<xs:documentation>Use this element to record the revision history of this use case.</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="ucbody">
		<xs:annotation>
			<xs:documentation>This element contains the main text of the use case.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="ucname"/>
				<xs:element ref="ucdesc"/>
				<xs:element ref="ucactors"/>
				<xs:element ref="deliverable"/>
				<xs:element ref="ucextends" minOccurs="0"/>
				<xs:element ref="ucprecondition" minOccurs="0"/>
				<xs:element ref="ucscenarios"/>
				<xs:element ref="ucpostcondition" minOccurs="0"/>
				<xs:element ref="uccomments" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="ucname" type="base:SimpleText">
		<xs:annotation>
			<xs:documentation>This element is the name of the use case.  The name can be a short phrase that describes the use case.  The phrase should be short enough to make a reasonable entry in a table of contents.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ucdesc" type="base:ParaText">
		<xs:annotation>
			<xs:documentation>This element contains a descripton of the use case.  Use this element to explaini important aspects of the use case.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ucactors">
		<xs:annotation>
			<xs:documentation>This element contains a list of the actors involved in use case.  The first actor should be the primary actor.  The list must contain at least one actor.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence maxOccurs="unbounded">
				<xs:element ref="actor"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="actor">
		<xs:annotation>
			<xs:documentation>This element containis information about a single actor.  Set the primary attribute to true if the actor is the primary actor.  An actor can be either a person or a system.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="actorname" type="base:SimpleText"/>
			</xs:sequence>
			<xs:attribute name="primary" type="xs:boolean"/>
			<xs:attribute name="actortype" use="optional" default="person">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="person"/>
						<xs:enumeration value="system"/>
						<xs:enumeration value="organization"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="deliverable" type="base:ParaText">
		<xs:annotation>
			<xs:documentation>This element describes the primary deliverable from the use case.  This element may contain a reference to an output, report, or other item.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ucprecondition" type="base:ParaText">
		<xs:annotation>
			<xs:documentation>This element describes the conditions that come before the execution of the scenarios.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ucextends">
		<xs:annotation>
			<xs:documentation>Extends are use cases that provide an optional sequence of events to other use cases.  If this use case is extended, list the extensions here.  This element is optional.  If it is present, it must contain at least one extend element.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence maxOccurs="unbounded">
				<xs:element ref="base:termref"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="ucscenarios">
		<xs:annotation>
			<xs:documentation>This element provides a list of scenarios.  There must be at least one scenario, the primary scenario.  </xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence maxOccurs="unbounded">
				<xs:element ref="scenario"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="scenario">
		<xs:annotation>
			<xs:documentation>This element contains a description of the scenario.  A scenaro is a list of numbered steps.  The scenario name identifies the scenario.  For example, one scenario should be labeled the primary scenario.  The optional comment element is used to identify any conditions for invoking the scenario.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="scenarioname" type="base:SimpleText"/>
				<xs:element name="comment" minOccurs="0"/>
				<xs:element ref="base:numlist"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="uccomments" type="base:ParaText">
		<xs:annotation>
			<xs:documentation>This optional element can be used to attach additional information aboout the use case.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:element name="ucpostcondition" type="base:ParaText">
		<xs:annotation>
			<xs:documentation>This element describes the conditions that come after the execution of the scenarios.</xs:documentation>
		</xs:annotation>
	</xs:element>
</xs:schema>
