<?xml version='1.0'?>
<!--
  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 project>

<project name="xmlcatalog" default="all" basedir=".">

  <description>
    This is to test XMLCatalog for external entity resolution from the
    xslt task, both the simple case and using the document() function
    to refer to a second file (which refers to the entity). This
    buildfile is called by
    org.apache.tools.ant.types.XMLCatalogBuildFileTest.java
    Alternatively, you may try it out by hand by first removing the
    comment symbols around the echo statements and then calling 
    ant -buildfile xmlcatalog.xml
  </description>

  <property name="transformer" value = "xmlcatalog.xsl"/>

  <target 
    name    = "all" 
    depends = "testentitynocatalog, testentitywithcatalog, 
    testdocumentnocatalog, testdocumentwithcatalog"/>

  <target 
    name        = "testentitynocatalog"
    description = "Test external entity resolver for simple XML
document without using XMLCatalog">
    <delete
      quiet = "yes"
      file  = "result.out"/>
    <xslt
      basedir   = "${basedir}"
      destdir   = "${basedir}"
      extension = ".text"
      style     = "${transformer}"
      in        = "xmlcatalog1.xml"
      out       = "result.out">
      <param
        name       = "outprop"
        expression = "val1"/>
    </xslt>
    <property file = "result.out"/>
    <!-- <echo message = "${val1}"/> -->
    <delete
      quiet = "yes"
      file  = "result.out"/>
  </target>

  <target 
    name        = "testentitywithcatalog"
    description = "Test external entity resolver for simple
XML document using XMLCatalog">
    <delete
      quiet = "yes"
      file  = "result.out"/>
    <xslt
      basedir   = "${basedir}"
      destdir   = "${basedir}"
      extension = ".text"
      style     = "${transformer}"
      in        = "xmlcatalog1.xml"
      out       = "result.out">
      <param
        name       = "outprop"
        expression = "val2"/>
      <xmlcatalog>
        <entity 
          publicId = "myquote"
          location = "quote2.xml"/>
      </xmlcatalog>
    </xslt>
    <property file = "result.out"/>
    <!-- <echo message = "${val2}"/> -->
    <delete
      quiet = "yes"
      file  = "result.out"/>
  </target>

  <target 
    name        = "testdocumentnocatalog"
    description = "Test entity resolution in XML document called
from XSLT document() function without using XMLCatalog">
    <delete
      quiet = "yes"
      file  = "result.out"/>
    <xslt
      basedir   = "${basedir}"
      destdir   = "${basedir}"
      extension = ".text"
      style     = "${transformer}"
      in        = "xmlcatalog2.xml"
      out       = "result.out">
      <param
        name       = "outprop"
        expression = "val3"/>
    </xslt>
    <property file = "result.out"/>
    <!-- <echo message = "${val3}"/> -->
    <delete
      quiet = "yes"
      file  = "result.out"/>
  </target>

  <target 
    name        = "testdocumentwithcatalog" 
    description = "Test entity resolution in XML document called
from XSLT document() function using XMLCatalog">
    <delete
      quiet = "yes"
      file  = "result.out"/>
    <xslt
      basedir   = "${basedir}"
      destdir   = "${basedir}"
      extension = ".text"
      style     = "${transformer}"
      in        = "xmlcatalog2.xml"
      out       = "result.out">
      <param
        name       = "outprop"
        expression = "val4"/>
      <xmlcatalog>
        <entity 
          publicId = "myquote"
          location = "quote2.xml"/>
      </xmlcatalog>
    </xslt>
    <property file = "result.out"/>
    <!-- <echo message = "${val4}"/> -->
    <delete
      quiet = "yes"
      file  = "result.out"/>
  </target>

</project>
