US20080046874A1 - Data reporting application programming interfaces in an xml parser generator for xml validation and deserialization - Google Patents
Data reporting application programming interfaces in an xml parser generator for xml validation and deserialization Download PDFInfo
- Publication number
- US20080046874A1 US20080046874A1 US11/465,818 US46581806A US2008046874A1 US 20080046874 A1 US20080046874 A1 US 20080046874A1 US 46581806 A US46581806 A US 46581806A US 2008046874 A1 US2008046874 A1 US 2008046874A1
- Authority
- US
- United States
- Prior art keywords
- data
- xml
- instance
- generator
- data reporting
- Prior art date
- Legal status (The legal status 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 status listed.)
- Abandoned
Links
- 238000010200 validation analysis Methods 0.000 title claims abstract description 15
- 238000000034 method Methods 0.000 claims abstract description 17
- 238000004590 computer program Methods 0.000 claims description 9
- 239000002245 particle Substances 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 4
- 230000003993 interaction Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/42—Syntactic analysis
- G06F8/427—Parsing
Definitions
- IBM® is a registered trademark of International Business Machines Corporation, Armonk, N.Y., U.S.A. Other names used herein may be registered trademarks, trademarks or product names of International Business Machines Corporation or other companies.
- the present invention relates to the field of data reporting when parsing XML documents, and more particularly to how to directly deserialize the data in an application-specific format, without costly intermediate processing and representations.
- Extensible Markup Language or XML
- parsers are deployed in varying applications, each requiring different application interfaces to report the data with. Sometimes this is achieved by writing an entire application specific parser or by writing the parser against a sufficiently general and low level Application Programming Interface, or API, and supplying transducers for application-specific data structures. Other times, parsers are written to support several APIs, or are written as a collection of multiple generalized components only some of which are used each time. For example, Xerces, an open source XML parser, supports several versions of the Simple API for XML, or SAX, and the Document Object Model API, or DOM, as well as Xerces Native Interface, or XNI, making it slower.
- Exemplary embodiments include a method for interfacing with an XML (Extensible Markup Language) parser generator to generate deserialization information interleaved with XML parsing and validation, including: configuring a parser generator with information about the schema which the instance data conforms to, in order to generate an XML parser that parses and validates the instance data efficiently; providing a data reporting application programming interface (API) and a generator module; providing one or more implementations of the data reporting API; providing the XML parser generator with a data reporting API implementation module; generating an XML parser to parse and validate instance documents conforming to the specified input schema and deserializing the instance documents into the desired deserialization format during the parse.
- API application programming interface
- FIG. 1 illustrates the interaction between the parser generator and an event stream data reporting API generator module that uses SAX events to notify the application of the instance document data, and shows the code generated in the resulting parser, in accordance with exemplary embodiments;
- FIG. 2 illustrates the interaction between the parser generator and a business object data reporting API generator module for the case when deserialization into application specific objects is needed by the application, in accordance with exemplary embodiments.
- a data reporting API module may be implemented as an independent piece of the parser generator.
- the data reporting API module is invoked during code generation, and given context information of where the parser is at the time of invocation. At that point, the data reporting API module determines what code needs to be generated into the runtime instruction stream.
- the XML Parser generated in this way contains the exact code needed to generate the targeted event stream, business object, or other structure, resulting in very efficient notifications or deserialization into objects, during the parsing phase.
- FIG. 1 shows an example of an event stream API generator object that uses SAX events to notify the application of the instance document data.
- FIG. 2 shows sample API Generator code as well as the corresponding generated code for the case where deserialization into application specific objects is needed by the application.
- the specific deserialization API shown in the figure is Java API for XML-Based Remote Procedure Call, or JAX-RPC.
- application specific operations are inserted directly into the generated executable code, in a context sensitive way. This is achieved by associating actions with their context, in a way that disengages them from the operational details of parsing and validation.
- Arbitrary code can be inserted for specific contextual aspects, through the use of a generalized data reporting API generator module, which removes indirection layers at runtime and allows for optimal performance.
- the compile-time separation of application-specific code into separate modules results in parser generator code that is simpler and easier to maintain. For example, adding or removing support for a different data reporting interface would no longer require any modification of the parsing or validation code.
- custom parsers and validators of XML instance documents are utilized.
- the customization comes from the a priori knowledge of the schema the data must conform to, as well as information about how the target application will use the instance document data.
- the latter customization is used by the data reporting generator module, which is configured at startup with information about the target application's runtime environment.
- New data reporting generator modules may be developed as needed by the application author, with no knowledge of the parsing and validator code, while still retaining efficient reporting of the data.
- the user simply needs to provide an implementation of the DataReportingGenerator interface.
- the parser generator will invoke methods in this implementation during code generation to add user-defined code into the generated parser, which will report the instance data in the form desirable by the application.
- the application can choose to ignore parts of the input data, and this is easily implemented in this model by providing no actions for certain contexts. This enables applications to easily avoid the cost of deserializing pieces of data of no interest to them, making the whole processing of the input data even more efficient.
- the data reporting module can be used to generate code that creates appropriate data structures to store the instance data, assign values to such structures, and allocate space when needed. It can also provide an expression for accessing the instance document data, and this information can be used by the parser generator when generating code that needs to access this data, without a-priori knowledge of how the data is being stored.
- the interface between the data reporting API Generator module and the parser generator includes passing around two types of information:
- Information is passed from the parser generator to the data reporting generator module describing the current context that the parser generator is currently generating code for: for example, the type of the data that the parser generator is currently handling, such as the particular schema component. Additional information, such as the particle wrapping the current schema component as well as references to components that may appear in place of the one currently handled may also be provided to the data reporting generator module.
- the data reporting generator module provides information to the parser generator regarding how instance data may be referenced during runtime and thus how the parser generator can refer to this same data for its parsing and validation requirements.
- a standalone data reporting generator module is interfaced with the parser generator, to designate the desired deserialization code to be executed while parsing the instance document.
- Different implementations of the data reporting generator module can be plugged in at parser generation time (compile time), to generate the desired deserialization code.
- parser generation time compile time
- the parser is used at runtime to parse an instance document, or XML data stream, and deserialize the data found in the instance document.
- deserializing the data means converting the data into a form that can be used by the user application (i.e., data structures, events, etc).
- the XML parser would generate generic data structures, possibly conforming to some industry standard form; the user application needs to convert this intermediate form to the application specific data description. With the suggested approach, this two-step runtime conversion is eliminated completely: the custom XML parser generated during the compilation phase generates at runtime the data structures needed by the end application.
- ⁇ address> ⁇ street>Belmont Rd ⁇ /street> ⁇ number>20 ⁇ /number> ⁇ city>Bethesda ⁇ /city> ⁇ zip>04792 ⁇ /zip> ⁇ /address> the data may be converted to a Java object, similar to
- startElement (“address”); startElement(“street”); characterData(“Belmont Rd”); endElement( ); startElement(“number”); characterData(“20”); endElement( ); startElement(“city”); characterData(“Bethesda”); endElement( ); startElement(“zip”); characterData(“04792”); endElement( ); endElement( ); // ⁇ /address>
- the “number” field is reported as the String value “20”.
- the “number” field is reported as the integer value 20.
- FIGS. 1 and 2 illustrate the interaction of the parser generator 100 with the data reporting generator module 200 and 210 , during compile time, and sample output code that is generated during this interaction 300 and 310 .
- the parser generator is generating validation code for a wildcard. From the input schema that the XML instance data conforms to, we know that the specific wildcard matches either “xx” or “xyz” elements.
- the parser generator generates a comment into the output stream.
- the parser generator proceeds to generate validation code for each of the wildcard particles.
- the first wildcard particle matches “xx”, so the following code is generated:
- parser generator invokes the data reporting generator module that has been instantiated for this compilation scenario, with a call to
- the data-reporting module can generate the appropriate code for the matched particle. In the case of the event stream data-reporting module ( FIG. 1 ), this results in:
- Attributes attr_list new AttributesImpl( ); for each attribute that can appear in XX attr_list.add(“attrName”, attrValue) throwEvent(“startElement(“”, “xx”, “xx”, attr_list)”);
- the code generated must create a business object of the appropriate type (in this case an XX object) and initialize it with the data in the instance document.
- the generated code looks like:
- Object o new XX( ); for each attribute in XX o.setField(“attrName”, attrValue) o.setValue(value);
- the attribute handling code will not appear in the generated parser if there were no attributes in the schema type for this element, as this information is known at compile time. Furthermore, the attrName will be hardcoded into the generated parser at compile time, since it is known at that time, while the attrValue will be generated as a variable which points to the value in the parser validation code.
- the capabilities of the present invention can be implemented in software, firmware, hardware or some combination thereof.
- one or more aspects of the present invention can be included in an article of manufacture (e.g., one or more computer program products) having, for instance, computer usable media.
- the media has embodied therein, for instance, computer readable program code means for providing and facilitating the capabilities of the present invention.
- the article of manufacture can be included as a part of a computer system or sold separately.
- At least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform the capabilities of the present invention can be provided.
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Document Processing Apparatus (AREA)
- Stored Programmes (AREA)
Abstract
Description
- IBM® is a registered trademark of International Business Machines Corporation, Armonk, N.Y., U.S.A. Other names used herein may be registered trademarks, trademarks or product names of International Business Machines Corporation or other companies.
- 1. Field of the Invention
- The present invention relates to the field of data reporting when parsing XML documents, and more particularly to how to directly deserialize the data in an application-specific format, without costly intermediate processing and representations.
- 2. Description of Background
- Extensible Markup Language, or XML, parsers are deployed in varying applications, each requiring different application interfaces to report the data with. Sometimes this is achieved by writing an entire application specific parser or by writing the parser against a sufficiently general and low level Application Programming Interface, or API, and supplying transducers for application-specific data structures. Other times, parsers are written to support several APIs, or are written as a collection of multiple generalized components only some of which are used each time. For example, Xerces, an open source XML parser, supports several versions of the Simple API for XML, or SAX, and the Document Object Model API, or DOM, as well as Xerces Native Interface, or XNI, making it slower. Other XML parsers have been written as a collection of generalized components, which the end user has to assemble by hand. In all these cases, adding a new API requires a lot of new code that is low-level, high-complexity, hard-to-debug, and hard-to-maintain. The user ends up modifying the validation code to add support for a new data reporting API.
- Therefore, a method for generating the appropriate API code relevant to the particular usage of an XML parser would be highly desirable.
- Exemplary embodiments include a method for interfacing with an XML (Extensible Markup Language) parser generator to generate deserialization information interleaved with XML parsing and validation, including: configuring a parser generator with information about the schema which the instance data conforms to, in order to generate an XML parser that parses and validates the instance data efficiently; providing a data reporting application programming interface (API) and a generator module; providing one or more implementations of the data reporting API; providing the XML parser generator with a data reporting API implementation module; generating an XML parser to parse and validate instance documents conforming to the specified input schema and deserializing the instance documents into the desired deserialization format during the parse.
- System and computer program products corresponding to the above-summarized methods are also described and claimed herein.
- Additional features and advantages are realized through the techniques of the present invention. Other embodiments and aspects of the invention are described in detail herein and are considered a part of the claimed invention. For a better understanding of the invention with advantages and features, refer to the description and to the drawings.
- As a result of the summarized invention, technically we have achieved a solution, which provides a means of interfacing with a standalone data reporting API generator module that is interfaced with by the parser generator, to designate the desired deserialization code into the generated parsing and validation code.
- The subject matter which is regarded as the invention is particularly pointed out and distinctly claimed in the claims at the conclusion of the specification. The foregoing and other objects, features, and advantages of the invention are apparent from the following detailed description taken in conjunction with the accompanying drawings in which:
-
FIG. 1 illustrates the interaction between the parser generator and an event stream data reporting API generator module that uses SAX events to notify the application of the instance document data, and shows the code generated in the resulting parser, in accordance with exemplary embodiments; and -
FIG. 2 illustrates the interaction between the parser generator and a business object data reporting API generator module for the case when deserialization into application specific objects is needed by the application, in accordance with exemplary embodiments. - The detailed description explains the preferred embodiments of the invention, together with advantages and features, by way of example with reference to the drawings.
- The present invention and the various features and advantageous details thereof are explained more fully with reference to the non-limiting embodiments that are illustrated in the accompanying drawings and detailed in the following description. It should be noted that the features illustrated in the drawings are not necessarily drawn in all detail possible. Descriptions of well-known components and processing techniques are omitted so as to not unnecessarily obscure the present invention in detail. The examples used herein are intended merely to facilitate an understanding of ways in which the invention may be practiced and to further enable those of skill in the art to practice the invention. Accordingly, the examples should not be construed as limiting the scope of the invention.
- In exemplary embodiments, a data reporting API module may be implemented as an independent piece of the parser generator. The data reporting API module is invoked during code generation, and given context information of where the parser is at the time of invocation. At that point, the data reporting API module determines what code needs to be generated into the runtime instruction stream. The XML Parser generated in this way contains the exact code needed to generate the targeted event stream, business object, or other structure, resulting in very efficient notifications or deserialization into objects, during the parsing phase.
- Different implementations of the data reporting API object are loaded during the code generation phase, based on information provided by the user regarding the desired deserialization format of the XML instance data.
FIG. 1 shows an example of an event stream API generator object that uses SAX events to notify the application of the instance document data.FIG. 2 shows sample API Generator code as well as the corresponding generated code for the case where deserialization into application specific objects is needed by the application. The specific deserialization API shown in the figure is Java API for XML-Based Remote Procedure Call, or JAX-RPC. - In one embodiment, application specific operations are inserted directly into the generated executable code, in a context sensitive way. This is achieved by associating actions with their context, in a way that disengages them from the operational details of parsing and validation. Arbitrary code can be inserted for specific contextual aspects, through the use of a generalized data reporting API generator module, which removes indirection layers at runtime and allows for optimal performance. The compile-time separation of application-specific code into separate modules results in parser generator code that is simpler and easier to maintain. For example, adding or removing support for a different data reporting interface would no longer require any modification of the parsing or validation code.
- In one embodiment, custom parsers and validators of XML instance documents are utilized. The customization comes from the a priori knowledge of the schema the data must conform to, as well as information about how the target application will use the instance document data. The latter customization is used by the data reporting generator module, which is configured at startup with information about the target application's runtime environment.
- New data reporting generator modules may be developed as needed by the application author, with no knowledge of the parsing and validator code, while still retaining efficient reporting of the data. The user simply needs to provide an implementation of the DataReportingGenerator interface. The parser generator will invoke methods in this implementation during code generation to add user-defined code into the generated parser, which will report the instance data in the form desirable by the application. The application can choose to ignore parts of the input data, and this is easily implemented in this model by providing no actions for certain contexts. This enables applications to easily avoid the cost of deserializing pieces of data of no interest to them, making the whole processing of the input data even more efficient.
- The data reporting module can be used to generate code that creates appropriate data structures to store the instance data, assign values to such structures, and allocate space when needed. It can also provide an expression for accessing the instance document data, and this information can be used by the parser generator when generating code that needs to access this data, without a-priori knowledge of how the data is being stored. The interface between the data reporting API Generator module and the parser generator includes passing around two types of information:
- Information is passed from the parser generator to the data reporting generator module describing the current context that the parser generator is currently generating code for: for example, the type of the data that the parser generator is currently handling, such as the particular schema component. Additional information, such as the particle wrapping the current schema component as well as references to components that may appear in place of the one currently handled may also be provided to the data reporting generator module.
- In the other direction, the data reporting generator module provides information to the parser generator regarding how instance data may be referenced during runtime and thus how the parser generator can refer to this same data for its parsing and validation requirements.
- In exemplary embodiments, a standalone data reporting generator module is interfaced with the parser generator, to designate the desired deserialization code to be executed while parsing the instance document. Different implementations of the data reporting generator module can be plugged in at parser generation time (compile time), to generate the desired deserialization code. It should be noted that there is a compilation phase, during which an XML parser is generated. The parser is used at runtime to parse an instance document, or XML data stream, and deserialize the data found in the instance document. As used herein, deserializing the data means converting the data into a form that can be used by the user application (i.e., data structures, events, etc). Typically, the XML parser would generate generic data structures, possibly conforming to some industry standard form; the user application needs to convert this intermediate form to the application specific data description. With the suggested approach, this two-step runtime conversion is eliminated completely: the custom XML parser generated during the compilation phase generates at runtime the data structures needed by the end application.
- For example, given the input document
-
<address> <street>Belmont Rd</street> <number>20</number> <city>Bethesda</city> <zip>04792</zip> </address>
the data may be converted to a Java object, similar to -
new Address (“Belmont Rd”, 20, “Bethesda”, “04792”)
or a SAX event stream, similar to: -
startElement (“address”); startElement(“street”); characterData(“Belmont Rd”); endElement( ); startElement(“number”); characterData(“20”); endElement( ); startElement(“city”); characterData(“Bethesda”); endElement( ); startElement(“zip”); characterData(“04792”); endElement( ); endElement( ); // </address> - Notice how in one case, when the SAX event stream deserialization is used, the “number” field is reported as the String value “20”. When the business object deserialization is used, the “number” field is reported as the integer value 20. During the parser generation phase, code is inserted from the data reporting generator module into the generated parser to perform the conversion appropriate for the desired deserialization, if any is needed. The parser generator is not aware of such conversions itself, it is up to the specific implementation of the data reporting generator module to determine what conversions might need to occur to convert the instance data into the specific deserialization format.
-
FIGS. 1 and 2 illustrate the interaction of theparser generator 100 with the data reportinggenerator module interaction - For illustrative purposes, the parser generator generates a comment into the output stream. Next, the parser generator proceeds to generate validation code for each of the wildcard particles. The first wildcard particle matches “xx”, so the following code is generated:
-
if (currentToken == XX) { check attributes for XX; - At this point the parser generator invokes the data reporting generator module that has been instantiated for this compilation scenario, with a call to
-
- <data-reporting-module>.afterChoiceOpenTag(..)
- The data-reporting module can generate the appropriate code for the matched particle. In the case of the event stream data-reporting module (
FIG. 1 ), this results in: -
// build up attribute list Attributes attr_list = new AttributesImpl( ); for each attribute that can appear in XX attr_list.add(“attrName”, attrValue) throwEvent(“startElement(“”, “xx”, “xx”, attr_list)”); - In
FIG. 2 , where the desired deserialization is a JaxRPC-style business object, the code generated must create a business object of the appropriate type (in this case an XX object) and initialize it with the data in the instance document. The generated code looks like: -
Object o = new XX( ); for each attribute in XX o.setField(“attrName”, attrValue) o.setValue(value); - This process is repeated for all other particles of the wildcard, in this case the particle for XYZ.
- Note that the attribute handling code will not appear in the generated parser if there were no attributes in the schema type for this element, as this information is known at compile time. Furthermore, the attrName will be hardcoded into the generated parser at compile time, since it is known at that time, while the attrValue will be generated as a variable which points to the value in the parser validation code.
- The capabilities of the present invention can be implemented in software, firmware, hardware or some combination thereof.
- As one example, one or more aspects of the present invention can be included in an article of manufacture (e.g., one or more computer program products) having, for instance, computer usable media. The media has embodied therein, for instance, computer readable program code means for providing and facilitating the capabilities of the present invention. The article of manufacture can be included as a part of a computer system or sold separately.
- Additionally, at least one program storage device readable by a machine, tangibly embodying at least one program of instructions executable by the machine to perform the capabilities of the present invention can be provided.
- The flow diagrams depicted herein are just examples. There may be many variations to these diagrams or the steps (or operations) described therein without departing from the spirit of the invention. For instance, the steps may be performed in a differing order, or steps may be added, deleted or modified. All of these variations are considered a part of the claimed invention.
- While the preferred embodiment to the invention has been described, it will be understood that those skilled in the art, both now and in the future, may make various improvements and enhancements which fall within the scope of the claims which follow. These claims should be construed to maintain the proper protection for the invention first described.
Claims (12)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/465,818 US20080046874A1 (en) | 2006-08-21 | 2006-08-21 | Data reporting application programming interfaces in an xml parser generator for xml validation and deserialization |
US12/130,208 US8171395B2 (en) | 2006-08-21 | 2008-05-30 | Data reporting application programming interfaces in an XML parser generator for XML validation and deserialization |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/465,818 US20080046874A1 (en) | 2006-08-21 | 2006-08-21 | Data reporting application programming interfaces in an xml parser generator for xml validation and deserialization |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/130,208 Continuation US8171395B2 (en) | 2006-08-21 | 2008-05-30 | Data reporting application programming interfaces in an XML parser generator for XML validation and deserialization |
Publications (1)
Publication Number | Publication Date |
---|---|
US20080046874A1 true US20080046874A1 (en) | 2008-02-21 |
Family
ID=39102813
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/465,818 Abandoned US20080046874A1 (en) | 2006-08-21 | 2006-08-21 | Data reporting application programming interfaces in an xml parser generator for xml validation and deserialization |
US12/130,208 Expired - Fee Related US8171395B2 (en) | 2006-08-21 | 2008-05-30 | Data reporting application programming interfaces in an XML parser generator for XML validation and deserialization |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/130,208 Expired - Fee Related US8171395B2 (en) | 2006-08-21 | 2008-05-30 | Data reporting application programming interfaces in an XML parser generator for XML validation and deserialization |
Country Status (1)
Country | Link |
---|---|
US (2) | US20080046874A1 (en) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080320044A1 (en) * | 2007-06-22 | 2008-12-25 | Accenture S.P.A. | Messaging interface system |
US20090019455A1 (en) * | 2007-07-12 | 2009-01-15 | Accenture S.P.A. | Messaging interface system for serving a message to a target system |
US20090043697A1 (en) * | 2007-08-06 | 2009-02-12 | Jacobs Mitchell L | System and method for repaying an obligation |
US20090240694A1 (en) * | 2008-03-18 | 2009-09-24 | Nathan Blaine Jensen | Techniques for application data scrubbing, reporting, and analysis |
US20100083281A1 (en) * | 2008-09-30 | 2010-04-01 | Malladi Sastry K | System and method for processing messages using a common interface platform supporting multiple pluggable data formats in a service-oriented pipeline architecture |
US20100083277A1 (en) * | 2008-09-30 | 2010-04-01 | Malladi Sastry K | System and method for processing messages using native data serialization/deserialization in a service-oriented pipeline architecture |
US20100162229A1 (en) * | 2008-07-29 | 2010-06-24 | Palm, Inc. | Framework versioning |
US20100169469A1 (en) * | 2008-12-30 | 2010-07-01 | Malladi Sastry K | Request and response decoupling via pluggable transports in a service oriented pipeline architecture for a request response message exchange pattern |
US8336037B1 (en) * | 2006-05-17 | 2012-12-18 | Ross Richard A | JNI-minimizing data structures for XML parsing |
WO2015006075A1 (en) * | 2013-07-12 | 2015-01-15 | Ab Initio Technology Llc | Parser generation |
US11367139B2 (en) * | 2019-01-15 | 2022-06-21 | Tangram Solutions LLC | Performance measurement and reporting for guaranteed income financial products and services |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030182364A1 (en) * | 2002-03-14 | 2003-09-25 | Openwave Systems Inc. | Method and apparatus for requesting and performing batched operations for web services |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6298353B1 (en) * | 1998-11-19 | 2001-10-02 | International Business Machines Corporation | Checking serialization compatibility between versions of java classes |
US6477701B1 (en) * | 1999-09-30 | 2002-11-05 | Seiko Epson Corporation | Version-adaptive serialization and deserialization of program objects in an object-oriented environment |
US20010054172A1 (en) * | 1999-12-03 | 2001-12-20 | Tuatini Jeffrey Taihana | Serialization technique |
US6950866B1 (en) * | 2000-12-19 | 2005-09-27 | Novell, Inc. | XML-based integrated services parsing |
GB0107882D0 (en) * | 2001-03-29 | 2001-05-23 | Ibm | Parsing messages with multiple data formats |
US6898604B1 (en) * | 2001-06-29 | 2005-05-24 | Microsoft Corporation | XML serialization and deserialization |
US6880125B2 (en) * | 2002-02-21 | 2005-04-12 | Bea Systems, Inc. | System and method for XML parsing |
CA2381744A1 (en) * | 2002-04-15 | 2003-10-15 | Ibm Canada Limited-Ibm Canada Limitee | A parsing technique to respect textual language syntax and dialects dynamically |
CA2419904A1 (en) * | 2003-02-26 | 2004-08-26 | Ibm Canada Limited - Ibm Canada Limitee | Version-insensitive serialization and deserialization of program objects |
US8166053B2 (en) * | 2003-10-30 | 2012-04-24 | Ntt Docomo, Inc. | Method and apparatus for schema-driven XML parsing optimization |
US7207002B2 (en) * | 2003-11-13 | 2007-04-17 | International Business Machines Corporation | Serialization and preservation of objects |
US20070050704A1 (en) * | 2005-08-30 | 2007-03-01 | Erxiang Liu | XML compiler that will generate an application specific XML parser |
-
2006
- 2006-08-21 US US11/465,818 patent/US20080046874A1/en not_active Abandoned
-
2008
- 2008-05-30 US US12/130,208 patent/US8171395B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030182364A1 (en) * | 2002-03-14 | 2003-09-25 | Openwave Systems Inc. | Method and apparatus for requesting and performing batched operations for web services |
Cited By (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8336037B1 (en) * | 2006-05-17 | 2012-12-18 | Ross Richard A | JNI-minimizing data structures for XML parsing |
US20080320044A1 (en) * | 2007-06-22 | 2008-12-25 | Accenture S.P.A. | Messaging interface system |
US20090019455A1 (en) * | 2007-07-12 | 2009-01-15 | Accenture S.P.A. | Messaging interface system for serving a message to a target system |
US8060888B2 (en) | 2007-07-12 | 2011-11-15 | Accenture Global Services Limited | Messaging interface system for customer care |
US20090043697A1 (en) * | 2007-08-06 | 2009-02-12 | Jacobs Mitchell L | System and method for repaying an obligation |
US20090240694A1 (en) * | 2008-03-18 | 2009-09-24 | Nathan Blaine Jensen | Techniques for application data scrubbing, reporting, and analysis |
US8838652B2 (en) * | 2008-03-18 | 2014-09-16 | Novell, Inc. | Techniques for application data scrubbing, reporting, and analysis |
US9032390B2 (en) * | 2008-07-29 | 2015-05-12 | Qualcomm Incorporated | Framework versioning |
US20100162229A1 (en) * | 2008-07-29 | 2010-06-24 | Palm, Inc. | Framework versioning |
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 |
US9852116B2 (en) | 2008-09-30 | 2017-12-26 | Paypal, Inc. | System and method for processing messages using native data serialization/deserialization in a service-oriented pipeline architecture |
US9195527B2 (en) | 2008-09-30 | 2015-11-24 | Ebay Inc. | System and method for processing messages using native data serialization/deserialization in a service-oriented pipeline architecture |
US20100083281A1 (en) * | 2008-09-30 | 2010-04-01 | Malladi Sastry K | System and method for processing messages using a common interface platform supporting multiple pluggable data formats 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 |
US20100083277A1 (en) * | 2008-09-30 | 2010-04-01 | Malladi Sastry K | System and method for processing messages using native data serialization/deserialization in a service-oriented pipeline architecture |
US20100169469A1 (en) * | 2008-12-30 | 2010-07-01 | Malladi Sastry K | Request and response decoupling via pluggable transports in a service oriented pipeline architecture for a request response message exchange pattern |
US8656038B2 (en) | 2008-12-30 | 2014-02-18 | Ebay, Inc. | Request and response decoupling via pluggable transports in a service oriented pipeline architecture for a request response message exchange pattern |
US9264518B2 (en) | 2008-12-30 | 2016-02-16 | Ebay Inc. | Request and response decoupling via pluggable transports in a service oriented pipeline architecture for a request response message exchange |
US9848065B2 (en) | 2008-12-30 | 2017-12-19 | Ebay Inc. | Request and response decoupling via pluggable transports in a service oriented pipeline architecture for a request response message exchange pattern |
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 |
WO2015006075A1 (en) * | 2013-07-12 | 2015-01-15 | Ab Initio Technology Llc | Parser generation |
KR20160031519A (en) * | 2013-07-12 | 2016-03-22 | 아브 이니티오 테크놀로지 엘엘시 | Parser generation |
US9588956B2 (en) | 2013-07-12 | 2017-03-07 | Ab Initio Technology Llc | Parser generation |
AU2014287654B2 (en) * | 2013-07-12 | 2019-06-13 | Ab Initio Technology Llc | Parser generation |
KR102294522B1 (en) | 2013-07-12 | 2021-08-26 | 아브 이니티오 테크놀로지 엘엘시 | Parser generation |
US11367139B2 (en) * | 2019-01-15 | 2022-06-21 | Tangram Solutions LLC | Performance measurement and reporting for guaranteed income financial products and services |
US20220327626A1 (en) * | 2019-01-15 | 2022-10-13 | Tangram Solutions LLC | Performance measurement and reporting for guaranteed income financial products and services |
Also Published As
Publication number | Publication date |
---|---|
US20080229293A1 (en) | 2008-09-18 |
US8171395B2 (en) | 2012-05-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8171395B2 (en) | Data reporting application programming interfaces in an XML parser generator for XML validation and deserialization | |
US7694284B2 (en) | Shareable, bidirectional mechanism for conversion between object model and XML | |
US7941461B2 (en) | System and method for developing and enabling model-driven XML transformation framework for e-business | |
CA2479310C (en) | Dynamic generation of schema information for data description languages | |
US7945904B2 (en) | Embedding expression in XML literals | |
US9038036B2 (en) | Generation of source code and executable code from formal descriptions | |
US10303449B2 (en) | Compiling non-native constants | |
US7987454B2 (en) | System and method for emulating the processing of java server pages | |
US7130862B2 (en) | Methods, systems and computer program prodcuts for validation of XML instance documents using Java classloaders | |
US20070050707A1 (en) | Enablement of multiple schema management and versioning for application-specific xml parsers | |
US20150242191A1 (en) | Method for validating equivalent data structures | |
US9135035B2 (en) | Markup language integration at runtime | |
US20080184103A1 (en) | Generation of Application Specific XML Parsers Using Jar Files with Package Paths that Match the SML XPaths | |
US8756258B2 (en) | Generating references to reusable code in a schema | |
US10983771B1 (en) | Quality checking inferred types in a set of code | |
US20050081189A1 (en) | Aggregation of document elements into runtime code | |
US6785880B1 (en) | Tooling framework system and method for code generation | |
US20180081677A1 (en) | Using Annotation Processors Defined By Modules with Annotation Processors Defined By Non-Module Code | |
US20070050705A1 (en) | Method of xml element level comparison and assertion utilizing an application-specific parser | |
Rodriguez Yakushev et al. | Enumerating well-typed terms generically | |
Shatnawi et al. | Rapport de recherche Latece 2017-4 The Codification of Program Dependencies of JSP Custom Tag Libraries in JEE Applications | |
CN117519691B (en) | Application processing method, device, computer equipment and storage medium | |
Alam et al. | Modeling for dynamic aspect-oriented development | |
US20050027470A1 (en) | Interactive stub apparatus for testing a program and stub program storage medium | |
Dixon | Supporting component oriented development with reusable autonomous classes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KOSTOULAS, MARGARET GAITATZES;MATSA, MOSHE E.;MERCALDI, MARTHA A.;AND OTHERS;REEL/FRAME:018143/0251 Effective date: 20060816 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |
|
AS | Assignment |
Owner name: MIDWAY TECHNOLOGY COMPANY LLC, MICHIGAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:037704/0257 Effective date: 20151231 |
|
AS | Assignment |
Owner name: SERVICENOW, INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MIDWAY TECHNOLOGY COMPANY LLC;REEL/FRAME:038324/0816 Effective date: 20160324 |