<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright 2004 The Apache Software Foundation

     Licensed 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. -->

<xb:config xmlns:xb="http://xml.apache.org/xmlbeans/2004/02/xbean/config"
           xmlns:jira="http://jira/xmlbeans98">

<xb:namespace uri="http://jira/xmlbeans98">
    <xb:package>org.apache.jira.xmlbeans98</xb:package>
</xb:namespace>



<xb:namespace uri="http://jira/xmlbeans98">
    <xb:prefix>Xml</xb:prefix>
    <xb:suffix>Bean</xb:suffix>
</xb:namespace>


<!--<qname> specifies a Java class name for a Qualified name -->
<xb:qname name="jira:childElement" javaname="QNameChanged"/>
<xb:qname name="jira:a-root" javaname="TheRoot"/>


</xb:config>
