<!-- 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">

    <xb:extension for="*">
        <xb:interface name="myPackage.Foo">
            <xb:staticHandler>myPackage.FooHandler</xb:staticHandler>
        </xb:interface>
        <xb:prePostSet>
            <xb:staticHandler>myPackage.FooHandler</xb:staticHandler>
        </xb:prePostSet>
    </xb:extension>

    <xb:extension for="xsd.company.CompanyDocument">
        <xb:interface name="myPackage.Bar">
            <xb:staticHandler>myPackage.BarHandler</xb:staticHandler>
        </xb:interface>
    </xb:extension>

</xb:config>