<?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.
-->
<!DOCTYPE test-suite [

<!ENTITY SingleQuery SYSTEM "cat/SingleQuery.xml">

<!ENTITY XMarkQueries SYSTEM "cat/XMarkOriginalQueries.xml">

]>
<test-suite xmlns="http://www.w3.org/2005/02/query-test-XQTSCatalog"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            CatalogDesignDate="2014-04-01"
            version="0.0.1"
            SourceOffsetPath="./"
            ResultOffsetPath="ExpectedTestResults/"
            XQueryQueryOffsetPath="Queries/XQuery/"
            XQueryXQueryOffsetPath="Queries/XQueryX/"
            XQueryFileExtension=".xq"
            XQueryXFileExtension=".xqx"
            xsi:schemaLocation="http://www.w3.org/2005/02/query-test-XQTSCatalog XQTSCatalog.xsd">
   <test-suite-info>
      <title>VXQuery XMark Test Suite</title>
      <description>
         Test Suite for VXQuery XMark.
      </description>
   </test-suite-info>
   <source ID="XMarkCatalog" FileName="XMarkCatalog.xml" Creator="VXQuery team">
       <description last-mod="2015-03-25">VXQuery Test Suite Catalog</description>
   </source>
   <source ID="auction_data" FileName="TestSources/XMark/SingleFile/auction.xml" Creator="Shivani Mall">
       <description last-mod="2015-03-25">Collection of files</description>
   </source>
   <test-group name="XMarkQueries" featureOwner="Shivani Mall">
      <GroupInfo>
         <title>XMark Queries</title>
         <description/>
      </GroupInfo>
      <test-group name="XMarkQueriesExecutionTests" featureOwner="Shivani Mall">
         <GroupInfo>
            <title>XMark Execution Tests</title>
            <description/>
         </GroupInfo>
         &XMarkQueries;
      </test-group>
   </test-group>
</test-suite>
