<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE entities [
<!ELEMENT entities (pi, filename)*>
<!ELEMENT pi (#PCDATA)>
<!ELEMENT filename (#PCDATA)>
]>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more contributor
license agreements.  See the NOTICE.txt 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.
-->
<entities>
  <pi>-//JPL//DTD EDA Directory Objects 1.0//EN</pi>
  <filename>dir.dtd</filename>
  <pi>-//JPL//DTD EDA Email Type Query 1.0//EN</pi>
  <filename>emailTypeQuery.dtd</filename>
  <pi>-//JPL//DTD EDA Kerberos Credential 1.0//EN</pi>
  <filename>kerberosCredential.dtd</filename>
  <pi>-//JPL//DTD EDA LDAP Credential 1.0//EN</pi>
  <filename>ldapCredential.dtd</filename>
  <pi>-//JPL//DTD EDA Organization Query 1.0//EN</pi>
  <filename>organizationQuery.dtd</filename>
  <pi>-//JPL//DTD EDA Person Query 1.0//EN</pi>
  <filename>personQuery.dtd</filename>
  <pi>-//JPL//DTD EDA Person Type Query 1.0//EN</pi>
  <filename>personTypeQuery.dtd</filename>
  <pi>-//JPL//DTD EDA Server Status 1.0//EN</pi>
  <filename>serverStatus.dtd</filename>
  <pi>-//JPL//DTD OODT Metadata 1.0//EN</pi>
  <filename>metadata.dtd</filename>
  <pi>-//JPL//DTD OODT Query 1.0//EN</pi>
  <filename>query.dtd</filename>
  <pi>-//JPL//DTD Profile 1.0//EN</pi>
  <filename>prof.dtd</filename>
  <pi>-//JPL//DTD Profile 1.1//EN</pi>
  <filename>prof.dtd</filename>
  <pi>-//JPL//DTD EDA Server Network 1.0.0//EN</pi>
  <filename>network.dtd</filename>
  <pi>-//JPL//DTD Metadata Schema 1.0.0//EN</pi>
  <filename>metadataSchema.dtd</filename>
  <pi>-//JPL//DTD TEST ENTRY DO NOT REMOVE//EN</pi>
  <filename>test-entry-do-not-remove.dtd</filename>
</entities>
