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

<!ENTITY % sitemap SYSTEM "sitemap.dtd">
%sitemap;

<!ELEMENT modulesynopsis (name , description, status, hint?, sourcefile?,
identifier? , compatibility? , summary? , seealso* , section*,
directivesynopsis*)>

<!ATTLIST modulesynopsis metafile CDATA  #REQUIRED>

<!ELEMENT directivesynopsis (name , description? , syntax? , default?
, contextlist? , override? , modulelist?, status?, compatibility? ,
usage?, seealso*)>

<!ELEMENT name (#PCDATA)>

<!ELEMENT status (#PCDATA)>

<!ELEMENT hint %Inline;>

<!ELEMENT identifier (#PCDATA)>

<!ELEMENT sourcefile (#PCDATA)>

<!ELEMENT compatibility %Inline;>

<!ELEMENT description %Inline;>

<!ATTLIST directivesynopsis  type CDATA  #IMPLIED
                             location CDATA  #IMPLIED >

<!ELEMENT syntax %Inline;>

<!ELEMENT default (#PCDATA | br)*>

<!ELEMENT contextlist (context+)+>

<!ELEMENT context (#PCDATA)>

<!ELEMENT override (#PCDATA)>

<!ELEMENT usage %Block;>

<!-- Used in index.xml -->
<!ELEMENT moduleindex (title, summary, seealso*)>

<!ATTLIST moduleindex metafile CDATA  #REQUIRED>

<!-- Used in directive.xml -->
<!ELEMENT directiveindex (title | summary)+>

<!ATTLIST directiveindex metafile CDATA  #REQUIRED>

<!-- Used in quickreference.xml -->
<!ELEMENT quickreference (title | summary | legend)+>
<!ATTLIST quickreference metafile CDATA  #REQUIRED>

<!ELEMENT legend (table, table)>
