WO2003073271A1 - System and method for xml data binding - Google Patents

System and method for xml data binding Download PDF

Info

Publication number
WO2003073271A1
WO2003073271A1 PCT/US2003/004076 US0304076W WO03073271A1 WO 2003073271 A1 WO2003073271 A1 WO 2003073271A1 US 0304076 W US0304076 W US 0304076W WO 03073271 A1 WO03073271 A1 WO 03073271A1
Authority
WO
WIPO (PCT)
Prior art keywords
schema
xml
mapping
java
java classes
Prior art date
Application number
PCT/US2003/004076
Other languages
French (fr)
Inventor
Chris Fry
Scott Ziegler
Original Assignee
Bea Systems, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Bea Systems, Inc. filed Critical Bea Systems, Inc.
Priority to AU2003217375A priority Critical patent/AU2003217375A1/en
Publication of WO2003073271A1 publication Critical patent/WO2003073271A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing

Definitions

  • the present invention relates to the binding of data, particularly the binding of XML data.
  • XML extensible Markup Language
  • XML messages passing between applications contain tags with self-describing text. This self-describing text allows messages to be understandable not only to the applications, but to humans reading an XML document as well.
  • XML is currently used to define standards for exchanging information in various industries. These document standards are available in various forms.
  • SOAP Simple Object Access Protocol
  • ebXML protocol is an open XML-based infrastructure that enables the global use of electronic business information.
  • SOAP is a lightweight XML protocol, which can provide both synchronous and asynchronous mechanisms for sending requests between applications.
  • the transport of these XML documents is usually over a lower level network standard, such as TCP/IP.
  • XML documents need to be valid and well-formed. An XML document is considered to be "well-formed” if it conforms to the particular
  • An XML document is considered valid if it complies with a particular schema.
  • an XML parser At the core of an XML document is an XML parser, which will check to verify that a document is well formed and/or valid.
  • XML data binding is a process whereby XML documents can be bound to objects that are designed especially for the data in those documents. Data binding allows applications to manipulate data that has been serialized as XML in a way that can be more natural than DOM.
  • binding can also have many cross-system dependencies. Web services and XML parsing are examples of clients or applications that can utilize data binding.
  • JAXB JavaTM Architecture for Data Binding.
  • Java compiles an XML schema into Java classes, which handle XML parsing and formatting. These generated classes also ensure that the constraints expressed in the schema are enforced in the resulting methods and Java language data types.
  • JAXB compiles an XML schema into Java classes, which handle XML parsing and formatting.
  • Castor XML is an existing, open source data binding framework for Java to XML binding. Castor enables one to deal with the data defined in an XML document through an object model which represents that data, instead of dealing with the structure of an XML document like DOM and SAX. Castor XML can marshal many Java objects to and from XML. Marshalling, and the inverse operation of unmarshalling, involves converting a stream of data, or sequence of bytes, to and from an object. Marshalling converts an object to a stream, while unmarshalling converts from a stream to an object. Castor, however, is not a complete solution for applications such as web services. BRIEF SUMMARY It is therefore desirable to provide a framework that can map from both XML to Java and from Java to XML.
  • a system and method for data binding in accordance with one embodiment of the present invention uses a schema parser to create a schema object model when given an XML schema.
  • Java classes can be generated using the schema object model, with the Java classes corresponding to elements and types in the schema. Mapping can be done in each direction between the schema and Java classes. This mapping is written to a type mapping directory.
  • the schema object model can also contain mappings between each Java class and an XSD type. The mappings in the type mapping directory can then be used to generate XML when given a Java object tree, and can be used to create and populate a Java class when given an XML instance matching the schema object model.
  • Figure 1 is a diagram of a system that can be used in accordance with one embodiment of the present invention.
  • Figure 2 is a diagram showing a data binding subsystem that can be used with the system of Figure 1.
  • a data binding framework, or a data binding system, in accordance with one embodiment of the present invention can provide a mapping from XML to Java and from Java to XML.
  • a framework can be based, at least in part, on Castor and JAXB.
  • XML schema can be used as a syntax definition for the framework. Multiple modes can be supported, such as may include 'fully code generated' mode and 'fully interpreted' mode.
  • the framework can bind to provided classes and can make use of a generic API.
  • the framework can also provide validation of XML content, and can support a subset of an application runtime. There may be no inheritance required in the user code. This approach can provide acceptable performance, such as being able to work within a Java Remote Method
  • RMI Remote Procedure Call
  • the system can utilize a configuration with a binding schema file, and can offer interoperability with systems such as .NET and IBM.
  • XML binding requirements at runtime can include the creation of Web Service Definition Language (WSDL) code from an existing remote Java interface.
  • a schema can be generated for complex Java data types. Primitive types can also be mapped to XML Schema Definition language (XSD) types.
  • XSD is an XML-based grammar that can be used to describe the structure of an XML document.
  • a schema-aware validating parser can validate an XML document against an XSD schema and can report any discrepancies.
  • the system can handle arrays and collection classes.
  • the schema should be generated using some default rules.
  • the user can have some control over the schema generation.
  • the Java interface and data classes can be generated from WSDL.
  • the system can convert XSD data types to Java and can generate Java classes for complex XML types.
  • a user can choose a package for generated Java classes.
  • a user can also recreate a schema from the generated classes.
  • a given namespace and element name user can get the appropriate Java classes at runtime in a mode such as generated mode. Given the stream and class, a user can get the populated Java instance. The user can also have control over the de- serialization.
  • the primitives can be mapped to XSD types. The user can also specify the XSD type.
  • the system can convert the Java instance to an XML stream or to a tree, such as a DOM tree.
  • a system can read schema specified in WSDL. The system can also validate incoming XML documents using this schema.
  • the system can create and manipulate XML using an API such as a DOM API or streaming parser API.
  • an XML data binding facility can contain a schema compiler able to bind an input schema to a Java class.
  • the binding facility can also provide a binding framework that can utilize a runtime API supporting certain primary operations, such as unmarshalling, marshalling, and validation.
  • An unmarshalling operation can map an XML document into a tree of existing and schema-derived classes.
  • a marshalling operation can map content trees back to XML documents.
  • a validation operation can validate content trees against schemas.
  • FIG. 1 A system utilizing these operations is shown in Figure 1.
  • an input XML schema 100 can be compiled into at least one Java class 104.
  • Marshalling can be used to map an XML document 102 to a class tree or Java object 106
  • unmarshalling can be used to map the Java object 106 to an XML document 102.
  • binding can be used by feeding an XML stream for an instance of an XML document to generated classes 104, which can create and fill Java objects 106.
  • marshalling an instance of a Java object 106 can be fed to generated classes 104.
  • Components of a system that can be useful for XSD / Java databinding are shown in Figure 2.
  • a data binding subsystem 200 is shown, which includes a SOM instance 210, a schema compiler 212, an instance of the binding language 214, and a binding framework 202.
  • the binding framework 202 itself can include a marshaller 204, an unmarshaller 206, and a validator 208.
  • the system also utilizes a parsing subsystem 222, which includes a base parser 224, a non-validating parser 226, and a validating parser 228.
  • a parsing subsystem can be similar to that described in U.S. Patent application 10/304,280, filed November 26, 2002 entitled "SYSTEM AND METHOD FOR XML PARSING" to Chris Fry et al.
  • the data binding subsystem can communicate with the parsing subsystem through a stream interface 216 and a schema interface 218.
  • the system can also include a web services subsystem 230, which can communicate with the data binding subsystem 200 through a data binding interface 220.
  • the schema object model is a Java object model that can read or write any valid XML schema document, verify its validity, and allow easy programmatic manipulation of schema documents.
  • a schema parser can parse an XML schema and create a schema object model.
  • a schema writer can take a SOM and output an XML schema representation.
  • a schema compiler can output a collection of Java classes or interfaces that map the complex types and elements described in the schema into Java classes.
  • the binding process can be configurable. This can allow an XML
  • Path language XPath
  • a marshaller can take a tree of Java objects and output valid XML.
  • An unmarshaller can parse an XML instance of a schema document and generate or fill in an object tree.
  • data binding can happen at compile time or at runtime.
  • an arbitrary schema can be received, such as from WSDL, and the system can access the XML data from an instance document in a generic fashion.
  • Generating java classes may not be feasible in this case, as the user of the generated classes may not know which methods to call.
  • a schema parser can be used to create a SOM and set up data binding if the parser is given an XML schema.
  • generic XSD objects one or more object trees can be created that are based on the SOM.
  • an empty object tree can be obtained or cloned, the XML instance can be parsed using general classes, and the object tree can be filled in. If marshalling, an XSD instance XML writer can be used for output, and can do some validation in the process.
  • binding can be set up by first using a schema parser to create a SOM when given an XML schema.
  • Java classes can be generated that correspond to elements and complex types in the schema. The mapping in both directions can be entered into a type mapping directory, from complex types to Java classes.
  • the generated classes can implement the DOM interfaces and generic XSD object interfaces, and may not contain any parsing code.
  • An XSD instance parser can be initiated with the generated SOM, which can prefill various hashes. A pool of empty object trees can be created that are ready to be filled.
  • An XSD instance XML writer can be instantiated with prefilled data structures that are ready to output XML when given an object tree.
  • an empty object instance tree can be cloned, created, or obtained from a pool of objects for use in binding.
  • the instantiated XSD instance parser can be used to parse the code and fill in the empty object tree.
  • binding can be set up by reflecting on Java classes, building a SOM that contains mappings of each class into an XSD complex type or simple type. The same basic procedure can be used as when starting with an XML schema.
  • Each generated class can contain a static method that can take an XML instance of that schema type, and can create and populate the given Java class. There may be no need to create an intermediate tree of code- generated objects.
  • binding can be used by feeding an XML stream to generated classes, which can create and fill Java objects.
  • marshalling an instance of a Java object can be fed to generated classes.
  • Generated object instances for DOM type manipulations can be created, or an XML stream can be created directly out of the Java classes, bypassing any intermediate object creation.
  • binding can be set up as described above, except that a smarter binding dictionary can be generated. Implicit in all these cases is the use of a binding specification that can be used to customize the process. All these implementations can use a streaming parser, such as is described in U.S. Provisional Application No. 60/362,773 entitled "STREAMING PARSER API," by Chris Fry et al. SOM can be implemented as a set of Java classes that extend from a generic XSD object class.
  • a schema object can contain a catalog of
  • a schema parser can contain all the necessary parsing code to take an XML schema and create a SOM.
  • a schema writer can take a SOM and output an XML schema.
  • the SOM classes may not contain any parsing logic.
  • Schema schema new Schema( ); schema. setTargetNamespace("http://www.foo.com”);
  • Element int_el new Element( ); ct.setLocalName("some_integer”); int_el.setType(new ExpName(SchemaTypes.SCHEMA_NS, SchemaTypes.XSDJNT)); mg.addParticle(int_el); mg.setMaxOccurs(2);
  • Element el new EIement( ); el.setParent(schema); el.setType(ct.getExpName( )); el.setMinOccurs(4); / / particle schema.addElement(el);
  • SchemaDumper d new SchemaDumper(schema); d.waIkSchema( );
  • instance object can hold a reference to the SOM Object that it represents. Given that the most common case can be receipt of many instance documents after initial receipt of a schema, it is possible, using the knowledge of the schema, to precreate much of the object tree in an empty
  • Code generation can be limited to the generation of interfaces. These interfaces can be implemented using dynamic proxies that can dispatch calls to the generic XSD object instances. This can allow all the parsing and XML output code to be reused. Part of the binding process can involve mapping XML names to the more restrictive space of Java names. JAXB outlines an algorithm and approach that can generally be followed. In order to achieve a true round trip from XML to Java and back, the original XML name may need to be stored in the generated or dynamic classes, or perhaps in the mapping directory.

Abstract

A schema parser can be used in data binding to create a schema object model when given an XML schema (100). Java classes (104) can be generated using the schema object model (106), which correspond to elements and types in the schema. Mapping can be done in each direction between the schema and Java classes, which can be written to a type mapping directory. The schema object model can also contain mappings between each Java class and an XSD type. The mappings in the type mapping directory can then be used to generate XML when given a Java object tree, and can be used to create and populate a Java class when given an XML instance matching the schema object model.

Description

SYSTEM AND METHOD FOR XML DATA BINDING
COPYRIGHT NOTICE A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document of the patent disclosure, as it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.
CLAIM OF PRIORITY This application claims priority to U.S. Provisional Patent Application No.60/359,145, filed February 22, 2002, entitled "SYSTEM AND METHOD FOR XML DATA BINDING", and U.S. Patent Application No. 10/304,353, filed November 26, 2002, entitled "SYSTEM AND METHOD FOR XML DATA BINDING" which are hereby incorporated herein by reference. CROSS-REFERENCED CASES The following applications are cross-referenced and incorporated herein by reference:
U.S. Patent Application No. 10/304,233 entitled "SYSTEM AND METHOD FOR FAST XSL TRANSFORMATION" by Chris Fry, filed November 26, 2002. U.S. Patent Application No. 10/304,280 entitled "SYSTEM AND METHOD FOR XML PARSING" by Chris Fry, filed November 26, 2002.
U.S. Patent Application No. 10/304,207 entitled "STREAMING PARSER API" by Chris Fry and Sam Pullara, filed November 26, 2002. FIELD OF THE INVENTION
The present invention relates to the binding of data, particularly the binding of XML data.
BACKGROUND
The extensible Markup Language, otherwise known as XML, has become a standard for inter-application communication. XML messages passing between applications contain tags with self-describing text. This self-describing text allows messages to be understandable not only to the applications, but to humans reading an XML document as well. XML is currently used to define standards for exchanging information in various industries. These document standards are available in various forms.
Several XML-based communication protocols exist, such as the Simple Object Access Protocol (SOAP) and the ebXML protocol. The ebXML protocol is an open XML-based infrastructure that enables the global use of electronic business information. SOAP is a lightweight XML protocol, which can provide both synchronous and asynchronous mechanisms for sending requests between applications. The transport of these XML documents is usually over a lower level network standard, such as TCP/IP. XML documents need to be valid and well-formed. An XML document is considered to be "well-formed" if it conforms to the particular
XML standard. An XML document is considered valid if it complies with a particular schema. At the core of an XML document is an XML parser, which will check to verify that a document is well formed and/or valid.
The processing of XML has become a standard function in many computing environments. When parsing XML, it is necessary to get data from the XML file and transform the data such that the data can be handled by a Java application or other application running the parser. Efficient XML processing is fundamental to the server. As more and more documents become XML based, more and more traffic on the server will be in XML. The latest push into web services (with SOAP as the transport) has also highlighted the fundamental need for fast XML processing. Web services use XML over HTTP as the transport for remote procedure calls. These calls cannot be done in a timely manner if the XML parser is slow. There are primarily two standard approaches for processing XML: (1) SAX, or Simple API for XML, and (2) DOM or Document Object Model. Each protocol has its benefits and drawbacks, although SAX presently has more momentum as an XML processing API. XML data binding is a process whereby XML documents can be bound to objects that are designed especially for the data in those documents. Data binding allows applications to manipulate data that has been serialized as XML in a way that can be more natural than DOM. Data W
binding can also have many cross-system dependencies. Web services and XML parsing are examples of clients or applications that can utilize data binding.
One method that is useful for XML data binding is JAXB, or the Java™ Architecture for Data Binding. JAXB compiles an XML schema into Java classes, which handle XML parsing and formatting. These generated classes also ensure that the constraints expressed in the schema are enforced in the resulting methods and Java language data types. Presently, however, there is not a solution that allows not only mapping from XML to Java, but also from Java to XML.
Castor XML is an existing, open source data binding framework for Java to XML binding. Castor enables one to deal with the data defined in an XML document through an object model which represents that data, instead of dealing with the structure of an XML document like DOM and SAX. Castor XML can marshal many Java objects to and from XML. Marshalling, and the inverse operation of unmarshalling, involves converting a stream of data, or sequence of bytes, to and from an object. Marshalling converts an object to a stream, while unmarshalling converts from a stream to an object. Castor, however, is not a complete solution for applications such as web services. BRIEF SUMMARY It is therefore desirable to provide a framework that can map from both XML to Java and from Java to XML.
It is also desirable to provide data binding support to web services. It is also desirable to develop a parsing system that has increased speed and ease of use.
It is also desirable to develop a parsing system with broad support of XML specifications.
It is also desirable to develop a parsing system that has interoperability across platform versions and releases.
A system and method for data binding in accordance with one embodiment of the present invention uses a schema parser to create a schema object model when given an XML schema. Java classes can be generated using the schema object model, with the Java classes corresponding to elements and types in the schema. Mapping can be done in each direction between the schema and Java classes. This mapping is written to a type mapping directory. The schema object model can also contain mappings between each Java class and an XSD type. The mappings in the type mapping directory can then be used to generate XML when given a Java object tree, and can be used to create and populate a Java class when given an XML instance matching the schema object model.
Other features, aspects, and objects of the invention can be obtained from a review of the specification, the figures, and the claims. BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 is a diagram of a system that can be used in accordance with one embodiment of the present invention. Figure 2 is a diagram showing a data binding subsystem that can be used with the system of Figure 1.
DETAILED DESCRIPTION
A data binding framework, or a data binding system, in accordance with one embodiment of the present invention can provide a mapping from XML to Java and from Java to XML. Such a framework can be based, at least in part, on Castor and JAXB. XML schema can be used as a syntax definition for the framework. Multiple modes can be supported, such as may include 'fully code generated' mode and 'fully interpreted' mode. The framework can bind to provided classes and can make use of a generic API. The framework can also provide validation of XML content, and can support a subset of an application runtime. There may be no inheritance required in the user code. This approach can provide acceptable performance, such as being able to work within a Java Remote Method
Invocation (RMI) type timeframe to allow Remote Procedure Call (RPC) style invocations, such as under 10 ms. The system can utilize a configuration with a binding schema file, and can offer interoperability with systems such as .NET and IBM. For web services, XML binding requirements at runtime can include the creation of Web Service Definition Language (WSDL) code from an existing remote Java interface. A schema can be generated for complex Java data types. Primitive types can also be mapped to XML Schema Definition language (XSD) types. XSD is an XML-based grammar that can be used to describe the structure of an XML document. A schema-aware validating parser can validate an XML document against an XSD schema and can report any discrepancies. The system can handle arrays and collection classes. The schema should be generated using some default rules. The user can have some control over the schema generation. The Java interface and data classes can be generated from WSDL. The system can convert XSD data types to Java and can generate Java classes for complex XML types. A user can choose a package for generated Java classes. A user can also recreate a schema from the generated classes.
For an XML to Java case, a given namespace and element name user can get the appropriate Java classes at runtime in a mode such as generated mode. Given the stream and class, a user can get the populated Java instance. The user can also have control over the de- serialization. For a Java to XML case, the primitives can be mapped to XSD types. The user can also specify the XSD type. The system can convert the Java instance to an XML stream or to a tree, such as a DOM tree. At runtime in dynamic mode, a system can read schema specified in WSDL. The system can also validate incoming XML documents using this schema. The system can create and manipulate XML using an API such as a DOM API or streaming parser API. According to the JAXB specification, an XML data binding facility can contain a schema compiler able to bind an input schema to a Java class. The binding facility can also provide a binding framework that can utilize a runtime API supporting certain primary operations, such as unmarshalling, marshalling, and validation. An unmarshalling operation can map an XML document into a tree of existing and schema-derived classes. A marshalling operation can map content trees back to XML documents. A validation operation can validate content trees against schemas.
A system utilizing these operations is shown in Figure 1. In this system, an input XML schema 100 can be compiled into at least one Java class 104. Marshalling can be used to map an XML document 102 to a class tree or Java object 106, and unmarshalling can be used to map the Java object 106 to an XML document 102. When unmarshalling, binding can be used by feeding an XML stream for an instance of an XML document to generated classes 104, which can create and fill Java objects 106. When marshalling, an instance of a Java object 106 can be fed to generated classes 104. Components of a system that can be useful for XSD / Java databinding are shown in Figure 2. A data binding subsystem 200 is shown, which includes a SOM instance 210, a schema compiler 212, an instance of the binding language 214, and a binding framework 202. The binding framework 202 itself can include a marshaller 204, an unmarshaller 206, and a validator 208. The system also utilizes a parsing subsystem 222, which includes a base parser 224, a non-validating parser 226, and a validating parser 228. A parsing subsystem can be similar to that described in U.S. Patent application 10/304,280, filed November 26, 2002 entitled "SYSTEM AND METHOD FOR XML PARSING" to Chris Fry et al. The data binding subsystem can communicate with the parsing subsystem through a stream interface 216 and a schema interface 218. The system can also include a web services subsystem 230, which can communicate with the data binding subsystem 200 through a data binding interface 220.
The schema object model, or SOM, is a Java object model that can read or write any valid XML schema document, verify its validity, and allow easy programmatic manipulation of schema documents. A schema parser can parse an XML schema and create a schema object model. A schema writer can take a SOM and output an XML schema representation.
For each construct in SOM, there can be a corresponding interface. All generated classes can implement these interfaces. It is possible to write general parsing and XML output routines in terms of these interfaces, thereby leaving all such code out of the generated classes. There can be generic implementations of these interfaces that can be used in the dynamic case, where users of the data binding will not have enough information about the schema to write to a Java interface that is a direct mapping of the schema. These generic classes can implement enough of the DOM interfaces to allow processing through XSLT or other appropriate tools.
Given a SOM and an optional binding specification, a schema compiler can output a collection of Java classes or interfaces that map the complex types and elements described in the schema into Java classes.
The binding process can be configurable. This can allow an XML
Path language (XPath) expression or other similar expression on the schema to specify bindings at specific nodes in the schema. A marshaller can take a tree of Java objects and output valid XML. An unmarshaller can parse an XML instance of a schema document and generate or fill in an object tree.
Generally speaking, data binding can happen at compile time or at runtime. At runtme, an arbitrary schema can be received, such as from WSDL, and the system can access the XML data from an instance document in a generic fashion. Generating java classes may not be feasible in this case, as the user of the generated classes may not know which methods to call. In a dynamic situation, a schema parser can be used to create a SOM and set up data binding if the parser is given an XML schema. Using generic XSD objects, one or more object trees can be created that are based on the SOM. To use binding with unmarshalling, an empty object tree can be obtained or cloned, the XML instance can be parsed using general classes, and the object tree can be filled in. If marshalling, an XSD instance XML writer can be used for output, and can do some validation in the process.
For a code-generation situation, binding can be set up by first using a schema parser to create a SOM when given an XML schema. Using this SOM, Java classes can be generated that correspond to elements and complex types in the schema. The mapping in both directions can be entered into a type mapping directory, from complex types to Java classes. The generated classes can implement the DOM interfaces and generic XSD object interfaces, and may not contain any parsing code. An XSD instance parser can be initiated with the generated SOM, which can prefill various hashes. A pool of empty object trees can be created that are ready to be filled. An XSD instance XML writer can be instantiated with prefilled data structures that are ready to output XML when given an object tree. For unmarshalling, an empty object instance tree can be cloned, created, or obtained from a pool of objects for use in binding. The instantiated XSD instance parser can be used to parse the code and fill in the empty object tree. For a code generation case where Java classes are given, binding can be set up by reflecting on Java classes, building a SOM that contains mappings of each class into an XSD complex type or simple type. The same basic procedure can be used as when starting with an XML schema. Each generated class can contain a static method that can take an XML instance of that schema type, and can create and populate the given Java class. There may be no need to create an intermediate tree of code- generated objects.
When unmarshalling, binding can be used by feeding an XML stream to generated classes, which can create and fill Java objects. When marshalling, an instance of a Java object can be fed to generated classes. There can be at least two choices at this point. Generated object instances for DOM type manipulations can be created, or an XML stream can be created directly out of the Java classes, bypassing any intermediate object creation.
For a code generation case where both Java classes and XML schema are given, binding can be set up as described above, except that a smarter binding dictionary can be generated. Implicit in all these cases is the use of a binding specification that can be used to customize the process. All these implementations can use a streaming parser, such as is described in U.S. Provisional Application No. 60/362,773 entitled "STREAMING PARSER API," by Chris Fry et al. SOM can be implemented as a set of Java classes that extend from a generic XSD object class. A schema object can contain a catalog of
types, both complex and simple, as well as model group definitions and element objects. These classes can somewhat directly model various
schema components. A schema parser can contain all the necessary parsing code to take an XML schema and create a SOM. Similarly, a schema writer can take a SOM and output an XML schema. The SOM classes may not contain any parsing logic.
The following example includes code to create a SOM with one element of complexType "someType":
Schema schema = new Schema( ); schema. setTargetNamespace("http://www.foo.com");
ComplexType ct = new ComplexType(); ct.setLocalName("someType"); ct.setParent(schema); schema. addComplexType(ct); ModelGroup mg = new ModelGroup(); mg.setParent(ct); ct.setContentModel(mg);
Element int_el = new Element( ); ct.setLocalName("some_integer"); int_el.setType(new ExpName(SchemaTypes.SCHEMA_NS, SchemaTypes.XSDJNT)); mg.addParticle(int_el); mg.setMaxOccurs(2);
Element el = new EIement( ); el.setParent(schema); el.setType(ct.getExpName( )); el.setMinOccurs(4); / / particle schema.addElement(el);
/ / is this schema valid? schema.validate( );
SchemaDumper d = new SchemaDumper(schema); d.waIkSchema( );
For each class in the SOM, there can be a corresponding Instance class that can hold an instance of a schema component. Each such
instance object can hold a reference to the SOM Object that it represents. Given that the most common case can be receipt of many instance documents after initial receipt of a schema, it is possible, using the knowledge of the schema, to precreate much of the object tree in an empty
state. The empty trees can then be cloned when a new tree is needed, or possibly pooled, to avoid some of the overhead involved going from an XML instance of a schema to Java objects. Given a fully instantiated object tree, it only remains to call the appropriate setters on the leaf nodes to fill in the actual data. Some schema constructs may not be able to be fully allocated in advance. These instance classes can implement the DOM interfaces to allow XSLT and other tools to operate.
Code generation can be limited to the generation of interfaces. These interfaces can be implemented using dynamic proxies that can dispatch calls to the generic XSD object instances. This can allow all the parsing and XML output code to be reused. Part of the binding process can involve mapping XML names to the more restrictive space of Java names. JAXB outlines an algorithm and approach that can generally be followed. In order to achieve a true round trip from XML to Java and back, the original XML name may need to be stored in the generated or dynamic classes, or perhaps in the mapping directory.
The foregoing description of the preferred embodiments of the present invention has been provided for the purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms disclosed. Many modifications and variations will be apparent to the practitioner skilled in the art. Embodiments were chosen and described in order to best describe the principles of the invention and its practical application, thereby enabling others skilled in the art to understand the invention, the various embodiments and with various modifications that are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the following claims and their equivalents.

Claims

What is claimed is:
1. A system for data binding, comprising: a schema compiler adapted to accept a schema for an XML document and generate a set of interfaces that map any types and elements of the schema into Java classes; and a runtime API for mapping between the XML document and the Java classes.
2. A system according to claim 1 , wherein said runtime API is further capable of mapping between the XML document and a content tree of at least one of existing and schema-derived Java classes.
3. A system according to claim 2, wherein said runtime API is further capable of validating the content tree against the schema.
4. A system according to claim 1 , further comprising a parser for parsing the XML document for mapping.
5. A system according to claim 1 , wherein said schema compiler is adapted to accept and XSD schema.
6. A system according to claim 5, wherein said runtime API is further capable of validating the XML document against the XSD schema and reporting any discrepancies.
7. A system according to claim 1 , wherein said schema compiler adapted to accept WSDL code to be used in generating the set of interfaces and Java classes.
8. A system according to claim 1 , further comprising a parser API for generating XML to be mapped to Java classes.
9. A system according to claim 1 , further comprising a web services subsystem for supporting web services.
10. A system according to claim 1 , further comprising a schema parser for parsing the schema and generating a schema object model.
11. A system according to claim 10, further comprising a schema writer for taking the schema object model and generating an XML schema representation.
12. A system according to claim 1 , further comprising a type mapping directory, containing the mapping in both directions between types in the schema and the Java classes.
13. A system according to claim 12, wherein said type mapping directory contains generated classes implementing DOM interfaces and generic XSD object interfaces, and do not contain any source code. t
14. A system according to claim 13, further comprising a pool of empty object trees based on the generated classes.
15. A system according to claim 14, further comprising an XML writer adapted to use said pool of empty object trees to output XML when given an object tree.
16. A system according to claim 13, wherein said runtime API can clone an object tree for use in binding.
17. A system for data binding, comprising: a schema parser for generating a schema object model when given an XML schema; means for generating Java classes from the schema object model that correspond to elements and types in the schema; and a type mapping directory for containing mapping between the XML schema and the Java classes.
18. A system according to claim 17, further comprising: an instance parser that can be initiated with the schema object model and can prefill data structures.
19. A system according to claim 18, further comprising: an XSD instance writer adapted to use the type mapping directory and prefilled data structures to output XML when given an object tree.
20. A system for data binding, comprising: a schema parser for generating a schema object model when given an XML schema; means for generating Java classes from the schema object model that correspond to elements and types in the schema; means for mapping each of the Java class to an XSD type; and a type mapping directory for containing mapping between the XML schema, Java classes, and XSD types.
21. A system according to claim 20, further comprising a static method for each of the generated Java classes that can take an XML instance and populate the appropriate Java class.
22. A method for data binding, comprising: using a schema parser to create a schema object model when given an XML schema; generating Java classes using the schema object model, the Java classes corresponding to elements and types in the schema; and mapping in each direction between the schema and Java classes and writing the mapping to a type mapping directory.
23. A method according to claim 22, wherein said schema object model contains mappings between each Java class and an XSD type.
24. A method according to claim 23, further comprising: using the mapping in the type mapping directory to generate XML when given a Java object tree.
25. A method according to claim 23, further comprising: using the mapping in the type mapping directory to create and populate a Java class when given an XML instance matching the schema object model.
26. A computer-readable medium, comprising: means for using a schema parser to create a schema object model when given an XML schema; means for generating Java classes using the schema object model, the Java classes corresponding to elements and types in the schema; and means for mapping in each direction between the schema and Java classes and writing the mapping to a type mapping directory.
27. A computer program product for execution by a server computer for data binding, comprising: computer code for using a schema parser to create a schema object model when given an XML schema; computer code for generating Java classes using the schema object model, the Java classes corresponding to elements and types in the schema; and computer code for mapping in each direction between the schema and Java classes and writing the mapping to a type mapping directory.
28. A system for data binding, comprising: means for using a schema parser to create a schema object model when given an XML schema; means for generating Java classes using the schema object model, the Java classes corresponding to elements and types in the schema; and means for mapping in each direction between the schema and Java classes and writing the mapping to a type mapping directory.
29. A computer system comprising: a processor; object code executed by said processor, said object code configured to: use a schema parser to create a schema object model when given an XML schema; generate Java classes using the schema object model, the Java classes corresponding to elements and types in the schema; and map in each direction between the schema and Java classes and writing the mapping to a type mapping directory.
PCT/US2003/004076 2002-02-22 2003-02-12 System and method for xml data binding WO2003073271A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2003217375A AU2003217375A1 (en) 2002-02-22 2003-02-12 System and method for xml data binding

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US35914502P 2002-02-22 2002-02-22
US60/359,145 2002-02-22
US10/304,353 2002-11-26
US10/304,353 US7962925B2 (en) 2002-02-22 2002-11-26 System and method for XML data binding

Publications (1)

Publication Number Publication Date
WO2003073271A1 true WO2003073271A1 (en) 2003-09-04

Family

ID=27760274

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2003/004076 WO2003073271A1 (en) 2002-02-22 2003-02-12 System and method for xml data binding

Country Status (3)

Country Link
US (1) US7962925B2 (en)
AU (1) AU2003217375A1 (en)
WO (1) WO2003073271A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005036439A1 (en) * 2003-10-08 2005-04-21 Honeywell International Inc. Model-based diagnostic interface
CN101282345B (en) * 2008-03-03 2011-12-07 北京航空航天大学 Method for converting XML based on formalization description and state ontroller system

Families Citing this family (140)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7062456B1 (en) 1999-02-09 2006-06-13 The Chase Manhattan Bank System and method for back office processing of banking transactions using electronic files
US6880125B2 (en) 2002-02-21 2005-04-12 Bea Systems, Inc. System and method for XML parsing
US7363612B2 (en) * 2002-03-06 2008-04-22 Sun Microsystems, Inc. Application programs with dynamic components
US7065561B2 (en) 2002-03-08 2006-06-20 Bea Systems, Inc. Selective parsing of an XML document
US7987246B2 (en) 2002-05-23 2011-07-26 Jpmorgan Chase Bank Method and system for client browser update
US7373595B2 (en) * 2002-06-27 2008-05-13 Microsoft Corporation System and method for validating an XML document and reporting schema violations
US7428697B2 (en) * 2002-07-31 2008-09-23 Hewlett-Packard Development Company, L.P. Preserving content or attribute information during conversion from a structured document to a computer program
ATE516537T1 (en) * 2002-10-01 2011-07-15 Sap Ag TESTING SCRIPTING LANGUAGES WITH INTERFACES USING ANNOTATIONS IN XML
WO2004034229A2 (en) 2002-10-10 2004-04-22 Rocksteady Networks, Inc. System and method for providing access control
US7493603B2 (en) * 2002-10-15 2009-02-17 International Business Machines Corporation Annotated automaton encoding of XML schema for high performance schema validation
AU2003301482A1 (en) * 2002-10-16 2004-05-04 Rocksteady Networks, Inc. System and method for dynamic bandwidth provisioning
US20040103199A1 (en) * 2002-11-22 2004-05-27 Anthony Chao Method and system for client browser update from a lite cache
US7149752B2 (en) * 2002-12-03 2006-12-12 Jp Morgan Chase Bank Method for simplifying databinding in application programs
US8538840B2 (en) * 2002-12-20 2013-09-17 Siebel Systems, Inc. Financial services data model
US7856454B2 (en) * 2002-12-20 2010-12-21 Siebel Systems, Inc. Data model for business relationships
US7650591B2 (en) * 2003-01-24 2010-01-19 Bea Systems, Inc. Marshaling and un-marshaling data types in XML and Java
CN100346304C (en) * 2003-01-24 2007-10-31 Bea系统公司 XML types in java
US20040148612A1 (en) * 2003-01-27 2004-07-29 Jesse Olsen System and method for generating an application programming interface from a schema
US20040167915A1 (en) * 2003-02-25 2004-08-26 Bea Systems, Inc. Systems and methods for declaratively transforming data objects between disparate representations
US8392298B2 (en) 2003-03-04 2013-03-05 Siebel Systems, Inc. Invoice adjustment data object for a common data object format
US8473399B2 (en) 2003-03-04 2013-06-25 Siebel Systems, Inc. Invoice data object for a common data object format
US8510179B2 (en) * 2003-03-24 2013-08-13 Siebel Systems, Inc. Inventory transaction common object
US20070208577A1 (en) * 2003-03-24 2007-09-06 Leon Maria T B Position common object
US7912932B2 (en) * 2003-03-24 2011-03-22 Siebel Systems, Inc. Service request common object
US9704120B2 (en) * 2003-03-24 2017-07-11 Oracle International Corporation Inventory balance common object
US7904340B2 (en) * 2003-03-24 2011-03-08 Siebel Systems, Inc. Methods and computer-readable medium for defining a product model
US8489470B2 (en) * 2003-03-24 2013-07-16 Siebel Systems, Inc. Inventory location common object
US20070226037A1 (en) * 2003-03-25 2007-09-27 Shailendra Garg Modeling of opportunity data
US8762415B2 (en) * 2003-03-25 2014-06-24 Siebel Systems, Inc. Modeling of order data
US7530015B2 (en) * 2003-06-25 2009-05-05 Microsoft Corporation XSD inference
WO2005008483A1 (en) * 2003-07-11 2005-01-27 Computer Associates Think, Inc. Modular server architecture
EP1644827A1 (en) * 2003-07-11 2006-04-12 Computer Associates Think, Inc. Automated patching of code for schema derived classes
WO2005015361A2 (en) 2003-08-08 2005-02-17 Jp Morgan Chase Bank System for archive integrity management and related methods
US7624438B2 (en) 2003-08-20 2009-11-24 Eric White System and method for providing a secure connection between networked computers
US7587667B2 (en) * 2003-09-04 2009-09-08 Oracle International Corporation Techniques for streaming validation-based XML processing directions
US20050060345A1 (en) * 2003-09-11 2005-03-17 Andrew Doddington Methods and systems for using XML schemas to identify and categorize documents
US20050065964A1 (en) * 2003-09-19 2005-03-24 Ziemann David M. Update of a tree-based database
US8255888B2 (en) * 2003-09-30 2012-08-28 Sap Ag API derivation and XML schema derivation for developing applications
US8166053B2 (en) * 2003-10-30 2012-04-24 Ntt Docomo, Inc. Method and apparatus for schema-driven XML parsing optimization
US8423471B1 (en) * 2004-02-04 2013-04-16 Radix Holdings, Llc Protected document elements
US7437374B2 (en) * 2004-02-10 2008-10-14 International Business Machines Corporation Efficient XML schema validation of XML fragments using annotated automaton encoding
US20050177578A1 (en) * 2004-02-10 2005-08-11 Chen Yao-Ching S. Efficient type annontation of XML schema-validated XML documents without schema validation
US7694315B2 (en) * 2004-02-13 2010-04-06 Microsoft Corporation Schema-based machine generated programming models
US20050192850A1 (en) * 2004-03-01 2005-09-01 Lorenz Scott K. Systems and methods for using data structure language in web services
US7509625B2 (en) * 2004-03-10 2009-03-24 Eric White System and method for comprehensive code generation for system management
US20050204022A1 (en) * 2004-03-10 2005-09-15 Keith Johnston System and method for network management XML architectural abstraction
US7590728B2 (en) * 2004-03-10 2009-09-15 Eric White System and method for detection of aberrant network behavior by clients of a network access gateway
US7665130B2 (en) * 2004-03-10 2010-02-16 Eric White System and method for double-capture/double-redirect to a different location
US8543710B2 (en) 2004-03-10 2013-09-24 Rpx Corporation Method and system for controlling network access
US7610621B2 (en) 2004-03-10 2009-10-27 Eric White System and method for behavior-based firewall modeling
US7422152B2 (en) 2004-05-13 2008-09-09 Cisco Technology, Inc. Methods and devices for providing scalable RFID networks
US7325734B2 (en) 2004-05-13 2008-02-05 Cisco Technology, Inc. Methods and devices for assigning RFID device personality
US7789308B2 (en) * 2004-05-13 2010-09-07 Cisco Technology, Inc. Locating and provisioning devices in a network
US8244774B2 (en) * 2004-05-21 2012-08-14 Ca, Inc. Automated creation of web GUI for XML servers
US8112296B2 (en) * 2004-05-21 2012-02-07 Siebel Systems, Inc. Modeling of job profile data
US7865390B2 (en) * 2004-05-21 2011-01-04 Siebel Systems, Inc. Modeling of employee performance result data
US7617239B2 (en) * 2004-05-21 2009-11-10 Siebel Systems, Inc. Modeling of activity data
US9098476B2 (en) * 2004-06-29 2015-08-04 Microsoft Technology Licensing, Llc Method and system for mapping between structured subjects and observers
US7366974B2 (en) * 2004-09-03 2008-04-29 Jp Morgan Chase Bank System and method for managing template attributes
US20060059210A1 (en) * 2004-09-16 2006-03-16 Macdonald Glynne Generic database structure and related systems and methods for storing data independent of data type
US7861223B1 (en) 2004-09-27 2010-12-28 Rockwell Automation Technologies, Inc. Systems and methods that employ an extensible architecture to define configuration functionality
US7707498B2 (en) * 2004-09-30 2010-04-27 Microsoft Corporation Specific type content manager in an electronic document
US20060090155A1 (en) * 2004-10-12 2006-04-27 Gurevich Michael N Methods and apparatus for message oriented invocation
US20090132466A1 (en) * 2004-10-13 2009-05-21 Jp Morgan Chase Bank System and method for archiving data
US7467373B2 (en) * 2004-10-18 2008-12-16 Microsoft Corporation Global object system
US7475384B2 (en) * 2004-10-19 2009-01-06 Microsoft Corporation Binding to types
US7770159B2 (en) * 2004-10-20 2010-08-03 Microsoft Corporation Virtual types
US8458467B2 (en) * 2005-06-21 2013-06-04 Cisco Technology, Inc. Method and apparatus for adaptive application message payload content transformation in a network infrastructure element
US7664879B2 (en) * 2004-11-23 2010-02-16 Cisco Technology, Inc. Caching content and state data at a network element
US7987272B2 (en) 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US7725934B2 (en) * 2004-12-07 2010-05-25 Cisco Technology, Inc. Network and application attack protection based on application layer message inspection
US7606267B2 (en) * 2004-12-10 2009-10-20 Cisco Technology, Inc. Reducing the sizes of application layer messages in a network element
US8082304B2 (en) 2004-12-10 2011-12-20 Cisco Technology, Inc. Guaranteed delivery of application layer messages by a network element
US7551567B2 (en) * 2005-01-05 2009-06-23 Cisco Technology, Inc. Interpreting an application message at a network element using sampling and heuristics
US7945590B2 (en) * 2005-01-06 2011-05-17 Microsoft Corporation Programmability for binding data
US7617234B2 (en) * 2005-01-06 2009-11-10 Microsoft Corporation XML schema for binding data
US7730394B2 (en) * 2005-01-06 2010-06-01 Microsoft Corporation Data binding in a word-processing application
US7698416B2 (en) 2005-01-25 2010-04-13 Cisco Technology, Inc. Application layer message-based server failover management by a network element
US7950023B2 (en) * 2005-02-04 2011-05-24 Microsoft Corporation Utilizing abstract descriptions to generate, exchange, and configure service and client runtimes
US7668873B2 (en) 2005-02-25 2010-02-23 Microsoft Corporation Data store for software application documents
US7752224B2 (en) 2005-02-25 2010-07-06 Microsoft Corporation Programmability for XML data store for documents
US7681176B2 (en) * 2005-03-04 2010-03-16 Microsoft Corporation Generating a graphical designer application for developing graphical models
US8145653B2 (en) * 2005-04-08 2012-03-27 International Business Machines Corporation Using schemas to generate application specific business objects for use in an integration broker
US20060230048A1 (en) * 2005-04-08 2006-10-12 International Business Machines Corporation Method and apparatus for object discovery agent based mapping of application specific markup language schemas to application specific business objects in an integrated application environment
US8458201B2 (en) * 2005-04-08 2013-06-04 International Business Machines Corporation Method and apparatus for mapping structured query language schema to application specific business objects in an integrated application environment
US20060230057A1 (en) * 2005-04-08 2006-10-12 International Business Machines Corporation Method and apparatus for mapping web services definition language files to application specific business objects in an integrated application environment
US8266327B2 (en) * 2005-06-21 2012-09-11 Cisco Technology, Inc. Identity brokering in a network element
US7345585B2 (en) 2005-08-01 2008-03-18 Cisco Technology, Inc. Network based device for providing RFID middleware functionality
US9256407B2 (en) * 2005-08-04 2016-02-09 International Business Machines Corporation Interleaving the XForms processing model with java server faces request processing
US7945904B2 (en) * 2005-08-22 2011-05-17 Microsoft Corporation Embedding expression in XML literals
US7953696B2 (en) * 2005-09-09 2011-05-31 Microsoft Corporation Real-time synchronization of XML data between applications
US8065606B1 (en) 2005-09-16 2011-11-22 Jpmorgan Chase Bank, N.A. System and method for automating document generation
US8972423B2 (en) * 2006-09-26 2015-03-03 Siemens Product Lifecycle Management Software Inc. Opaque mechanism for web service interoperability
US7676488B2 (en) * 2005-10-31 2010-03-09 Sap Ag Conditional formatted reporting using syntax checking
US8601437B2 (en) 2006-02-15 2013-12-03 Microsoft Corporation Reusable component data persistence using a markup language
AU2007217109A1 (en) * 2006-02-16 2007-08-30 Gs Industrial Design, Inc. Method of freeing the bound oil present in whole stillage and thin stillage
US7992081B2 (en) * 2006-04-19 2011-08-02 Oracle International Corporation Streaming validation of XML documents
US7962895B2 (en) * 2006-07-20 2011-06-14 Oracle America, Inc. Language for binding scalable vector graphics elements to java classes
US7797406B2 (en) * 2006-07-27 2010-09-14 Cisco Technology, Inc. Applying quality of service to application messages in network elements based on roles and status
US20080040360A1 (en) * 2006-08-14 2008-02-14 Microsoft Corporation Design pattern for choice types in object oriented languages
US7849472B1 (en) * 2006-08-16 2010-12-07 Oracle America, Inc. System for instrumenting resources utilizing WS-management resource MBean wrappers for JAXB beans
US8104076B1 (en) 2006-11-13 2012-01-24 Jpmorgan Chase Bank, N.A. Application access control system
US8732661B2 (en) * 2007-02-01 2014-05-20 Microsoft Corporation User experience customization framework
US7631003B2 (en) * 2007-02-20 2009-12-08 Microsoft Corporation Automated transformation for style normalization of schemas
US8332331B2 (en) * 2007-03-19 2012-12-11 Hewlett-Packard Development Company, L.P. Determining a price premium for a project
US7917887B2 (en) * 2007-06-28 2011-03-29 Microsoft Corporation DDEX (data designer extensibility) default object implementations for software development processes
US20090007157A1 (en) * 2007-06-28 2009-01-01 Microsoft Corporation Mapping Data Sources to a Procedural API
US8949325B1 (en) * 2007-06-29 2015-02-03 Symantec Corporation Dynamic discovery and utilization of current context information
US8156146B2 (en) * 2007-09-28 2012-04-10 Xcerion Aktiebolag Network file system
US7817636B2 (en) * 2008-01-30 2010-10-19 Cisco Technology, Inc. Obtaining information on forwarding decisions for a packet flow
US8656349B2 (en) * 2008-03-07 2014-02-18 Sap Ag Systems and methods for template reverse engineering
US8229976B2 (en) * 2008-03-27 2012-07-24 Microsoft Corporation Data binding for XML schemas
CN101339500B (en) * 2008-05-22 2010-06-09 清华大学 Data binding application program interface creation method based on XML mode
US8165999B2 (en) * 2008-07-25 2012-04-24 International Business Machines Corporation XML/database/XML layer analysis
US20100042982A1 (en) * 2008-08-15 2010-02-18 Microsoft Corporation Optimization of imperative implementation of compositional content
US8763008B2 (en) 2008-09-30 2014-06-24 Ebay Inc. System and method for processing messages using native data serialization/deserialization in a service-oriented pipeline architecture
US8806506B2 (en) * 2008-09-30 2014-08-12 Ebay Inc. System and method for processing messages using a common interface platform supporting multiple pluggable data formats in a service-oriented pipeline architecture
US8341280B2 (en) * 2008-12-30 2012-12-25 Ebay Inc. Request and response decoupling via pluggable transports in a service oriented pipeline architecture for a request response message exchange pattern
US8448132B2 (en) * 2009-05-07 2013-05-21 Sap Ag Systems and methods for modifying code generation templates
US8255372B2 (en) 2010-01-18 2012-08-28 Oracle International Corporation Efficient validation of binary XML data
US8516437B2 (en) * 2010-01-22 2013-08-20 Ebay Inc. System and method for creating, managing, and reusing schema type definitions in services oriented architecture services, grouped in the form of libraries
US20110289515A1 (en) * 2010-05-19 2011-11-24 Microsoft Corporation Generating service-access activities for workflow applications
US8464233B2 (en) 2010-06-21 2013-06-11 Microsoft Corporation Compile time interpretation of markup codes
CN102339219B (en) 2010-07-20 2016-08-24 甲骨文国际公司 For supporting the system and method for object-oriented wscript.exe
US9038177B1 (en) 2010-11-30 2015-05-19 Jpmorgan Chase Bank, N.A. Method and system for implementing multi-level data fusion
US8930888B2 (en) * 2011-06-29 2015-01-06 International Business Machines Corporation Modelling serialized object streams
US9507874B2 (en) 2011-06-30 2016-11-29 International Business Machines Corporation Validation of schema and schema conformance verification
US9292588B1 (en) 2011-07-20 2016-03-22 Jpmorgan Chase Bank, N.A. Safe storing data for disaster recovery
US9430253B2 (en) 2011-09-25 2016-08-30 Sap Se Reusable and late addition enabled XML data binding
US10540373B1 (en) 2013-03-04 2020-01-21 Jpmorgan Chase Bank, N.A. Clause library manager
CN103679276B (en) * 2013-12-16 2017-11-21 金蝶软件(中国)有限公司 The control method and system of budget period range
US9342300B2 (en) 2014-03-11 2016-05-17 Blue Wolf Group, LLC Analyzing components related to a software application in a software development environment
US9483240B1 (en) 2015-05-27 2016-11-01 Google Inc. Data binding dependency analysis
US9984175B2 (en) 2015-09-30 2018-05-29 International Business Machines Corporation Mapping non-generic markup language elements to generic object-oriented programming language objects
US10031766B2 (en) 2016-03-08 2018-07-24 Mastercard International Incorporated Systems and methods for processing extensible markup language data during runtime
US10705868B2 (en) * 2017-08-07 2020-07-07 Modelop, Inc. Dynamically configurable microservice model for data analysis using sensors
CN108388622B (en) * 2018-02-12 2020-02-28 平安科技(深圳)有限公司 API interface dynamic generation method and device, computer equipment and storage medium
CN108804103A (en) * 2018-06-20 2018-11-13 郑州云海信息技术有限公司 A kind of scan interface simultaneously generates the method that can call api interface document
US10631047B1 (en) * 2019-03-29 2020-04-21 Pond5 Inc. Online video editor
US11809839B2 (en) 2022-01-18 2023-11-07 Robert Lyden Computer language and code for application development and electronic and optical communication

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020085020A1 (en) * 2000-09-14 2002-07-04 Carroll Thomas J. XML-based graphical user interface application development toolkit
US20030005410A1 (en) * 1999-06-02 2003-01-02 American Management Systems, Inc. Of Fairfax, Va. Xml parser for cobol
US20030018661A1 (en) * 2001-07-19 2003-01-23 Darugar Parand Tony XML smart mapping system and method
US6516322B1 (en) * 2000-04-28 2003-02-04 Microsoft Corporation XML-based representation of mobile process calculi

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6621505B1 (en) * 1997-09-30 2003-09-16 Journee Software Corp. Dynamic process-based enterprise computing system and method
US6438744B2 (en) * 1998-07-15 2002-08-20 Microsoft Corporation Dynamic mapping of component interfaces
US6453464B1 (en) * 1998-09-03 2002-09-17 Legacyj. Corp., Inc. Method and apparatus for converting COBOL to Java
US6125391A (en) * 1998-10-16 2000-09-26 Commerce One, Inc. Market makers using documents for commerce in trading partner networks
US8006177B1 (en) 1998-10-16 2011-08-23 Open Invention Network, Llc Documents for commerce in trading partner networks and interface definitions based on the documents
US6226675B1 (en) * 1998-10-16 2001-05-01 Commerce One, Inc. Participant server which process documents for commerce in trading partner networks
US6519617B1 (en) * 1999-04-08 2003-02-11 International Business Machines Corporation Automated creation of an XML dialect and dynamic generation of a corresponding DTD
US20010054172A1 (en) * 1999-12-03 2001-12-20 Tuatini Jeffrey Taihana Serialization technique
US6662342B1 (en) * 1999-12-13 2003-12-09 International Business Machines Corporation Method, system, and program for providing access to objects in a document
US6772413B2 (en) 1999-12-21 2004-08-03 Datapower Technology, Inc. Method and apparatus of data exchange using runtime code generator and translator
US20010047385A1 (en) * 1999-12-30 2001-11-29 Jeffrey Tuatini Passthru to shared service funtionality
US7089583B2 (en) 2000-01-14 2006-08-08 Saba Software, Inc. Method and apparatus for a business applications server
US7165113B2 (en) * 2000-11-28 2007-01-16 Hewlett-Packard Development Company, L.P. Computer language for defining business conversations
US6925631B2 (en) * 2000-12-08 2005-08-02 Hewlett-Packard Development Company, L.P. Method, computer system and computer program product for processing extensible markup language streams
WO2002057917A2 (en) * 2001-01-22 2002-07-25 Sun Microsystems, Inc. Peer-to-peer network computing platform
US7366973B2 (en) 2001-01-23 2008-04-29 Microsoft Corporation Item, relation, attribute: the IRA object model
US20020111963A1 (en) 2001-02-14 2002-08-15 International Business Machines Corporation Method, system, and program for preprocessing a document to render on an output device
US7194683B2 (en) 2001-03-02 2007-03-20 International Business Machines Corporation Representing and managing dynamic data content for web documents
US7089567B2 (en) * 2001-04-09 2006-08-08 International Business Machines Corporation Efficient RPC mechanism using XML
US20020184145A1 (en) 2001-05-31 2002-12-05 Sun Microsystems, Inc. Methods and system for integrating XML based transactions in an electronic invoice presentment and payment environment
US7152090B2 (en) * 2001-06-01 2006-12-19 Sun Microsystems, Inc. Metadata-aware enterprise application integration framework for application server environment
US7130898B2 (en) 2001-08-27 2006-10-31 Sun Microsystems, Inc. Mechanism for facilitating invocation of a service
US6901410B2 (en) * 2001-09-10 2005-05-31 Marron Pedro Jose LDAP-based distributed cache technology for XML
US20030217094A1 (en) * 2002-05-17 2003-11-20 Anthony Dean Andrews Correlation framework
US20040019589A1 (en) * 2002-07-25 2004-01-29 Basrur Rajesh G. Driver for mapping standard database queries and commands to markup language documents
US7721202B2 (en) * 2002-08-16 2010-05-18 Open Invention Network, Llc XML streaming transformer
US7171407B2 (en) * 2002-10-03 2007-01-30 International Business Machines Corporation Method for streaming XPath processing with forward and backward axes
AU2003295762A1 (en) * 2002-11-19 2004-06-15 Nexaweb Technologies, Inc. System and method for stateful web-based computing
US20050234844A1 (en) * 2004-04-08 2005-10-20 Microsoft Corporation Method and system for parsing XML data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030005410A1 (en) * 1999-06-02 2003-01-02 American Management Systems, Inc. Of Fairfax, Va. Xml parser for cobol
US6516322B1 (en) * 2000-04-28 2003-02-04 Microsoft Corporation XML-based representation of mobile process calculi
US20020085020A1 (en) * 2000-09-14 2002-07-04 Carroll Thomas J. XML-based graphical user interface application development toolkit
US20030018661A1 (en) * 2001-07-19 2003-01-23 Darugar Parand Tony XML smart mapping system and method

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005036439A1 (en) * 2003-10-08 2005-04-21 Honeywell International Inc. Model-based diagnostic interface
JP2009283004A (en) * 2003-10-08 2009-12-03 Honeywell Internatl Inc Model-based diagnostic interface
US8180610B2 (en) 2003-10-08 2012-05-15 Honeywell International Inc. Model-based diagnostic interface for a vehicle health management system having a system model with a system nomeclature
CN101282345B (en) * 2008-03-03 2011-12-07 北京航空航天大学 Method for converting XML based on formalization description and state ontroller system

Also Published As

Publication number Publication date
US20030163603A1 (en) 2003-08-28
AU2003217375A1 (en) 2003-09-09
US7962925B2 (en) 2011-06-14

Similar Documents

Publication Publication Date Title
US7962925B2 (en) System and method for XML data binding
US8074160B2 (en) Streaming parser API for processing XML document
US7058645B2 (en) Mapping between native data type instances
US7546606B2 (en) System and method using a connector architecture for application integration
US7624400B2 (en) Type bridges
US7581231B2 (en) Computing system and method for allowing plurality of applications written in different programming languages to communicate and request resources or services via a common language runtime layer
US7240101B2 (en) Method and apparatus for efficiently reflecting complex systems of objects in XML documents
US20040111533A1 (en) Transformations as web services
US20020099738A1 (en) Automated web access for back-end enterprise systems
US20030177282A1 (en) Application program interface for network software platform
US20060155529A1 (en) System and method for a context-independent framework for management and execution of xml processing tasks
KR20050000352A (en) Common query runtime system and application programming interface
US20090187927A1 (en) Method for invoking UOML instructions
US20040064826A1 (en) Method and system for object system interoperability
US7774386B2 (en) Applying abstraction to object markup definitions
WO2003034183A2 (en) System and method using a connector architecture for application integration
JP2006195979A (en) Web application architecture
US8156506B2 (en) Methods and apparatus for message oriented invocation
JP2006510955A (en) Context-independent framework system and method for managing and executing XML processing tasks
US7305667B1 (en) Call back structures for user defined DOMs
EP1938559B1 (en) Opaque mechanism for web service interoperability
US8972423B2 (en) Opaque mechanism for web service interoperability
Salz et al. ZSI: The Zolera Soap Infrastructure
Payrits et al. Metadata-based XML serialization for embedded C++
Widener et al. Open metadata formats: Efficient xml-based communication for heterogeneous distributed systems

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SC SD SE SG SK SL TJ TM TN TR TT TZ UA UG UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP