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

      https://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>
