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

      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.
-->
<jdoquery xmlns="https://db.apache.org/jdo/xmlns/jdoquery"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="https://db.apache.org/jdo/xmlns/jdoquery
          https://db.apache.org/jdo/xmlns/jdoquery_3_2.xsd">
  <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>
