The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

idl2javaxml - IDL compiler to language Java mapping & XML binding

SYNOPSIS

idl2javaxml [options] spec.idl

OPTIONS

All options are forwarded to C preprocessor, except -h -i -v -x.

With the GNU C Compatible Compiler Processor, useful options are :

-D name
-D name=definition
-I directory
-I-
-nostdinc

Specific options :

-h

Display help.

-i directory

Specify a path for import (only for IDL version 3.0).

-p "m1=prefix1;..."

Specify a list of prefix (gives full qualified Java package names).

-t "m1=new.name1;..."

Specify a list of name translation (gives full qualified Java package names).

-v

Display version.

-x

Enable export (only for IDL version 3.0).

DESCRIPTION

idl2javaxml parses the given input file (IDL) and generates the same files as idl2java and a classHelperXML.java file that contains XML marshal/demarshal methods. The XML binding follows the CORBA to WSDL/SOAP Interworking Specification (WS-I comformant soap binding).

idl2javaxml is a Perl OO application what uses the visitor design pattern. The parser is generated by Parse::Yapp.

idl2javaxml needs a cpp executable.

CORBA Specifications, including IDL (Interface Language Definition) , the JAVA Language Mapping and CORBA to WSDL/SOAP Interworking are available on <http://www.omg.org/>.

EXAMPLE

 // IDL
 struct StructType {
     long    field1;
     string  field2;
 };

 // Java
 public class test
 {
   public static void main (String[] args) throws Exception
   {
     XMLOutputStreamImpl os = new XMLOutputStreamImpl (new FileOutputStream ("out.xml"));
     StructType obj = new StructType (1, "toto");
     StructTypeHelperXML.write (os, obj);
     os.close ();
   }
 }

The class StructType and StructTypeHelperXML are generated by idl2javaxml.

The class XMLOutputStreamImpl and XMLInputStreamImpl are an example of the run-time support; there derive from XMLOutputStream ans XMLInputStream that define the interface.

 // XML
 <StructType><field1>1</field1><field2>toto</field2></StructType>

This XML document is valid against the Schema generated by idl2xsd (Do you really want write by hand W3C Schema ?).

 // XSD
 <xs:schema targetNamespace="http://www.omg.org/IDL-Mapped/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://www.omg.org/IDL-Mapped/" elementFormDefault="qualified" attributeFormDefault="unqualified">
   <xs:complexType name="StructType">
     <xs:sequence>
       <xs:element name="field1" maxOccurs="1" minOccurs="1" type="xs:int"/>
       <xs:element name="field2" maxOccurs="1" minOccurs="1" type="xs:string"/>
     </xs:sequence>
   </xs:complexType>
 </xs:schema>

The class PYXOutputStreamImpl and PYXInputStreamImpl are an example of the run-time support for Pyxie format (see <http://www.pyxie.org/>); there derive from XMLOutputStream and XMLInputStream.

 // PYX
 (StructType
 (field1
 -1
 )field1
 (field2
 -toto
 )field2
 )StructType

SEE ALSO

cpp, idl2html, idl2java, idl2xsd, idl2rng

COPYRIGHT

(c) 2004-2007 Francois PERRAD, France. All rights reserved.

This program and all CORBA::JAVA modules and all Java class (run-time support) are distributed under the terms of the Artistic Licence.

AUTHOR

Francois PERRAD, francois.perrad@gadz.org