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

<helpdocument version="1.0">
<meta>
<topic id="textshared0106150210xml" indexer="include" status="PUBLISH">
<title xml-lang="en-US" id="tit">XML Filter output</title>
<filename>/text/shared/01/06150210.xhp</filename>
</topic>
<history>
<created date="2003-10-31T00:00:00">Sun Microsystems, Inc.</created>
<lastedited date="2003-10-31T00:00:00">converted from old format - fpe</lastedited>
</history>
</meta>
<body>
  
  
  <bookmark branch="hid/FILTER_HID_XML_FILTER_TEST_VALIDATE_OUPUT" xml-lang="en-US" id="bm_id3153136"/><bookmark branch="hid/FILTER_HID_XML_FILTER_OUTPUT_WINDOW" xml-lang="en-US" id="bm_id3152790"/><paragraph id="hd_id3158397" role="heading" level="1" oldref="6" l10n="U" xml-lang="en-US"><variable id="xmlfilteroutput"><link href="text/shared/01/06150210.xhp" name="XML Filter output">XML Filter output</link></variable></paragraph>
  <paragraph l10n="U" role="paragraph" id="par_id3153882" xml-lang="en-US" oldref="1"><ahelp visibility="visible" hid="HID_XML_FILTER_OUTPUT_WINDOW">Lists the test results of an <link href="text/shared/01/06150000.xhp" name="XML filter">XML filter</link>.</ahelp></paragraph>
  <section id="howtoget">
  <embed href="text/shared/00/00000406.xhp#xmlfilter"/>
</section>
  <paragraph xml-lang="en-US" role="paragraph" id="par_id3148731" l10n="U" oldref="2">The test results of an import or export XSLT stylesheet are displayed in the <emph>XML Filter output </emph>window. If you want, you can also validate the filter output.</paragraph>
  <bookmark branch="hid/FILTER_HID_XML_SOURCE_FILE_VALIDATE" xml-lang="en-US" id="bm_id3150040"/><paragraph role="heading" level="2" id="hd_id3147143" l10n="U" xml-lang="en-US" oldref="3">Validate</paragraph>
  <paragraph l10n="U" role="paragraph" id="par_id3151315" xml-lang="en-US" oldref="4"><ahelp visibility="visible" hid="HID_XML_SOURCE_FILE_VALIDATE">Validates the contents of the <emph>XML Filter output</emph> window.</ahelp></paragraph>
  <paragraph role="paragraph" id="par_id3149999" l10n="U" xml-lang="en-US" oldref="5">The window splits into two areas and the results of the validation are displayed in the lower area.</paragraph>
 </body>
</helpdocument>
