<?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.

-->
<purchaseOrder orderDate='20021010'>
	<shipTo country="US">
		<name>J</name>
		<city>Foster City</city>
	</shipTo>
	<billTo>
		<name>C</name>
	</billTo>
	<comment>comment for the purchase order</comment>
	<items>
		<item partNum='123'>
			<productName>Stargazer lily</productName>
			<quantity>5</quantity>
			<USPrice>1.21</USPrice>
		</item>
		<item partNum='124'>
			<productName>Red Rose</productName>
			<quantity>2</quantity>
			<USPrice>2</USPrice>
		</item>
	</items>
</purchaseOrder>
