<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!--
 A Multi-valued, generic Metadata container schema. The class uses a map of 
 string keys pointing to vectors of strings. The data structure looks like 
 the following: 

 [std:string key]=><std:vector of std:strings>

 The multi-valued nature of the class is handled transparently by this Metadata
 container. Since all values are stored internally as string vectors, the difference
 between a scalar value and a non-scalar is handled by determing whether the list of
 values for a particular key is greater than 1. 
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	<xs:element name="key" type="xs:string"/>
	<xs:complexType name="keyvalType">
		<xs:sequence>
			<xs:element ref="key"/>
			<xs:element ref="val" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="metadata">
		<xs:complexType>
			<xs:sequence minOccurs="0" maxOccurs="unbounded">
				<xs:element name="keyval" type="keyvalType"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="val" type="xs:string"/>
</xs:schema>
