Method and apparatus of streaming data transformation using code generator and translator
First Claim
1. A method of processing XML data, said method comprising:
- consuming a portion of an XML-encoded input data stream;
processing said consumed portion of an XML-encoded data stream based upon a transformation definition;
compiling at least one XSLT stylesheet, including performing an analysis of said at least one XSLT stylesheet, to determine whether at least some XML data to be processed in accordance with said at least one XSLT stylesheet can be processed in a streaming fashion;
outputting result data produced as a result of processing said consumed portion of an XML-encoded data stream on a processor according to said transformation definition before all of said XML-encoded input data stream has been consumed upon determining that the consumed portion of the XML-encoded data stream can be processed in a streaming fashion;
consuming the entire XML-encoded data stream and processing the consumed XML-encoded data stream on a processor using a non-streaming model upon determining that the consumed portion of the XML-encoded data stream cannot be processed in a streaming fashion.
2 Assignments
0 Petitions
Accused Products
Abstract
A high level transformation method and apparatus for converting data formats in the context of network applications, among other places. A flexible transformation mechanism is provided that facilitates generation of translation machine code. A translator is dynamically generated by a translator compiler engine. When fed an input stream, the translator generates an output stream by executing the native object code generated on the fly by the translator compiler engine. In addition, the translator may be configured to perform a bi-directional translation between the two streams as well as translation between two distinct protocol sequences. Further a translator may working in streaming mode, to facilitate streaming processing of documents.
-
Citations
27 Claims
-
1. A method of processing XML data, said method comprising:
-
consuming a portion of an XML-encoded input data stream; processing said consumed portion of an XML-encoded data stream based upon a transformation definition; compiling at least one XSLT stylesheet, including performing an analysis of said at least one XSLT stylesheet, to determine whether at least some XML data to be processed in accordance with said at least one XSLT stylesheet can be processed in a streaming fashion; outputting result data produced as a result of processing said consumed portion of an XML-encoded data stream on a processor according to said transformation definition before all of said XML-encoded input data stream has been consumed upon determining that the consumed portion of the XML-encoded data stream can be processed in a streaming fashion; consuming the entire XML-encoded data stream and processing the consumed XML-encoded data stream on a processor using a non-streaming model upon determining that the consumed portion of the XML-encoded data stream cannot be processed in a streaming fashion. - View Dependent Claims (2, 3, 4, 5, 6, 22, 23, 24, 25, 26, 27)
-
-
7. A method for transforming XML documents in streaming mode, said method comprising:
-
consuming a portion of an XML-encoded input data stream; processing said consumed portion of an XML-encoded data stream based upon a transformation definition; compiling at least one XSLT stylesheet, including performing an analysis of said at least one XSLT stylesheet related to at least one transformation definition, to determine whether at least some XML data to be processed in accordance with said at least one XSLT stylesheet can be processed in a streaming fashion; generating executable machine instructions based on said step of compiling at least one XSLT stylesheet upon determining that the portions of the XML documents are streamable, said executable machine instructions to transform XML documents; executing said executable machine instructions with aid of a streaming runtime process; and processing the XML documents on a processor using a document object model upon determining that the portions of the XML documents are not streamable. - View Dependent Claims (8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A network appliance device for performing streaming XML processing, comprising:
-
an input port to consume a portion of XML-encoded input data file; executable machine instructions generated by compiling a XSLT stylesheet, wherein said compilation includes analyzing a transformation definition to determine whether XML-encoded data processed by a processor in accordance with said transformation definition can be processed in streaming mode, said executable machine instructions coupled to said input port, to process said portion of an XML-encoded input data file; wherein upon determining that the portion XML-encoded input data file can be processed in streaming mode, said executable machine instructions processes said portion of an XML-encoded data file outputs result data before all of said XML-encoded input data file has been consumed by said input port. - View Dependent Claims (17, 18, 19)
-
-
20. An apparatus for streaming mode XML processing, said apparatus comprising:
-
a compiler configured to compile at least one XSLT stylesheet and to generate executable machine instructions from XML processing definition files, said executable machine instructions to process input XML data in streaming mode; an analyzer, operating in conjunction with the compiler, configured to perform an analysis of at least one XSLT stylesheet related to at least one transformation definition to determine if the input XML data can be processed in streaming mode; a push-mode XML parser configured to produce parse trees or parse events based on said input XML data; and a parse event distributor, to receive data from said push-mode XML parser and an out-of-order output buffering system to buffer output from processing said XML input data; and a processor to output result data produced as a result of processing said XML-encoded data stream according to said XSLT stylesheet before all of said XML-encoded input data stream has been processed upon determining that the processed portion of the XML-encoded data stream can be processed in a streaming fashion.
-
-
21. A computer implemented method for processing of XML data, comprising:
-
receiving a portion of an encoded XML-encoded input data stream; applying a transformation definition to the portion of the encoded XML-encoded input data stream, which includes executing a streaming compiling sequence, the streaming compiling sequence performing an analysis of at least one XSLT stylesheet related to the transformation definition in order to validate that the data from the portion of the encoded XML-encoded input data stream can be processed with respect to the XSLT stylesheet and can be stream processed on the fly; outputting an output data stream subsequent to the streaming compiling sequence upon validating that the data from the portion of the encoded XML-encoded input data stream can be stream processed on the fly, the output data stream representing the portion of the encoded XML-encoded input data stream transformed according to the transformation definition, the output data stream created before the encoded XML-encoded input data stream is received in its entirety; and processing the consumed XML-encoded data stream on a processor using a document object model upon validating that the data from the portion of the encoded XML-encoded input data stream cannot be stream processed on the fly.
-
Specification