<?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 jdoquery SYSTEM "file:/javax/jdo/jdoquery_3_2.dtd">
<jdoquery>
  <extension vendor-name="SUNW" key="KEY" value="VALUE"/>
  <extension vendor-name="SUNW" key="KEY" value="VALUE"/>
  <package 
    name="org.apache.jdo">
    <extension vendor-name="SUNW" key="KEY" value="VALUE"/>
    <extension vendor-name="SUNW" key="KEY" value="VALUE"/>
    <interface 
      name="Datastore">
      <extension vendor-name="SUNW" key="KEY" value="VALUE"/>
      <extension vendor-name="SUNW" key="KEY" value="VALUE"/>
      <query
        name="QUERY"
        language="javax.jdo.JDOQL"
        unmodifiable="true"
        unique="true"
        result-class="ResultClass">
        <extension vendor-name="SUNW" key="KEY" value="VALUE"/>
        <extension vendor-name="SUNW" key="KEY" value="VALUE"/>
        SELECT name FROM Employee
        <extension vendor-name="SUNW" key="KEY" value="VALUE"/>
        <extension vendor-name="SUNW" key="KEY" value="VALUE"/>
      </query>
      <query
        name="QUERY"/>
      <extension vendor-name="SUNW" key="KEY" value="VALUE"/>
      <extension vendor-name="SUNW" key="KEY" value="VALUE"/>
    </interface>
    <class
      name="ApplicationCapable">
      <extension vendor-name="SUNW" key="KEY" value="VALUE"/>
      <extension vendor-name="SUNW" key="KEY" value="VALUE"/>
      <query
        name="QUERY"/>
      <query
        name="QUERY"/>
      <extension vendor-name="SUNW" key="KEY" value="VALUE"/>
      <extension vendor-name="SUNW" key="KEY" value="VALUE"/>
    </class>
  </package>
  <extension vendor-name="SUNW" key="KEY" value="VALUE"/>
  <extension vendor-name="SUNW" key="KEY" value="VALUE"/>
</jdoquery>
