<?xml version="1.0" encoding="utf-8"?>
<s:schema id="UCRRequest"
		  attributeFormDefault="qualified"
		  elementFormDefault="qualified"
		  xmlns:s="http://www.w3.org/2001/XMLSchema" >
	<s:element name="SearchCriteria" nillable="false">
		<s:complexType>
			<s:choice minOccurs="1" maxOccurs="unbounded">
				<s:element name="Paging" type="PagingType" minOccurs="0" maxOccurs="1" nillable="false" />
				<s:element name="FullText" type="FullTextType" minOccurs="0" maxOccurs="1"/>
				<s:element name="ByLetter" type="ByLetterType" minOccurs="0" maxOccurs="1" nillable="false"  />
				<s:element name="ByTitle" type="ByTitleType" minOccurs="0" maxOccurs="1" nillable="false"  />
				<s:element name="PostingDate" type="PostingDateType" minOccurs="0" maxOccurs="1"  />
				<s:element name="EndPostingDate" type="EndPostingDateType" minOccurs="0" maxOccurs="1"  />
				<s:element name="Language" type="LanguageType" minOccurs="0" maxOccurs="1" nillable="true" />
				<s:element name="Gender" type="GenderType" minOccurs="0" maxOccurs="1"  />
				<s:element name="AgeGroups" type="AgeGroupsType" minOccurs="0" maxOccurs="1" nillable="true" />
				<s:element name="ContentTypes" type="ContentTypesType" minOccurs="0" maxOccurs="1" nillable="true" />
				<s:element name="Subtopics" type="SubtopicsType" minOccurs="0" maxOccurs="1" nillable="true" />
				<s:element name="MeSHList" type="MeSHListType" minOccurs="0" maxOccurs="1" nillable="true" />
				<s:element name="ICD9List" type="ICD9ListType" minOccurs="0" maxOccurs="1" nillable="true" />
				<s:element name="CPTList" type="CPTListType" minOccurs="0" maxOccurs="1" nillable="true" />
				<s:element name="Servicelines" type="ServicelinesType" minOccurs="0" maxOccurs="1" nillable="true" />
				<s:element name="BlockDisapproved" type="BlockDisapprovedType" minOccurs="0" maxOccurs="1"/>
			</s:choice>
			<s:attribute name="ReturnAdditionalTitles" type="s:boolean" use="optional" />
			<s:attribute name="IncludeBlocked" type="s:boolean" use="optional" />
			<s:attribute name="SortBy" type="SortByType" use="optional" />
			<s:attribute name="SortDirection" type="SortDirectionType" use="optional" />
		</s:complexType>
	</s:element>
	<s:element name="GetContent">
		<s:complexType>
			<s:attribute name="ContentTypeId" type="s:int" use="optional" />
			<s:attribute name="ContentId" type="s:string" use="optional" />
			<s:attribute name="GetOriginal" type="s:boolean" use="optional" />
			<s:attribute name="GetDraft" type="s:boolean" use="optional" />
			<s:attribute name="IncludeBlocked" type="s:boolean" use="optional" />
		</s:complexType>
	</s:element>
	<s:element name="GetAllServicelinePageKeywords">
		<s:complexType>
			<s:attribute name="ServicelineKeyword" type="s:string" use="required" />
		</s:complexType>
	</s:element>
	<s:element name="CollectionContents">
		<s:complexType>
			<s:choice minOccurs="0" maxOccurs="unbounded">
				<s:element name="AgeBins" minOccurs="1" maxOccurs="1">
					<s:complexType>
						<s:choice>
							<s:element name="AgeBin" minOccurs="1" maxOccurs="unbounded">
								<s:complexType>
									<s:simpleContent>
										<s:extension base="AgeGroupType"></s:extension>
									</s:simpleContent>
								</s:complexType>
							</s:element>
						</s:choice>
					</s:complexType>
				</s:element>
			</s:choice>
			<s:attribute name="SubtopicId" type="s:int" use="required"/>
			<s:attribute name="IncludeContent" type="s:boolean" use="optional"/>
			<s:attribute name="IncludeBlocked" type="s:boolean" use="optional" />
			<s:attribute name="GetOriginal" type="s:boolean" use="optional"/>
			<s:attribute name="LanguageCode" type="LanguageValueType" use="optional" />
			<s:attribute name="GenderCode" type="GenderCodeType" use="optional" />
			<s:attribute name="MaxContent" type="s:int" use="optional" />
			<s:attribute name="IsRecursive" type="s:boolean" use="optional" />
		</s:complexType>
	</s:element>
	<s:element name="DynamicCollectionContentsRequest">
		<s:complexType>
			<s:attribute name="DynamicCollectionId" type="s:int" use="required" />
			<s:attribute name="IncludeBlocked" type="s:boolean" use="optional" />
		</s:complexType>
	</s:element>
	<s:element name="RelatedContentRequest">
		<s:complexType>
			<s:choice minOccurs="1" maxOccurs="2">
				<s:choice minOccurs="1" maxOccurs="1">
					<s:element name="MeSHList" type="MeSHListType" maxOccurs="1" />
					<s:element name="ContentObject" minOccurs="0" maxOccurs="1">
						<s:complexType>
							<s:attribute name="ContentTypeId" type="s:int" use="required" />
							<s:attribute name="ContentId" type="s:string" use="required" />
						</s:complexType>
					</s:element>
				</s:choice>
				<s:element name="Language" type="LanguageType" minOccurs="0" maxOccurs="1"/>
			</s:choice>
			<s:attribute name="IncludeBlocked" type="s:boolean" use="optional" ></s:attribute>
			<s:attribute name="GetOriginal" type="s:boolean" use="optional" ></s:attribute>
		</s:complexType>
	</s:element>
	<s:element name="RateContent">
		<s:complexType>
			<s:attribute name="ContentTypeId" type="s:int" use="required" />
			<s:attribute name="ContentId" type="s:string" use="required" />
			<s:attribute name="IsCustom" type="s:boolean" use="optional" />
			<s:attribute name="Rating" type="RatingRangeType" use="required" />
			<s:attribute name="UserId" type="s:int" use="optional" />
		</s:complexType>
	</s:element>
	<s:element name="MeSHListRequest">
		<s:complexType>
			<s:attribute name="IncludeContent" type="s:boolean" use="optional" />
			<s:attribute name="PartialWord" type="s:boolean" use="optional" />
			<s:attribute name="SearchPhrase" type="s:string" use="optional" />
			<s:attribute name="LogicalOperator" type="LogicalOperatorType" use="optional" />
		</s:complexType>
	</s:element>
	<s:element name="ICD9ListRequest">
		<s:complexType>
			<s:attribute name="IncludeContent" type="s:boolean" use="optional" />
		</s:complexType>
	</s:element>
	<s:element name="CPTListRequest">
		<s:complexType>
			<s:attribute name="IncludeContent" type="s:boolean" use="optional" />
		</s:complexType>
	</s:element>
	<s:element name="LicenseUpdateRequest">
		<s:complexType>
			<s:attribute name="StartDate" type="s:date" use="required" />
			<s:attribute name="IncludeBlocked" type="s:boolean" use="optional" />
		</s:complexType>
	</s:element>
	<s:element name="GsaSearchRequest">
		<s:complexType>
			<s:attribute name="SearchTerm" type="s:string" use="required" />
			<s:attribute name="Collections" type="s:string" use="required" />
			<s:attribute name="ContentTypeLogicalOperator" use="optional">
				<s:simpleType>
					<s:restriction base="s:string">
						<s:enumeration value="Include"/>
						<s:enumeration value="Exclude"/>
						<s:enumeration value="include"/>
						<s:enumeration value="exclude"/>
					</s:restriction>
				</s:simpleType>
			</s:attribute>
			<s:attribute name="ContentTypeIds" type="s:string" use="optional" />
			<s:attribute name="IncludeClientContent" type="s:boolean" use="optional" />
			<s:attribute name="LanguageCode" type="s:string" use="optional" />
			<s:attribute name="StartIndex" type="s:int" use="optional" />
			<s:attribute name="ResultsPerPage" type="s:int" use="optional" />
		</s:complexType>
	</s:element>
	<s:element name="GsaSearchResultRequest">
		<s:complexType>
			<s:attribute name="Url" type="s:anyURI" use="required" />
		</s:complexType>
	</s:element>
	<s:element name="ExportRequest">
		<s:complexType>
			<s:choice minOccurs="0" maxOccurs="2">
				<s:element name="EpicParams" type="EpicParamType" minOccurs="0" maxOccurs="1" />
				<s:element name="CustomFolder" type="FolderType" minOccurs="0" maxOccurs="1" />
			</s:choice>
			<s:attribute name="NotificationEmail" type="Email" use="optional" />
			<s:attribute name="NotificationUrl" type="httpURI" use="optional" />
			<s:attribute name="ExportType" type="ExportType" use="required" />
			<s:attribute name="TransformType" type="TransformType" use="required" />
			<s:attribute name="SaveXml" type="s:boolean" use="optional" />
			<s:attribute name="DateFrom" type="s:date" use="optional" />
		</s:complexType>
	</s:element>
	<!-- Type Definitions -->
	<s:simpleType name="SortByType">
		<s:restriction base="s:string">
			<s:enumeration value="Rating" />
			<s:enumeration value="ViewCount" />
			<s:enumeration value="PublishedDate" />
			<s:enumeration value="Title" />
		</s:restriction>
	</s:simpleType>
	<s:simpleType name="SortDirectionType">
		<s:restriction base="s:string">
			<s:enumeration value="Ascending" />
			<s:enumeration value="Descending" />
		</s:restriction>
	</s:simpleType>
	<s:complexType name="PagingType">
		<s:attribute name="PageSize" type="s:int" use="optional" />
		<s:attribute name="PageNumber" type="s:int" use="optional" />
	</s:complexType>
	<s:complexType name="FullTextType">
		<s:simpleContent>
			<s:extension base="s:string">
				<s:attribute name="LogicalOperator" type="LogicalOperatorType" use="required" />
			</s:extension>
		</s:simpleContent>
	</s:complexType>
	<s:complexType name="ByLetterType">
		<s:simpleContent>
			<s:extension base="s:string">
				<s:attribute name="IncludeAdditionalTitles" type="s:boolean" use="optional" />
			</s:extension>
		</s:simpleContent>
	</s:complexType>
	<s:complexType name="ByTitleType">
		<s:simpleContent>
			<s:extension base="s:string">
				<s:attribute name="IncludeAdditionalTitles" type="s:boolean" use="optional" />
			</s:extension>
		</s:simpleContent>
	</s:complexType>
	<s:complexType name="PostingDateType">
		<s:simpleContent>
			<s:extension base="s:date">
			</s:extension>
		</s:simpleContent>
	</s:complexType>
	<s:complexType name="EndPostingDateType">
		<s:simpleContent>
			<s:extension base="s:date">
			</s:extension>
		</s:simpleContent>
	</s:complexType>
	<s:complexType name="LanguageType">
		<s:attribute name="Code" type="LanguageValueType" use="required" />
	</s:complexType>
	<s:complexType name="AgeGroupsType">
		<s:choice  minOccurs="1" maxOccurs="unbounded">
			<s:element name="AgeGroup">
				<s:simpleType>
					<s:restriction base="AgeGroupType"/>
				</s:simpleType>
			</s:element>
		</s:choice>
	</s:complexType>
	<s:complexType name="ContentTypesType">
		<s:sequence minOccurs="1" maxOccurs="unbounded">
			<s:choice minOccurs="1" maxOccurs="unbounded">
				<s:element name="ContentType" nillable="true">
					<s:complexType>
						<s:attribute name="ContentTypeId" type="s:int" use="required"/>
					</s:complexType>
				</s:element>
			</s:choice>
		</s:sequence>
	</s:complexType>
	<s:complexType name="SubtopicsType">
		<s:choice minOccurs="1" maxOccurs="unbounded">
			<s:element name="Subtopic" nillable="true">
				<s:complexType>
					<s:attribute name="RootSubtopicId" type="s:int" use="optional" />
					<s:attribute name="SubtopicId" type="s:int" use="optional" />
				</s:complexType>
			</s:element>
		</s:choice>
	</s:complexType>
	<s:complexType name="MeSHListType">
		<s:sequence minOccurs="1" maxOccurs="unbounded">
			<s:choice minOccurs="1" maxOccurs="unbounded">
				<s:element name="MeSH">
					<s:complexType>
						<s:attribute name="Code" type="s:string" use="required"/>
					</s:complexType>
				</s:element>
			</s:choice>
		</s:sequence>
	</s:complexType>
	<s:complexType name="ICD9ListType">
		<s:sequence minOccurs="1" maxOccurs="unbounded">
			<s:choice minOccurs="1" maxOccurs="unbounded">
				<s:element name="ICD9" nillable="true" >
					<s:complexType>
						<s:attribute name="Code" type="s:string" use="required"/>
					</s:complexType>
				</s:element>
			</s:choice>
		</s:sequence>
	</s:complexType>
	<s:complexType name="CPTListType">
		<s:sequence minOccurs="1" maxOccurs="unbounded">
			<s:choice minOccurs="1" maxOccurs="unbounded">
				<s:element name="CPT" nillable="true" >
					<s:complexType>
						<s:attribute name="Code" type="s:string" use="required"/>
					</s:complexType>
				</s:element>
			</s:choice>
		</s:sequence>
	</s:complexType>
	<s:complexType name="ServicelinesType">
		<s:sequence minOccurs="1" maxOccurs="unbounded">
			<s:choice minOccurs="1" maxOccurs="unbounded">
				<s:element name="Serviceline" nillable="true" >
					<s:complexType>
						<s:attribute name="ServicelineKeyword" type="s:string" use="optional"/>
						<s:attribute name="PageKeyword" type="s:string" use="optional"/>
						<s:attribute name="Audience" type="s:string" use="optional"/>
					</s:complexType>
				</s:element>
			</s:choice>
		</s:sequence>
	</s:complexType>
	<s:complexType name="BlockDisapprovedType">
		<s:simpleContent>
			<s:extension base="s:boolean"></s:extension>
		</s:simpleContent>
	</s:complexType>
	<s:complexType name="ReturnCustomType">
		<s:simpleContent>
			<s:extension base="s:boolean"></s:extension>
		</s:simpleContent>
	</s:complexType>

	<s:simpleType name="LogicalOperatorType">
		<s:restriction base="s:string">
			<s:enumeration value="or" />
			<s:enumeration value="Or" />
			<s:enumeration value="and" />
			<s:enumeration value="And" />
		</s:restriction>
	</s:simpleType>
	<s:simpleType name="LanguageValueType">
		<s:restriction base="s:string">
			<s:enumeration value="aa" />
			<s:enumeration value="de" />
			<s:enumeration value="en" />
			<s:enumeration value="es" />
			<s:enumeration value="fa" />
			<s:enumeration value="fr" />
			<s:enumeration value="hmn" />
			<s:enumeration value="hy" />
			<s:enumeration value="it" />
			<s:enumeration value="km" />
			<s:enumeration value="ko" />
			<s:enumeration value="po" />
			<s:enumeration value="ru" />
			<s:enumeration value="so" />
			<s:enumeration value="tgl" />
			<s:enumeration value="vi" />
			<s:enumeration value="zh" />
		</s:restriction>
	</s:simpleType>
	<s:simpleType name="GenderType">
		<s:restriction base="s:string">
			<s:enumeration value="Male" />
			<s:enumeration value="Female" />
			<s:enumeration value="All" />
		</s:restriction>
	</s:simpleType>
	<s:simpleType name="GenderCodeType">
		<s:restriction base="s:string">
			<s:enumeration value="A" />
			<s:enumeration value="M" />
			<s:enumeration value="F" />
		</s:restriction>
	</s:simpleType>
	<s:simpleType name="AgeGroupType">
		<s:restriction base="s:string">
			<s:enumeration value="Infant (0 - 11 mo)" />
			<s:enumeration value="Childhood (11 mo - 12 yrs)" />
			<s:enumeration value="Teen (12 - 18 yrs)" />
			<s:enumeration value="Adult (18+)" />
			<s:enumeration value="Senior" />
		</s:restriction>
	</s:simpleType>
	<s:simpleType name="AgeBinType">
		<s:restriction base="s:string">
			<s:enumeration value="Infant" />
			<s:enumeration value="Childhood" />
			<s:enumeration value="Teen" />
			<s:enumeration value="Adult" />
			<s:enumeration value="Senior" />
		</s:restriction>
	</s:simpleType>
	<s:simpleType name="RatingRangeType">
		<s:restriction base="s:integer">
			<s:minInclusive value="1"/>
			<s:maxInclusive value="5"/>
		</s:restriction>
	</s:simpleType>
	<s:simpleType name="ExportType">
		<s:restriction base="s:string">
			<s:enumeration value="Standard" />
			<s:enumeration value="Epic" />
			<s:enumeration value="Meditech" />
			<s:enumeration value="Xml" />
		</s:restriction>
	</s:simpleType>
	<s:simpleType name="TransformType">
		<s:restriction base="s:string">
			<s:enumeration value="Standard" />
			<s:enumeration value="Msn" />
			<s:enumeration value="Epic" />
			<s:enumeration value="Meditech" />
		</s:restriction>
	</s:simpleType>
	<s:simpleType  name="httpURI">
		<s:restriction base="s:anyURI">
			<s:pattern value="(http|https)://.*" />
		</s:restriction>
	</s:simpleType>
	<s:simpleType  name="Email">
		<s:restriction base="s:string">
			<s:pattern value="\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*" />
		</s:restriction>
	</s:simpleType>
	<s:complexType name="FolderType">
		<s:choice minOccurs="1" maxOccurs="unbounded">
			<s:element name="Folder" type="FolderType" minOccurs="0" maxOccurs="unbounded" />
			<s:element name="Documents" minOccurs="0" maxOccurs="1">
				<s:complexType>
					<s:attribute name="List" type="s:string" />
				</s:complexType>
			</s:element>
		</s:choice>
		<s:attribute name="Name" type="s:string" use="required"></s:attribute>
	</s:complexType>
	<s:complexType name="EpicParamType">
		<s:sequence>
			<s:element name="AgeGenderFilterList" minOccurs="0">
				<s:complexType>
					<s:sequence>
						<s:element name="AgeGenderFilter" maxOccurs="unbounded">
							<s:complexType>
								<s:attribute name="AgeBin" type="s:string" use="optional" />
								<s:attribute name="Gender" type="GenderType" use="optional" />
								<s:attribute name="ContentId" type="s:string" use="required" />
							</s:complexType>
						</s:element>
					</s:sequence>
				</s:complexType>
			</s:element>
		</s:sequence>
		<s:attribute name="NavOnly" type="s:boolean" use="optional" />
		<s:attribute name="OmitNav" type="s:boolean" use="optional" />
		<s:attribute name="RemoveAsterisk" type="s:boolean" use="optional" />
		<s:attribute name="AllowNonEnglish" type="s:boolean" use="optional" />
		<s:attribute name="IsHennepin" type="s:boolean" use="optional" />
		<s:attribute name="Encoding" type="s:string" use="optional" />
	</s:complexType>
</s:schema>

