14 January 2003

# Appendix D: Java Language Binding

The Java language binding for the SVG Document Object Model definitions is available at:

      http://www.w3.org/TR/SVG11/java-binding.zip

Note that this language binding is not normative. The IDL Definitions are the normative parts of the SVG DOM.

## D.1 Using SVG with the Java Language

When scripting SVG with a language such as ECMAScript, it is possible to embed script code directly in the SVG content using the 'script' element and the event attributes (e.g., 'onload' or 'onclick'). For programming languages with a binary delivery format, such as the Java language, it is not possible to embed the code into the 'script' element or within the event attributes. Therefore there is a need to specify how such languages can bind to and handle events in the SVG document. The following technique describes how this should be done when using the Java language and what is expected of the User Agent that supports dynamic SVG content through the Java language .

- The 'script' element should reference a jar file containing the compiled code to handle the events fired by the document. For example:

       <script type="application/java-archive"
                  xlink:href="myJavaHandlers.jar" />

- The manifest in the referenced jar file contains an entry, SVG-Handler-Class, defining the class responsible for initializing the event listeners on the SVG document. The entry should be a fully qualified class name. For example:

      *****************************************************
      Manifest-Version: 1.1
      SVG-Handler-Class: org.example.svg.SVGHandler
      *****************************************************

- The class referenced by SVG-Handler-Class implements the EventListenerInitializer interface defined as:

      public interface EventListenerInitializer {
        /**
         * Registers the listeners needed
         */

        void initializeEventListeners(SVGDocument doc) {
          /* Initialization of event handlers using the
             DOM goes here */
        }
      }

- The method initializeEventListeners() will be called by the User Agent before the onload event is triggered.

The event binding of other binary programming languages is not specified.