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

<employees>
  <employee>
    <name>Fred Jones</name>
    <address location="home">
      <street>900 Aurora Ave.</street>
      <city>Seattle</city>
      <state>WA</state>
      <zip>98109</zip>
    </address>
    <address location="work">
      <street>2011 152nd Avenue NE</street>
      <city>Redmond</city>
      <state>WA</state>
      <zip>98052</zip>
    </address>
    <phone location="work">(425)641-9385</phone>
    <phone location="home">(206)441-1695</phone>
    <phone location="mobile">(206)714-2515</phone>
  </employee>
  <employee>
    <name>Sally Smith</name>
    <address location="home">
      <street>1430 Oak Place</street>
      <city>Salem</city>
      <state>OR</state>
      <zip>97125</zip>
    </address>
    <address location="work">
      <street>765 Main St.</street>
      <city>Kaiser</city>
      <state>OR</state>
      <zip>97103</zip>
    </address>
    <phone location="work">(503)264-3856</phone>
    <phone location="home">(503)416-6951</phone>
    <phone location="mobile">(503)214-5152</phone>
  </employee>
</employees>
