<?xml version="1.0" encoding="utf-8" ?>
<!--
/*   Copyright 2004 The Apache Software Foundation
 *
 *   Licensed 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.
 */
-->

<testroot>
	<testAtomicTypeElem>MS Word</testAtomicTypeElem>
	<testListTypeElem>3</testListTypeElem>

	<testUnionTypeElem>My App</testUnionTypeElem>
	<testUnionTypeElem>4</testUnionTypeElem>

	<header>This is a test Email Header </header>
	<testComplexTypeElementOnlyContentElem> 
	    <mail>
	    	<envelope From="x@bea.com">
		      <From>user@unknown.domain.org</From>
		      <To>user@cduce.org</To>
		      <Date>2003-10-15T15:44:01Z</Date>
		      <Subject>Xml Beans Testing</Subject>
		      <header name="Reply-To">bill@microsoft.com</header>
	    	</envelope>
	    </mail>
	</testComplexTypeElementOnlyContentElem> 


	<testComplexTypeMixedElem>

	    <mail>
	    	<envelope From="x@bea.com">
		      <From>user@unknown.domain.org</From>
		      <To>user@cduce.org</To>
		      <Date>2003-10-15T15:44:01Z</Date>
		      <Subject>Xml Beans Testing</Subject>
		      <header name="Reply-To">bill@microsoft.com</header>
	    	</envelope>
	    </mail>


	</testComplexTypeMixedElem>

	<testComplexTypeEmptyElem value="ABC" />

	<testChoiceGroupElem>
		<Lang>English</Lang>
		<Font>Arial</Font>
	</testChoiceGroupElem>
	<testAllGroupElem>
		<Greetings>Hello</Greetings>
		<Signature> Mr X., Bea Systems</Signature>
		<ContactNumber>425-123-1234</ContactNumber>
	</testAllGroupElem>
	<testAllGroupElem>
		<Greetings>Hello</Greetings>
		<Signature> Mr X., Bea Systems</Signature>
		<ContactNumber>425-123-1234</ContactNumber>
	</testAllGroupElem>


</testroot>
