<?xml version="1.0"?><?TEST-STYLE PIDATA?>
<!--
/*   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.
 */
-->
<!-- inline DTD for ID -->
<!DOCTYPE staff [
<!ELEMENT emp:employee (emp:employeeId,nm:name,emp:position,emp:salary,emp:gender,emp:address) >
<!ATTLIST emp:employee xmlns:emp CDATA #IMPLIED>
<!ATTLIST emp:employee xmlns:nm CDATA #IMPLIED>
<!ATTLIST emp:employee defaultAttr CDATA 'defaultVal'>

<!ELEMENT emp:employeeId (#PCDATA) >

<!ELEMENT nm:name (#PCDATA) >

<!ELEMENT emp:position (#PCDATA) >

<!ELEMENT emp:salary (#PCDATA) >

<!ELEMENT emp:gender (#PCDATA) >

<!ELEMENT emp:address (#PCDATA) >
<!ATTLIST emp:address emp:domestic CDATA #IMPLIED>
<!ATTLIST emp:address street CDATA #IMPLIED>
<!ATTLIST emp:address emp:zone ID #IMPLIED>
<!ATTLIST emp:address emp:district CDATA 'DISTRICT'>
<!ATTLIST emp:address emp:local1 CDATA 'FALSE'>
]>
<!-- This is comment number 1.-->
<staff>
 <employee xmlns="http://www.nist.gov" xmlns:dmstc="http://www.usa.com">
  <employeeId>EMP0001</employeeId>
  <name>Margaret Martin</name>
  <position>Accountant</position>           
  <salary>56,000</salary>
  <gender>Female</gender>
  <address dmstc:domestic="Yes">1230 North Ave. Dallas, Texas 98551</address>
 </employee>
 <employee xmlns:dmstc="http://www.usa.com">
  <employeeId>EMP0002</employeeId>
  <name>Martha Raynolds
<![CDATA[This is a CDATASection with EntityReference number 2 &ent2;]]>
<![CDATA[This is an adjacent CDATASection with a reference to a tab &tab;]]></name>
  <position>Secretary</position>
  <salary>35,000</salary>
  <gender>Female</gender>
  <address dmstc:domestic="Yes" street="Yes"> Dallas,
 98554</address>
 </employee>
 <employee xmlns:dmstc="http://www.netzero.com">
  <employeeId>EMP0003</employeeId>
  <name>Roger
 Jones</name>
  <position>Department Manager</position>
  <salary>100,000</salary>
  <gender></gender>
  <address dmstc:domestic="Yes" street="No">PO Box 27 Irving, texas 98553</address>
 </employee>
 <emp:employee xmlns:emp="http://www.nist.gov" xmlns:nm="http://www.altavista.com" >    <emp:employeeId>EMP0004</emp:employeeId>
  <nm:name>Jeny Oconnor</nm:name>
  <emp:position>Personnel Director</emp:position>
  <emp:salary>95,000</emp:salary>
  <emp:gender>Female</emp:gender>
  <emp:address emp:domestic="Yes" street="Y" emp:zone="CANADA" emp:local1="TRUE">27 South Road. Dallas, texas 98556</emp:address>
 </emp:employee>
 <employee xmlns:emp2="http://www.nist.gov">
  <employeeId>EMP0005</employeeId>
  <name>Robert Myers</name>
  <position>Computer Specialist</position>
  <salary>90,000</salary>
  <gender>male</gender>
  <address street="Yes" xmlns="http://www.nist.gov">1821 Nordic. Road, Irving Texas 98558</address>
 </employee>
 </staff>
