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

<purchase-order xmlns="http://xmlbeans.apache.org/samples/substitutiongroup/easypo">
  <invoice-header>
    <ship-to>
      <name>Any Inc.</name>
      <address>AnyTown, AnyCity</address>
    </ship-to>
    <bill-to>
      <name>Any Inc.</name>
      <address>AnyTown, AnyCity</address>
    </bill-to>
    <book id="123">
      <title>The Little Engine That Could</title>
    </book>
    <ship-comment>
      Please ship this to Any Inc. asap.
    </ship-comment>
  </invoice-header>

  <invoice-header>
    <ship-to>
      <name>Some Corp.</name>
      <address>SomeTown, SomeCity</address>
    </ship-to>
    <bill-to>
      <name>This Corp.</name>
      <address>ThisTown, ThisCity</address>
    </bill-to>
    <clothing id="456">
      <color>green</color>
    </clothing>
    <comment>
      This is being billed to This Corp.
    </comment>
  </invoice-header>


</purchase-order>
