<?xml version="1.0" standalone="no"?>
<!--
 * 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.
-->

<!DOCTYPE s1 SYSTEM "sbk:/style/dtd/document.dtd">

<s1 title="Sample: EnumVal">

    <s2 title="EnumVal">
        <p>EnumVal shows how to enumerate the markup declarations in a DTD Grammar.</p>

        <s3 title="Running EnumVal">
          <p>This program parses the specified XML file, then shows how to
            enumerate the contents of the DTD Grammar.</p>
<source>
Usage:
    EnumVal &lt;XML file&gt;

This program parses the specified XML file, then shows how to
enumerate the contents of the DTD Grammar. Essentially,
shows how one can access the DTD information stored in internal
data structures.
</source>
          <p>Here is a sample output from EnumVal</p>
<source>cd &XercesC3InstallDir;/samples/data
EnumVal personal.xml

ELEMENTS:
----------------------------
  Name: personnel
  Content Model: (person)+

  Name: person
  Content Model: (name,email*,url*,link?)
  Attributes:
    Name:id, Type: ID

  Name: name
  Content Model: (#PCDATA|family|given)*

  Name: email
  Content Model: (#PCDATA)*

  Name: url
  Content Model: EMPTY
  Attributes:
    Name:href, Type: CDATA

  Name: link
  Content Model: EMPTY
  Attributes:
    Name:subordinates, Type: IDREF(S)
    Name:manager, Type: IDREF(S)

  Name: family
  Content Model: (#PCDATA)*

  Name: given
  Content Model: (#PCDATA)*</source>
        </s3>
    </s2>
</s1>
