<?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: PSVIWriter">

    <s2 title="PSVIWriter">
        <p>PSVIWriter shows how to access the Post Schema Validation Infoset (PSVI) and Schema Component Model
           information for the parsed document.</p>

        <s3 title="Running PSVIWriter">
          <p>This program parses the specified XML file, then exposes
            the PSVI and Schema Component Model information.</p>
<source>
Usage:
    PSVIWriter [options] &lt;XML file | List file&gt;

This program invokes the SAX2XMLReaderImpl, and then exposes the
underlying PSVI of each parsed XML file, using SAX2 API.

Options:
    -f          Enable full schema constraint checking processing. Defaults to off.
    -o=xxx      Output PSVI to file xxx (default is stdout)
    -e=xxx      Output errors to file xxx (default is stdout)
    -u=xxx      Handle unrepresentable chars [fail | rep | ref*].
    -x=XXX      Use a particular encoding for output (UTF8*).
    -l          Indicate the input file is a List File that has a list of xml files.
                Default to off (Input file is an XML file).
    -?          Show this help.

  * = Default if not provided explicitly.
</source>
          <p>Here is some sample output from PSVWriter (as the output is verbose
             it has been truncated)</p>
<source>cd &XercesC3InstallDir;/samples/data
PSVIWriter personal.xml

&lt;document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xmlns:psv="http://apache.org/xml/2001/PSVInfosetExtension"
             xmlns="http://www.w3.org/2001/05/XMLInfoset"&gt;
	&lt;characterEncodingScheme&gt;UTF8&lt;/characterEncodingScheme&gt;
	&lt;standalone xsi:nil="true"/&gt;
	&lt;version&gt;1.0&lt;/version&gt;
	&lt;children&gt;
		&lt;comment&gt;
			&lt;content&gt; @version:  &lt;/content&gt;
		&lt;/comment&gt;

...
		</source>
        </s3>
    </s2>
</s1>
