US20100162102A1 - System and Method of Accelerating Document Processing - Google Patents
System and Method of Accelerating Document Processing Download PDFInfo
- Publication number
- US20100162102A1 US20100162102A1 US12/535,933 US53593309A US2010162102A1 US 20100162102 A1 US20100162102 A1 US 20100162102A1 US 53593309 A US53593309 A US 53593309A US 2010162102 A1 US2010162102 A1 US 2010162102A1
- Authority
- US
- United States
- Prior art keywords
- xml document
- xml
- document
- processing
- data
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/151—Transformation
- G06F40/154—Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/12—Use of codes for handling textual entities
- G06F40/14—Tree-structured documents
- G06F40/143—Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
Definitions
- the invention relates to a system and method for processing structured documents such as extended markup language (XML) documents.
- structured documents such as extended markup language (XML) documents.
- Extensible markup language is a data description language that provides a mechanism to represent structured data in way that retains the logical structure and interrelationship of the underlying data.
- data is represented as Unicode text using standardized markup syntax to express the structural information about that data.
- an XML document may be constructed to conform to a document type declaration (DTD).
- DTD is a formal description of a particular type of document. It sets forth what elements the particular type of document may contain, the structure of the elements, and the interrelationship of the elements.
- XML documents While XML is human readable, XML documents, particularly those which conform to a well-known or standardized DTD, provide a convenient means of data exchange between computer programs in general, and on the Internet in particular.
- XML's features, as well as the use of text and the structures encoded within the text make XML document processing processor intensive.
- XML processing may tend to consume so much of a server's processing power that the amount of processing power remaining to actually apply the XML data to the relevant application may be impacted.
- One embodiment is system for processing XML documents.
- the system includes a tokenizer configured to identify tokens in an XML document.
- the system further includes a plurality of speculative processing modules configured to receive the tokens and to at least partially process the XML document and to generate data indicative of the XML document.
- the system further includes a first module configured to receive the data indicative of the XML document and configured to perform further processing of the XML document using the data indicative of the XML document and configured to output the processed XML document.
- Each of the plurality of speculative processing modules is configured to asynchronously provide the data indicative of the XML document to the first module.
- Another embodiment includes a method of processing a document having structured data.
- the method includes determining a first indicator that identifies structure of a first document, determining at least one property of the first document, and storing the first indicator with the at least one property.
- the method further includes determining a second indicator that identifies structure of a second document, matching the second indicator to the first indicator, and retrieving the at least one property stored with the first indicator.
- Another embodiment is a content processor containing software defining a process which when executed causes the content processor to perform the acts of determining a first indicator that identifies structure of a first document having structured data, determining at least one property of the first document; and storing the first indicator with the at least one property.
- Another embodiment is a method of searching in structured documents.
- the method includes storing a plurality of isomorphic digest values in a data structure that associates each of the plurality of isomorphic digest values with data indicative of at least a portion of a respective hierarchical structure.
- the method further includes identifying a portion of an XML document. Said portion may comprise a hierarchical structure.
- the method further includes determining an isomorphic digest indicative of the portion.
- the method further includes identifying the isomorphic digest value with a stored one of the plurality of isomorphic digest values.
- the method further includes outputting the associated data indicative of the at least a portion of a respective hierarchical structure.
- Another embodiment is a method of transforming an XML document into a predetermined format.
- the method includes identifying at least a portion of the XML document that is noncompliant with the predetermined format.
- the method further includes transforming the portion of the XML document into compliance with the predetermined format using the one of the plurality of transformations and outputting the transformed portion of the XML document when the portion of the XML document can be transformed into compliance using at least one of plurality of transformations.
- the method further includes outputting data indicative of the portion of the XML document.
- Another embodiment is a system for transforming an XML document into a predetermined format.
- the system includes means for identifying a portion of the XML document that is noncompliant with the predetermined format, means for transforming the portion of the XML document into the predetermined format using at least one one of the plurality of transformations and providing the transformed portion when the XML document can be transformed into compliance using the at least one of plurality of a transformation, and means for outputting data indicative of the portion of the XML document when the XML document cannot be transformed into compliance using at least one of plurality of transformations.
- FIG. 1 is a block diagram illustrating an exemplary system for processing XML documents.
- FIG. 2 is a flowchart illustrating an exemplary method of using a system such as illustrated in FIG. 1 to identify and cache documents having substantially similar structures.
- FIG. 3 is a flowchart illustrating an exemplary method of using a system such as illustrated in FIG. 1 to define points of interest in XML documents.
- FIG. 4 is a flowchart illustrating an exemplary method of identifying points of interest, such as defined by the method of FIG. 3 , in a XML document.
- FIG. 5 is a flowchart illustrating an exemplary method of canonicalization processing of an XML document in a system such as illustrated in FIG. 1 ,
- FIG. 6 is a block diagram illustrating in more detail one embodiment of the system of FIG. 1 .
- Processing of XML documents is typically performed as set of sequential steps.
- the steps used in that sequence to process a particular document may vary with the content of the XML document.
- a system may first identify the type of document.
- data in a certain element of the XML document may be desired.
- the document may be more fully processed to, for example, resolve namespaces in the document to properly identify the desired data element.
- One way of improving processing performance is by using customized hardware to perform part of the XML processing.
- overall throughput of an XML document processing system in general, and applicability of hardware acceleration for such processing, in particular, can be improved by speculatively performing certain functions of processing XML documents in parallel upon receipt of such documents for processing.
- the data derived by the speculatively processed functions is available without delay for continued processing by other XML processing functions.
- XML documents in many applications are computer generated.
- Computer generated XML documents tend to have a very consistent structure from document to document, even though the actual data content itself varies.
- XML documents that describe an “employee,” e.g., produced to comply with a DTD that includes an “employee,” may be structurally identical, e.g., providing the same elements of each employee with the same structure and with the same order within the structure, with only the actual attribute values of each document varying.
- most XML documents received by a system for processing are in fact well formed, valid, designed against an available schema, in canonical XML form, and include namespaces that are known in advance.
- XML documents can be simplified and thus accelerated by assuming that documents are in such regular forms until data in the document shows otherwise.
- such documents can be processed more efficiently by identifying documents that share the structure of a previously processed document so that data structures or other data associated with the prior processing of structural data can be reused.
- FIG. 1 is a block diagram illustrating an exemplary system 100 for processing XML documents.
- the system 100 includes one or more processors in communication with memory and storage.
- the system 100 includes speculative processing modules 102 that process functions of an XML document received by the system 100 and provide data regarding those functions to an XML processing module 104 .
- one or more of the speculative processing modules 102 execute in parallel.
- the system 100 includes one or more general purpose processors and one or more content processors configured to execute software instructions for performing at least some of the functions attributed to the system 100 .
- the content processors may include general purpose microprocessors or other digital logic circuits, e.g., a programmable gate array (PGA) or an application specific integrated circuit (ASIC) configured to perform at least some of the functions attributed to the system 100 .
- the speculative processing modules 102 are executed in parallel on or more of the general purpose processors and/or the content processors. The speculative processing modules 102 perform particular functions in the processing of XML documents that may or may not be needed for any given document and provide that data asynchronously, e.g., without the data being requested, to the XML processing module 104 for further processing.
- the speculative processing modules 102 include one or more of a tokenizer 110 that processes XML documents into syntactic tokens, a well-formed document check module 111 that at least partially determines whether the XML document is well formed according to the XML specification, and a validator 112 that at least partially determines whether the XML document is valid.
- the tokenizer 110 may include hardware for performing tokenization such as described in U.S. patent application Ser. No. 10/831,956 entitled “SYSTEM AND METHOD OF TOKENIZING DOCUMENTS,” filed Apr. 26, 2004, and incorporated by reference in its entirety.
- the speculative processing modules 102 include a digest hashing module 114 that maintains a cache of data associated with XML documents having particular structures.
- the speculative processing modules 102 may also include a conformance engine 116 that determines whether a document conforms to a particular structure, and identifies data in the document that does so conform.
- the speculative processing modules 102 may also include a type inference module 120 that infers the types of attributes of processed XML documents.
- the speculative processing modules 102 include a canonicalization (C14N) module 118 that determines and whether an XML document is in a particular “canonical” form, such as the canonical XML form defined by the World Wide Web Consortium (W3C).
- the speculative processing modules 102 may also include a namespace resolution module 124 that resolves names within the XML document structure according to the proper namespace.
- an XML document is received by the system 100 for processing.
- Each of the speculative processing modules 102 processes the incoming XML document.
- each of the speculative processing modules 102 processes the XML document concurrently or in parallel using multiple processors and/or digital logic circuits.
- the results of the speculative processing are provided to the XML processing module 104 for further processing.
- processed data provided by the speculative processing modules 102 is available to the XML processing module 104 without further processing delay.
- the XML processing module 104 can obtain data already located in the document by the conformance engine 116 .
- the digest caching module 114 is configured to calculate a hash or digest value that identifies the structure of an XML document.
- the digest value is then stored in a data cache so as to identify cached data associated with the structure or other properties of the document.
- the cache is a hashtable that identifies the cached data with the respective digest value.
- the cached document properties may include data or data structures derived by processing the XML document.
- FIG. 2 is a flowchart illustrating an exemplary method 150 of using the system 100 to identify and cache documents having substantially similar structures.
- data obtained during processing of a first document is cached for later use while processing later received documents that have substantially the same XML structure.
- the method 150 begins at a block 152 in which the system 100 receives an XML document.
- the system 100 processes the XML document, e.g., performs initial tokenization and parsing, to determine the structure of the document.
- the digest caching module determines an isomorphic digest value indicative of the structure of the XML document.
- Two XML documents may be referred to as being isomorphic if the documents have the same structure.
- a digest value refers to a representation of the document in the form of a short string or numeric value such as calculated by a one-way or hash function.
- a hash table used to cache data may be limited by the effectiveness of the hash function for uniquely identifying the data being hashed.
- a cryptographic hash function e.g., SHA-1, is used to calculate the digest value for each document.
- An isomorphic digest value is thus a digest value that when calculated for two documents is the same if those two documents have the same structure and different if the two documents have different structure.
- the digest value for each document is calculated using a string that represents the structure of the document.
- the string is determined from the document by removing all whitespace, comments, attribute values, and node text values. Additional symbols may be placed within the string to disambiguate elements from attributes.
- Namespace declarations may include the Uniform Resource Identifier (URI) of the namespace. See Table 1 for an example document and structure string.
- URI Uniform Resource Identifier
- the digest caching module 114 looks up the digest value of the current document in the cache to determine whether its digest value is stored in the cache.
- the cache includes a hashtable that uses digest values as hash keys for identifying cached data. If cached data is identified with the digest value of the current document, the method 150 proceeds to a block 162 in which the cached data, or a pointer to the cached data, is retrieved and provided to other components of the system 100 for use in processing the current XML document.
- the system 100 processes the current XML document, using the cached data.
- the method 150 proceeds to the block 164 , in which the current XML document is processed without benefit of any cached data.
- the digest caching module 114 stores suitable data obtained in processing the document 164 in the cache and identifies that data with the digest value.
- the hash table stores a pointer to the data at the entry in the hash table for the digest value in order to identify the data with the digest value.
- FIG. 3 is a flowchart illustrating an exemplary method 170 of using the system 100 to define points of interest in XML documents.
- the conformance engine 116 is configured to identify points of interest in the structure of an XML document, e.g., to determine whether the document conforms to a particular form. The conformance engine 116 thus searches in parallel for all identified points of interest that may be in the document as the document is processed.
- the conformance engine 116 maintains a data structure, embodied as a conformance table, for identifying particular XML document structures that have been defined by, e.g., a user of the system 100 , as a point of interest.
- the conformance table is a hash table.
- the structure of each point of interest is stored in the hash table according to its digest value.
- each structure above the point of interest in the hierarchy of the document's structure is also stored in the conformance table. For example, returning to the example in Table 1, the structure of a particular example document can be represented as a string:
- hash values for each of the structures that are above “e5” in the hierarchical document structure,i.e., its “parent” structures, of “ ⁇ doc>,” and “ ⁇ doc> ⁇ e1>” along with the structure of the point of interest, “ ⁇ doc> ⁇ e1> ⁇ e5>” are stored in the table along with corresponding data.
- the corresponding data for parent structures “ ⁇ doc>” and “ ⁇ doc> ⁇ e1>” may include a “further processing” token.
- the corresponding data for the actual point of interest structure may include a particular token identifying the point of interest, e.g., a numeric code that, for example, indexes a table containing other data relating to a defined group of points of interest.
- the corresponding data includes a pointer to a data structure containing further information about the point of interest.
- the corresponding data may include a pointer to instructions that are executed upon identifying the point of interest.
- the method 170 of generating the entries for a particular point of interest in the conformance table begins at a block 172 in which the conformance engine 116 receives a nested structure identifying a point of interest;
- the levels of nested structure may be referred to by a number from 1 to N, with the level 1 being associated with the top most level of the structure and level N being associated with the most deeply nested level of structure.
- the conformance engine 116 determines a digest value for each level of the structure.
- the hash value is calculated using a cryptographic hash function such as SHA-1.
- the conformance engine 116 identifies the digest values for each of the structure levels, except for the full structure, N, with a “further processing” indicator or token.
- the conformance engine 116 identifies the digest values with the structure levels by storing the further processing token in a hash table using the digest value as the hash key.
- the hash table may include entries associating the structure strings “ ⁇ doc>” and “ ⁇ doc> ⁇ e1>” with the “further processing” token.
- the conformance engine 116 determines the digest value of the full structure of the point of interest, e.g., structure level N, with data for processing the point of interest.
- the conformance engine 116 stores the data in a hash table using the digest value of the structure string as the hash key.
- the data for processing the point of interest includes data identifying the point of interest, such as a token or numeric reference indicator associated with the point of interest.
- the conformance engine stores in the conformance table one or more pointers to data associated with the point of interest.
- the pointers may include a pointer to executable instructions for processing the point of interest. For example, the conformance engine 116 calculates the hash key for the string “ ⁇ doc> ⁇ e1> ⁇ e5>” and stores a pointer in the hash table to data obtained in the processing of the exemplary document.
- FIG. 4 is a flowchart illustrating an exemplary method 180 of identifying points of interest, such as defined by the method 170 , in a XML document that is being processed.
- the conformance engine 116 receives a portion of the document structure, e.g., the top level structure in an XML document.
- the conformance engine 116 determines an isomorphic digest value indicative of the portion of the document structure.
- the digest value is a calculated using a hash function, e.g., a cryptographic hash such as SHA-1.
- the conformance engine 116 calculates a hash value for the structure string “ ⁇ doc>” associated with this substructure.
- the conformance engine 116 determines whether the hash key for the current portion of the structure has been stored. Continuing with the example from Table 1, as discussed with reference to FIG. 3 , the conformance engine 116 retrieves a “further processing” token from the hash table for the hash key of the string “ ⁇ doc>”. If the conformance engine 116 identifies any data, e.g., finds the data in the hash table, with the digest value of the current portion of the structure, the method 180 proceeds to a block 186 . If, in the block 184 , the conformance engine 116 fails to identifies any data, e.g., the digest value is not in the hash table, the method 180 proceeds to an end state and the conformance engine finishes processing of the portion of the structure.
- the conformance engine 116 determines whether the data identified with the digest value denotes further processing, for example, whether the data includes the “further processing” token. If further processing is indicated, the method 180 proceeds to a block 188 . If no further processing is indicated, the method 180 proceeds to a block 190 . Returning to the block 188 , the conformance engine 116 receives data regarding further structure of the document, e.g., the next deeper level of nested structure (“ ⁇ doc> ⁇ e1>” in the example of Table 1). In one embodiment, the conformance engine 116 receives one or more tokens until the next level of structure of the current XML document is defined. Next, the method 180 proceeds back to the block 182 to process this next level of structure.
- the conformance engine 116 receives data regarding further structure of the document, e.g., the next deeper level of nested structure (“ ⁇ doc> ⁇ e1>” in the example of Table 1). In one embodiment, the conformance engine 116 receives one or more tokens until the next level
- the conformance engine 116 returns data indicative of the located point of interest in the document.
- the data includes a token associated with the point of interest in the document.
- the conformance engine 116 outputs the token indicating the presence of the particular point of interest to the XML processing module 104 .
- the data includes a pointer to executable instructions for processing the point of interest.
- the conformance engine 116 executes these instructions.
- the conformance engine 116 provides the pointer to the executable instruction to the XML processing module 104 for execution.
- W3C canonicalization (C14N) of XML includes generating a form for an XML document in which certain differences in representation have been removed, for example, converting empty elements to start-end tag pairs, normalizing whitespace outside of document elements and within start and end tags, setting attribute value delimiters to quotation marks (double quotes), adding default attributes to each element, and imposing lexicographic order on the namespace declarations and attributes of each element within the output XML document.
- the content of two or more documents in canonical XML form can be more easily compared to each other than can documents not in canonical form in order to determine when such documents include equivalent content. Because such documents do not include all possible syntactic constructions in XML, such documents can also be easier to process.
- One canonical XML format is defined by the World Wide Web Consortium, e.g., “Canonical XML, Version 1.0 (Mar. 15, 2001) available at www.w3c.org.
- Methods for fully performing C14N processing may be performed in hardware using an ASIC or a gate array. Such a hardware solution may not be cost effective due to the complexity of full C14N processing. However, by performing only selected portions of the C14N processing in hardware logic, C14N processing can be substantially accelerated.
- FIG. 5 is a flowchart illustrating an exemplary method 200 of canonicalization processing of an XML document by, for example, the canonicalization module (C14N module) 118 .
- the C14N module 118 receives each token in the XML document from the tokenizer 110 and processes the token according to the method 200 .
- the C14N module 118 includes a processor programmed to perform at least a portion of the method 200 .
- the C14N module includes hardware logic configured to perform at least a portion of the method 200 .
- the method 200 begins at a block 202 in which the C14N module 118 identifies, based on one or more recent tokens, that the document is not in C14N form.
- the C14N module 118 determines whether the non-C14N form can be corrected by one of a set of simple transformations.
- Such simple transformations include extra whitespace in the document.
- the simple transformations include transformations of the document that can be performed efficiently by hardware logic such as in a PGA. If the transformation is a simple transformation, the method 180 proceeds to block 206 in which the C14N module 118 performs the simple transformation.
- Such simple transformations may include discarding extra whitespace (white space in excess of that defined for canonical form) in the document or encoding special characters. If the transformation is not a simple transformation, the method 180 proceeds to a block 208 .
- the C14N module outputs a token noting the presence, location, and other details of the non-canonical form. For example, transformations such as changing the order of elements to be in canonical lexicographic ordering may be performed in software after the entire document is processed.
- the C14N module 118 includes software for performing such non-simple transformations.
- the C14N module 118 performs only the simple transformations, in hardware logic, during the initial speculative processing of the document. In one such embodiment, the C14N module 118 processes the outputted tokens to more fully place the document in C14N form after the speculative processing phase.
- the system 100 may speculatively perform any number of XML processing functions depending on the amount of system resources that are available and the particular application.
- One such function may include making type inferences using the type inference module 120 .
- the type inference module 120 evaluates each attribute of each element in an XML document and returns a list of possible types for each token. For example, for an attribute value containing “1” the possible types may include boolean (with a value corresponding to “true”) and integer (with a value corresponding to the number 1). In one embodiment, this processing is performed speculatively, e.g., before the need for such data is identified for a particular document, and in hardware logic.
- Later processing of the XML document can thus be accelerated by having attribute data at least partially processed.
- attribute data For example, because the data of each attribute is processed for each possible type, another component of the system 100 can quickly and efficiently bind the values to a strongly typed (e.g., C or C++) data structure.
- a strongly typed e.g., C or C++
- the namespace resolution module 124 performs namespace resolution of names in the XML document speculatively, e.g., before the need for such data is identified for a particular document, and in hardware logic, so as to reduce the overall time to process each document.
- FIG. 6 is a block diagram illustrating one embodiment of the system 100 .
- the exemplary system 100 includes a processor 302 operably connected to a network interface 304 and a memory 306 .
- the processor 302 is also connected to a content processor 310 .
- the content processor 310 includes a processor 312 .
- the content processor 310 includes a logic circuit 314 .
- the content processor 310 may also include a memory 316 .
- the content processor 310 is embodied as an ASIC or a PGA.
- embodiments of the invention overcome many of the longstanding problems in the art by simplifying XML processing so that such processing can be further accelerated using hardware.
- numerous XML processing functions can be performed in parallel in hardware in advance so that data from these functions is nearly instantly available to later processing functions.
- Overall XML processing system throughput and latency can thus be improved.
- each of the modules described above may include various sub-routines, procedures, definitional statements and macros.
- Each of the modules may be separately compiled and linked into a single executable program.
- the description of each of the modules is used for convenience to describe the functionality of one embodiment of a system.
- the processes that are performed by each of the modules may be redistributed to one of the other modules, combined together in a single module, or made available in, for example, a shareable dynamic link library.
- the modules may be executed concurrently or in parallel as distinct threads or processes.
- the modules may be produced using any computer language or environment, including general-purpose languages such as C, Java, C++, or FORTRAN.
- the functions described with respect to the modules may be performed, in all or in part, by either the general purpose processor 302 or the content processor 310 of FIG. 6 .
Abstract
Embodiments include methods and systems for processing XML documents. One embodiment is a system that includes a tokenizer configured to identify tokens in an XML document. A plurality of speculative processing modules are configured to receive the tokens and to at least partially process the XML document and to provide data indicative of the XML document. A first module is configured to perform further processing of the XML document using the data indicative of the XML document and configured to output the processed XML document. Each of the plurality of speculative processing modules is configured to asynchronously provide the data indicative of the XML document to the first module. Other embodiments include method and systems for performing the speculative processing.
Description
- 1. Field of the Invention
- The invention relates to a system and method for processing structured documents such as extended markup language (XML) documents.
- 2. Description of the Related Technology
- Extensible markup language (XML) is a data description language that provides a mechanism to represent structured data in way that retains the logical structure and interrelationship of the underlying data. In XML, data is represented as Unicode text using standardized markup syntax to express the structural information about that data. In brief, XML syntax includes tags (a string bracketed by ‘<’ and ‘>’) and attributes (syntax of the form attribute_name=“value”). The particular tags and attributes used in a document may be selected with reference to the type of data that is represented by a particular document. Moreover, an XML document may be constructed to conform to a document type declaration (DTD). A DTD is a formal description of a particular type of document. It sets forth what elements the particular type of document may contain, the structure of the elements, and the interrelationship of the elements.
- While XML is human readable, XML documents, particularly those which conform to a well-known or standardized DTD, provide a convenient means of data exchange between computer programs in general, and on the Internet in particular. However, many of XML's features, as well as the use of text and the structures encoded within the text, make XML document processing processor intensive. Thus, in systems that exchange a high volume of XML data, e.g., e-commerce systems that process XML encoded security data, XML processing may tend to consume so much of a server's processing power that the amount of processing power remaining to actually apply the XML data to the relevant application may be impacted. One solution to this problem is to offload processing of XML queries to dedicated content processors that employ hardware specifically configured to process XML. However, the memory and processor requirements associated with XML processing have limited the cost effective implementation of content processing for XML queries. Thus, simpler, yet resource efficient systems and methods of processing XML documents are needed.
- The system, method, and devices of the invention each have several aspects, no single one of which is solely responsible for its desirable attributes. Without limiting the scope of this invention as expressed by the claims which follow, its more prominent features will now be discussed briefly. After considering this discussion, and particularly after reading the section entitled “Detailed Description of Certain Embodiments” one will understand how the features of this invention provide advantages that include faster and more efficient processing of XML documents.
- One embodiment is system for processing XML documents. The system includes a tokenizer configured to identify tokens in an XML document. The system further includes a plurality of speculative processing modules configured to receive the tokens and to at least partially process the XML document and to generate data indicative of the XML document. The system further includes a first module configured to receive the data indicative of the XML document and configured to perform further processing of the XML document using the data indicative of the XML document and configured to output the processed XML document. Each of the plurality of speculative processing modules is configured to asynchronously provide the data indicative of the XML document to the first module.
- Another embodiment includes a method of processing a document having structured data. The method includes determining a first indicator that identifies structure of a first document, determining at least one property of the first document, and storing the first indicator with the at least one property. In one embodiment, the method further includes determining a second indicator that identifies structure of a second document, matching the second indicator to the first indicator, and retrieving the at least one property stored with the first indicator.
- Another embodiment is a content processor containing software defining a process which when executed causes the content processor to perform the acts of determining a first indicator that identifies structure of a first document having structured data, determining at least one property of the first document; and storing the first indicator with the at least one property.
- Another embodiment is a method of searching in structured documents. The method includes storing a plurality of isomorphic digest values in a data structure that associates each of the plurality of isomorphic digest values with data indicative of at least a portion of a respective hierarchical structure. The method further includes identifying a portion of an XML document. Said portion may comprise a hierarchical structure. The method further includes determining an isomorphic digest indicative of the portion. The method further includes identifying the isomorphic digest value with a stored one of the plurality of isomorphic digest values. The method further includes outputting the associated data indicative of the at least a portion of a respective hierarchical structure.
- Another embodiment is a method of transforming an XML document into a predetermined format. The method includes identifying at least a portion of the XML document that is noncompliant with the predetermined format. The method further includes transforming the portion of the XML document into compliance with the predetermined format using the one of the plurality of transformations and outputting the transformed portion of the XML document when the portion of the XML document can be transformed into compliance using at least one of plurality of transformations. When the portion of the XML document cannot be transformed into compliance using at least one of plurality of transformations, the method further includes outputting data indicative of the portion of the XML document.
- Another embodiment is a system for transforming an XML document into a predetermined format. The system includes means for identifying a portion of the XML document that is noncompliant with the predetermined format, means for transforming the portion of the XML document into the predetermined format using at least one one of the plurality of transformations and providing the transformed portion when the XML document can be transformed into compliance using the at least one of plurality of a transformation, and means for outputting data indicative of the portion of the XML document when the XML document cannot be transformed into compliance using at least one of plurality of transformations.
-
FIG. 1 is a block diagram illustrating an exemplary system for processing XML documents. -
FIG. 2 is a flowchart illustrating an exemplary method of using a system such as illustrated inFIG. 1 to identify and cache documents having substantially similar structures. -
FIG. 3 is a flowchart illustrating an exemplary method of using a system such as illustrated inFIG. 1 to define points of interest in XML documents. -
FIG. 4 is a flowchart illustrating an exemplary method of identifying points of interest, such as defined by the method ofFIG. 3 , in a XML document. -
FIG. 5 is a flowchart illustrating an exemplary method of canonicalization processing of an XML document in a system such as illustrated inFIG. 1 , -
FIG. 6 is a block diagram illustrating in more detail one embodiment of the system ofFIG. 1 . - The following detailed description is directed to certain specific embodiments of the invention. However, the invention can be embodied in a multitude of different ways as defined and covered by the claims. In this description, reference is made to the drawings wherein like pails are designated with like numerals throughout.
- Processing of XML documents is typically performed as set of sequential steps. The steps used in that sequence to process a particular document may vary with the content of the XML document. For example, after receiving an XML document, a system may first identify the type of document. For a particular type of document, data in a certain element of the XML document may be desired. Thus, the document may be more fully processed to, for example, resolve namespaces in the document to properly identify the desired data element.
- One way of improving processing performance is by using customized hardware to perform part of the XML processing. For example, overall throughput of an XML document processing system, in general, and applicability of hardware acceleration for such processing, in particular, can be improved by speculatively performing certain functions of processing XML documents in parallel upon receipt of such documents for processing. As such documents are further processed, the data derived by the speculatively processed functions is available without delay for continued processing by other XML processing functions.
- Moreover, XML documents in many applications are computer generated. Computer generated XML documents tend to have a very consistent structure from document to document, even though the actual data content itself varies. For example, XML documents that describe an “employee,” e.g., produced to comply with a DTD that includes an “employee,” may be structurally identical, e.g., providing the same elements of each employee with the same structure and with the same order within the structure, with only the actual attribute values of each document varying. More generally, most XML documents received by a system for processing are in fact well formed, valid, designed against an available schema, in canonical XML form, and include namespaces that are known in advance. Thus, the overall processing performance of XML documents can be simplified and thus accelerated by assuming that documents are in such regular forms until data in the document shows otherwise. In particular, such documents can be processed more efficiently by identifying documents that share the structure of a previously processed document so that data structures or other data associated with the prior processing of structural data can be reused.
-
FIG. 1 is a block diagram illustrating anexemplary system 100 for processing XML documents. In one embodiment, thesystem 100 includes one or more processors in communication with memory and storage. Thesystem 100 includesspeculative processing modules 102 that process functions of an XML document received by thesystem 100 and provide data regarding those functions to anXML processing module 104. In one embodiment, one or more of thespeculative processing modules 102 execute in parallel. In one embodiment, thesystem 100 includes one or more general purpose processors and one or more content processors configured to execute software instructions for performing at least some of the functions attributed to thesystem 100. In one embodiment, the content processors may include general purpose microprocessors or other digital logic circuits, e.g., a programmable gate array (PGA) or an application specific integrated circuit (ASIC) configured to perform at least some of the functions attributed to thesystem 100. In one embodiment, thespeculative processing modules 102 are executed in parallel on or more of the general purpose processors and/or the content processors. Thespeculative processing modules 102 perform particular functions in the processing of XML documents that may or may not be needed for any given document and provide that data asynchronously, e.g., without the data being requested, to theXML processing module 104 for further processing. However, by performing portions of the processing in parallel and asynchronously, overall processing time, e.g., system latency, of XML documents can be decreased as compared to serial processing where particular functions of processing are performed only as needed. Moreover, by selecting suitable functions to perform speculatively, such functions can be implemented in hardware to further improve performance. - In one embodiment, the
speculative processing modules 102 include one or more of a tokenizer 110 that processes XML documents into syntactic tokens, a well-formeddocument check module 111 that at least partially determines whether the XML document is well formed according to the XML specification, and avalidator 112 that at least partially determines whether the XML document is valid. In one embodiment, the tokenizer 110 may include hardware for performing tokenization such as described in U.S. patent application Ser. No. 10/831,956 entitled “SYSTEM AND METHOD OF TOKENIZING DOCUMENTS,” filed Apr. 26, 2004, and incorporated by reference in its entirety. In addition, U.S. patent application Ser. No. 10/774,663, filed Jul. 2, 2004, which is hereby incorporated by reference in its entirety, describes one embodiment of the validator 112 that identifies documents that are not well-formed by using statistics obtained by, for example, the tokenizer 110. - In one embodiment, the
speculative processing modules 102 include a digesthashing module 114 that maintains a cache of data associated with XML documents having particular structures. Thespeculative processing modules 102 may also include aconformance engine 116 that determines whether a document conforms to a particular structure, and identifies data in the document that does so conform. - The
speculative processing modules 102 may also include atype inference module 120 that infers the types of attributes of processed XML documents. In one embodiment, thespeculative processing modules 102 include a canonicalization (C14N)module 118 that determines and whether an XML document is in a particular “canonical” form, such as the canonical XML form defined by the World Wide Web Consortium (W3C). Thespeculative processing modules 102 may also include anamespace resolution module 124 that resolves names within the XML document structure according to the proper namespace. - In operation, an XML document is received by the
system 100 for processing. Each of thespeculative processing modules 102 processes the incoming XML document. In one embodiment, each of thespeculative processing modules 102 processes the XML document concurrently or in parallel using multiple processors and/or digital logic circuits. The results of the speculative processing are provided to theXML processing module 104 for further processing. As theXML processing module 104 proceeds with processing, processed data provided by thespeculative processing modules 102 is available to theXML processing module 104 without further processing delay. For example, theXML processing module 104 can obtain data already located in the document by theconformance engine 116. - In one embodiment, the digest
caching module 114 is configured to calculate a hash or digest value that identifies the structure of an XML document. The digest value is then stored in a data cache so as to identify cached data associated with the structure or other properties of the document. In one embodiment, the cache is a hashtable that identifies the cached data with the respective digest value. The cached document properties may include data or data structures derived by processing the XML document. When a second XML document is received having the same structure, and thus the same digest value as the first XML document in the cache, the cached data may be used to process the second document without requiring additional processing time to derive the cached data. -
FIG. 2 is a flowchart illustrating anexemplary method 150 of using thesystem 100 to identify and cache documents having substantially similar structures. In one embodiment, data obtained during processing of a first document is cached for later use while processing later received documents that have substantially the same XML structure. Themethod 150 begins at ablock 152 in which thesystem 100 receives an XML document. Next at ablock 154, thesystem 100 processes the XML document, e.g., performs initial tokenization and parsing, to determine the structure of the document. Moving to ablock 156, the digest caching module determines an isomorphic digest value indicative of the structure of the XML document. Two XML documents may be referred to as being isomorphic if the documents have the same structure. A digest value refers to a representation of the document in the form of a short string or numeric value such as calculated by a one-way or hash function. Generally, the effectiveness of a hash table used to cache data may be limited by the effectiveness of the hash function for uniquely identifying the data being hashed. In one embodiment, a cryptographic hash function, e.g., SHA-1, is used to calculate the digest value for each document. By using such a hash function, there is no reasonable likelihood that two different structures hash to the same value. - An isomorphic digest value is thus a digest value that when calculated for two documents is the same if those two documents have the same structure and different if the two documents have different structure. In one embodiment, the digest value for each document is calculated using a string that represents the structure of the document. In one embodiment, the string is determined from the document by removing all whitespace, comments, attribute values, and node text values. Additional symbols may be placed within the string to disambiguate elements from attributes. Namespace declarations may include the Uniform Resource Identifier (URI) of the namespace. See Table 1 for an example document and structure string.
-
TABLE 1 Document <doc> <e1> <e5></e5> </e1> <e2></e2> <e3 attr1=“attr1value”></e3> <e4 attr1=“attr1value”></e4> </doc> Structure <doc><e1><e5></e1><e2><e3#attr1><e4#attr2></doc> - Proceeding to a
block 160, the digestcaching module 114 looks up the digest value of the current document in the cache to determine whether its digest value is stored in the cache. In one embodiment, the cache includes a hashtable that uses digest values as hash keys for identifying cached data. If cached data is identified with the digest value of the current document, themethod 150 proceeds to ablock 162 in which the cached data, or a pointer to the cached data, is retrieved and provided to other components of thesystem 100 for use in processing the current XML document. Next at ablock 164, thesystem 100 processes the current XML document, using the cached data. Referring again to theblock 160, if no cache data is identified with the digest value, themethod 150 proceeds to theblock 164, in which the current XML document is processed without benefit of any cached data. Next at ablock 166, the digestcaching module 114 stores suitable data obtained in processing thedocument 164 in the cache and identifies that data with the digest value. In one embodiment, the hash table stores a pointer to the data at the entry in the hash table for the digest value in order to identify the data with the digest value. -
FIG. 3 is a flowchart illustrating anexemplary method 170 of using thesystem 100 to define points of interest in XML documents. In particular, in one embodiment, theconformance engine 116 is configured to identify points of interest in the structure of an XML document, e.g., to determine whether the document conforms to a particular form. Theconformance engine 116 thus searches in parallel for all identified points of interest that may be in the document as the document is processed. In one embodiment, theconformance engine 116 maintains a data structure, embodied as a conformance table, for identifying particular XML document structures that have been defined by, e.g., a user of thesystem 100, as a point of interest. In one embodiment, the conformance table is a hash table. In one embodiment, the structure of each point of interest is stored in the hash table according to its digest value. In addition, in order to facilitate processing of the structure of the document in a top down fashion as each level of structure is encountered, each structure above the point of interest in the hierarchy of the document's structure is also stored in the conformance table. For example, returning to the example in Table 1, the structure of a particular example document can be represented as a string: - “<doc><e1><e5></e1><e2><e3#attr1><e4#attr2></doc>.”
- If the “e5” element represents a point of interest, then hash values for each of the structures that are above “e5” in the hierarchical document structure,i.e., its “parent” structures, of “<doc>,” and “<doc><e1>” along with the structure of the point of interest, “<doc><e1><e5>” are stored in the table along with corresponding data. In one embodiment, the corresponding data for parent structures “<doc>” and “<doc><e1>” may include a “further processing” token. The corresponding data for the actual point of interest structure, “<doc><e1><e5>,” may include a particular token identifying the point of interest, e.g., a numeric code that, for example, indexes a table containing other data relating to a defined group of points of interest. In one embodiment, the corresponding data includes a pointer to a data structure containing further information about the point of interest. In another embodiment, the corresponding data may include a pointer to instructions that are executed upon identifying the point of interest.
- The
method 170 of generating the entries for a particular point of interest in the conformance table begins at ablock 172 in which theconformance engine 116 receives a nested structure identifying a point of interest; For convenience of description, the levels of nested structure may be referred to by a number from 1 to N, with thelevel 1 being associated with the top most level of the structure and level N being associated with the most deeply nested level of structure. For example, using the example document of Table 1 and the example point of interest at “<doc><e1><e5>”, the “<doc> level may be identified aslevel 1, the “<e1>” entity as level 2 and the “<e5>” entity as level 3, with N=3. - Next at a
block 174, theconformance engine 116 determines a digest value for each level of the structure. In one embodiment, theconformance engine 116 calculates a hash value for the string indicative of each level of structure. For example, a hash value may be calculated for “<doc><e1><e5>” at level N=3, the “<doc><e1>” at level 2 and “<doc>” atlevel 1. In one embodiment, the hash value is calculated using a cryptographic hash function such as SHA-1. - Proceeding to a
block 176, theconformance engine 116 identifies the digest values for each of the structure levels, except for the full structure, N, with a “further processing” indicator or token. In one embodiment, theconformance engine 116 identifies the digest values with the structure levels by storing the further processing token in a hash table using the digest value as the hash key. For example, continuing with the example of Table 1, the hash table may include entries associating the structure strings “<doc>” and “<doc><e1>” with the “further processing” token. - Next at a
block 178, theconformance engine 116 determines the digest value of the full structure of the point of interest, e.g., structure level N, with data for processing the point of interest. In one embodiment, theconformance engine 116 stores the data in a hash table using the digest value of the structure string as the hash key. In one embodiment, the data for processing the point of interest includes data identifying the point of interest, such as a token or numeric reference indicator associated with the point of interest. In another embodiment, the conformance engine stores in the conformance table one or more pointers to data associated with the point of interest. In one embodiment, the pointers may include a pointer to executable instructions for processing the point of interest. For example, theconformance engine 116 calculates the hash key for the string “<doc><e1><e5>” and stores a pointer in the hash table to data obtained in the processing of the exemplary document. -
FIG. 4 is a flowchart illustrating anexemplary method 180 of identifying points of interest, such as defined by themethod 170, in a XML document that is being processed. Beginning at ablock 182, theconformance engine 116 receives a portion of the document structure, e.g., the top level structure in an XML document. Theconformance engine 116 determines an isomorphic digest value indicative of the portion of the document structure. In one embodiment, the digest value is a calculated using a hash function, e.g., a cryptographic hash such as SHA-1. For example, after receiving the “<doc>” top-level element of a document, theconformance engine 116 calculates a hash value for the structure string “<doc>” associated with this substructure. Next atblock 184, theconformance engine 116 determines whether the hash key for the current portion of the structure has been stored. Continuing with the example from Table 1, as discussed with reference toFIG. 3 , theconformance engine 116 retrieves a “further processing” token from the hash table for the hash key of the string “<doc>”. If theconformance engine 116 identifies any data, e.g., finds the data in the hash table, with the digest value of the current portion of the structure, themethod 180 proceeds to ablock 186. If, in theblock 184, theconformance engine 116 fails to identifies any data, e.g., the digest value is not in the hash table, themethod 180 proceeds to an end state and the conformance engine finishes processing of the portion of the structure. - Moving to the
block 186, theconformance engine 116 determines whether the data identified with the digest value denotes further processing, for example, whether the data includes the “further processing” token. If further processing is indicated, themethod 180 proceeds to ablock 188. If no further processing is indicated, themethod 180 proceeds to ablock 190. Returning to theblock 188, theconformance engine 116 receives data regarding further structure of the document, e.g., the next deeper level of nested structure (“<doc><e1>” in the example of Table 1). In one embodiment, theconformance engine 116 receives one or more tokens until the next level of structure of the current XML document is defined. Next, themethod 180 proceeds back to theblock 182 to process this next level of structure. - Returning to the
block 190, as no further processing is indicated, theconformance engine 116 returns data indicative of the located point of interest in the document. In one embodiment, the data includes a token associated with the point of interest in the document. Theconformance engine 116 outputs the token indicating the presence of the particular point of interest to theXML processing module 104. In another embodiment, the data includes a pointer to executable instructions for processing the point of interest. In one embodiment, theconformance engine 116 executes these instructions. In another embodiment, theconformance engine 116 provides the pointer to the executable instruction to theXML processing module 104 for execution. - Generally, it is possible for XML documents which are equivalent for the purposes of many applications to differ in physical representation. For example, such XML documents may differ in their entity structure, attribute ordering, and character encoding. W3C canonicalization (C14N) of XML includes generating a form for an XML document in which certain differences in representation have been removed, for example, converting empty elements to start-end tag pairs, normalizing whitespace outside of document elements and within start and end tags, setting attribute value delimiters to quotation marks (double quotes), adding default attributes to each element, and imposing lexicographic order on the namespace declarations and attributes of each element within the output XML document. The content of two or more documents in canonical XML form can be more easily compared to each other than can documents not in canonical form in order to determine when such documents include equivalent content. Because such documents do not include all possible syntactic constructions in XML, such documents can also be easier to process. One canonical XML format is defined by the World Wide Web Consortium, e.g., “Canonical XML, Version 1.0 (Mar. 15, 2001) available at www.w3c.org. Methods for fully performing C14N processing may be performed in hardware using an ASIC or a gate array. Such a hardware solution may not be cost effective due to the complexity of full C14N processing. However, by performing only selected portions of the C14N processing in hardware logic, C14N processing can be substantially accelerated.
-
FIG. 5 is a flowchart illustrating anexemplary method 200 of canonicalization processing of an XML document by, for example, the canonicalization module (C14N module) 118. In operation, theC14N module 118 receives each token in the XML document from the tokenizer 110 and processes the token according to themethod 200. In one embodiment, theC14N module 118 includes a processor programmed to perform at least a portion of themethod 200. In one embodiment, the C14N module includes hardware logic configured to perform at least a portion of themethod 200. - The
method 200 begins at ablock 202 in which theC14N module 118 identifies, based on one or more recent tokens, that the document is not in C14N form. Moving to ablock 204, theC14N module 118 determines whether the non-C14N form can be corrected by one of a set of simple transformations. Such simple transformations include extra whitespace in the document. In one embodiment, the simple transformations include transformations of the document that can be performed efficiently by hardware logic such as in a PGA. If the transformation is a simple transformation, themethod 180 proceeds to block 206 in which theC14N module 118 performs the simple transformation. Such simple transformations may include discarding extra whitespace (white space in excess of that defined for canonical form) in the document or encoding special characters. If the transformation is not a simple transformation, themethod 180 proceeds to ablock 208. At theblock 208, the C14N module outputs a token noting the presence, location, and other details of the non-canonical form. For example, transformations such as changing the order of elements to be in canonical lexicographic ordering may be performed in software after the entire document is processed. In one embodiment, theC14N module 118 includes software for performing such non-simple transformations. In one embodiment, theC14N module 118 performs only the simple transformations, in hardware logic, during the initial speculative processing of the document. In one such embodiment, theC14N module 118 processes the outputted tokens to more fully place the document in C14N form after the speculative processing phase. - The
system 100 may speculatively perform any number of XML processing functions depending on the amount of system resources that are available and the particular application. One such function may include making type inferences using thetype inference module 120. In one embodiment, thetype inference module 120 evaluates each attribute of each element in an XML document and returns a list of possible types for each token. For example, for an attribute value containing “1” the possible types may include boolean (with a value corresponding to “true”) and integer (with a value corresponding to the number 1). In one embodiment, this processing is performed speculatively, e.g., before the need for such data is identified for a particular document, and in hardware logic. Later processing of the XML document can thus be accelerated by having attribute data at least partially processed. For example, because the data of each attribute is processed for each possible type, another component of thesystem 100 can quickly and efficiently bind the values to a strongly typed (e.g., C or C++) data structure. - Another such function that may be speculatively processed is XML namespace processing. In one embodiment, the
namespace resolution module 124 performs namespace resolution of names in the XML document speculatively, e.g., before the need for such data is identified for a particular document, and in hardware logic, so as to reduce the overall time to process each document. -
FIG. 6 is a block diagram illustrating one embodiment of thesystem 100. Theexemplary system 100 includes aprocessor 302 operably connected to anetwork interface 304 and a memory 306. In theexemplary system 100, theprocessor 302 is also connected to acontent processor 310. In one embodiment, thecontent processor 310 includes aprocessor 312. In one embodiment, thecontent processor 310 includes alogic circuit 314. Thecontent processor 310 may also include amemory 316. In one embodiment, thecontent processor 310 is embodied as an ASIC or a PGA. - In view of the above, one will appreciate that embodiments of the invention overcome many of the longstanding problems in the art by simplifying XML processing so that such processing can be further accelerated using hardware. In particular, numerous XML processing functions can be performed in parallel in hardware in advance so that data from these functions is nearly instantly available to later processing functions. Overall XML processing system throughput and latency can thus be improved.
- It is to be recognized that each of the modules described above may include various sub-routines, procedures, definitional statements and macros. Each of the modules may be separately compiled and linked into a single executable program. The description of each of the modules is used for convenience to describe the functionality of one embodiment of a system. Thus, the processes that are performed by each of the modules may be redistributed to one of the other modules, combined together in a single module, or made available in, for example, a shareable dynamic link library. In some embodiments, the modules may be executed concurrently or in parallel as distinct threads or processes. The modules may be produced using any computer language or environment, including general-purpose languages such as C, Java, C++, or FORTRAN. Moreover, the functions described with respect to the modules may be performed, in all or in part, by either the
general purpose processor 302 or thecontent processor 310 ofFIG. 6 . - While the above detailed description has shown, described, and pointed out novel features of the invention as applied to various embodiments, it will be understood that various omissions, substitutions, and changes in the form and details of the device or process illustrated may be made by those skilled in the art without departing from the spirit of the invention. As will be recognized, the present invention may be embodied within a form that does not provide all of the features and benefits set forth herein, as some features may be used or practiced separately from others. The scope of the invention is indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.
Claims (16)
1-24. (canceled)
25. A method of transforming an XML document into a predetermined format, said method comprising:
identifying a non-compliant portion of said XML document with respect to said predetermined format; and
when said non-compliant portion of said XML document can be transformed into compliance using one or more of a plurality of transformations:
transforming, by applying the one or more of the plurality of transformations to said XML document, said non-compliant portion of said XML document into a portion compliant with the predetermined format, and
providing said transformed compliant portion of said XML document;
otherwise:
providing data indicative of said identified portion of said XML document that is non-compliant.
26. The method of claim 25 , wherein said predetermined format is a standardized canonical XML format.
27. The method of claim 25 , wherein providing data indicative of said portion of said XML document comprises providing data identifying a location within the XML document.
28. The method of claim 25 , wherein providing data indicative of said portion of said XML document comprises storing said data in a memory.
29. The method of claim 25 , further comprising transforming said portion of said XML document into compliance with said predetermined format based on said output data indicative of said portion of said XML document.
30. The method of claim 25 , wherein the step of applying the one or more transformations applies each with hardware logic.
31. A system for transforming an XML document into a predetermined format, said system comprising:
means for identifying a portion of said XML document that is noncompliant with said predetermined format;
means for transforming said portion of said XML document into the predetermined format using at least one of said plurality of transformations and for providing said transformed portion when said XML document can be transformed into compliance using said at least one of plurality of a transformations; and
means for outputting data indicative of said portion of said XML document when said XML document cannot be transformed into compliance using at least one of plurality of transformations.
32. The system of claim 31 , wherein said predetermined format is a standardized canonical XML format.
33. The system of claim 31 , wherein said means for outputting data indicative of said portion of said XML document comprises means for outputting data identifying a location within the XML document.
34. A machine-readable storage medium, having encoded thereon program code, wherein, when the program code is executed by a machine, the machine implements a method for transforming an XML document into a predetermined format, comprising the steps of:
identifying a non-compliant portion of said XML document with respect to said predetermined format; and
when said non-compliant portion of said XML document can be transformed into compliance using-one or more of a plurality of transformations:
transforming, by applying the one or more of the plurality of transformations to said XML document, said non-compliant portion of said XML document into a portion compliant with the predetermined format, and—
providing said transformed compliant portion of said XML document;
otherwise:
providing data indicative of said identified portion of said XML document that is non-compliant.
35. The storage medium of claim 34 , wherein said predetermined format is a standardized canonical XML format.
36. The storage medium of claim 34 , wherein providing data indicative of said portion of said XML document comprises providing data identifying a location within the XML document.
37. The storage medium of claim 34 , wherein providing data indicative of said portion of said XML document comprises storing said data in a memory.
38. The storage medium of claim 34 , further comprising transforming said portion of said XML document into compliance with said predetermined format based on said output data indicative of said portion of said XML document.
39. The storage medium of claim 34 , wherein the step of applying the one or more transformations applies each with hardware logic.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/535,933 US20100162102A1 (en) | 2005-06-02 | 2009-08-05 | System and Method of Accelerating Document Processing |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/145,262 US7703006B2 (en) | 2005-06-02 | 2005-06-02 | System and method of accelerating document processing |
US12/535,933 US20100162102A1 (en) | 2005-06-02 | 2009-08-05 | System and Method of Accelerating Document Processing |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/145,262 Division US7703006B2 (en) | 2005-06-02 | 2005-06-02 | System and method of accelerating document processing |
Publications (1)
Publication Number | Publication Date |
---|---|
US20100162102A1 true US20100162102A1 (en) | 2010-06-24 |
Family
ID=37495536
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/145,262 Expired - Fee Related US7703006B2 (en) | 2005-06-02 | 2005-06-02 | System and method of accelerating document processing |
US12/535,902 Abandoned US20090299983A1 (en) | 2005-06-02 | 2009-08-05 | System and Method of Accelerating Document Processing |
US12/535,933 Abandoned US20100162102A1 (en) | 2005-06-02 | 2009-08-05 | System and Method of Accelerating Document Processing |
Family Applications Before (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/145,262 Expired - Fee Related US7703006B2 (en) | 2005-06-02 | 2005-06-02 | System and method of accelerating document processing |
US12/535,902 Abandoned US20090299983A1 (en) | 2005-06-02 | 2009-08-05 | System and Method of Accelerating Document Processing |
Country Status (1)
Country | Link |
---|---|
US (3) | US7703006B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110197149A1 (en) * | 2010-02-11 | 2011-08-11 | International Business Machines Coporation | Xml post-processing hardware acceleration |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8156149B2 (en) * | 2007-07-24 | 2012-04-10 | Microsoft Corporation | Composite nested streams |
US20090037876A1 (en) * | 2007-07-31 | 2009-02-05 | Microsoft Corporation | Visible white space in program code |
US20090094263A1 (en) * | 2007-10-04 | 2009-04-09 | Microsoft Corporation | Enhanced utilization of network bandwidth for transmission of structured data |
US7676501B2 (en) | 2008-03-22 | 2010-03-09 | Wilson Kelce S | Document integrity verification |
US7904450B2 (en) | 2008-04-25 | 2011-03-08 | Wilson Kelce S | Public electronic document dating list |
US8413047B2 (en) * | 2011-05-12 | 2013-04-02 | Qualcomm Incorporated | Concurrent parsing and processing of HTML and JAVASCRIPT® |
US10223550B2 (en) * | 2013-11-06 | 2019-03-05 | Vmware, Inc. | Generating canonical representations of JSON documents |
RU2637482C2 (en) * | 2015-12-07 | 2017-12-04 | федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации | Method of multi-level control of electronic documents integrity |
CN108494875A (en) * | 2018-04-10 | 2018-09-04 | 网宿科技股份有限公司 | A kind of method and apparatus of feedback resources file |
US11444776B2 (en) * | 2019-05-01 | 2022-09-13 | Kelce S. Wilson | Blockchain with daisy chained records, document corral, quarantine, message timestamping, and self-addressing |
US11068595B1 (en) * | 2019-11-04 | 2021-07-20 | Trend Micro Incorporated | Generation of file digests for cybersecurity applications |
US11863678B2 (en) | 2020-08-26 | 2024-01-02 | Tenet 3, LLC | Rendering blockchain operations resistant to advanced persistent threats (APTs) |
Citations (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5857212A (en) * | 1995-07-06 | 1999-01-05 | Sun Microsystems, Inc. | System and method for horizontal alignment of tokens in a structural representation program editor |
US5944523A (en) * | 1996-06-12 | 1999-08-31 | Micro-Mega International Manufactures | Dental assembly having multi-movement motor |
US20010013047A1 (en) * | 1997-11-26 | 2001-08-09 | Joaquin M. Marques | Content filtering for electronic documents generated in multiple foreign languages |
US6324555B1 (en) * | 1998-08-31 | 2001-11-27 | Adobe Systems Incorporated | Comparing contents of electronic documents |
US6378072B1 (en) * | 1998-02-03 | 2002-04-23 | Compaq Computer Corporation | Cryptographic system |
US6470333B1 (en) * | 1998-07-24 | 2002-10-22 | Jarg Corporation | Knowledge extraction system and method |
US6539373B1 (en) * | 1997-03-07 | 2003-03-25 | Apple Computer, Inc. | Contextual searching by determining intersections of search results |
US20030065936A1 (en) * | 2001-08-22 | 2003-04-03 | Wray Michael John | Method of performing a data processing operation |
US20030063285A1 (en) * | 2001-09-28 | 2003-04-03 | Pering Richard D. | Heterodyne based optical spectrum analysis with reduced data acquisition requirement |
US20030070143A1 (en) * | 1999-08-23 | 2003-04-10 | Vadim Maslov | Method for extracting digests, reformatting, and automatic monitoring of structured online documents based on visual programming of document tree navigation and transformation |
US20030093760A1 (en) * | 2001-11-12 | 2003-05-15 | Ntt Docomo, Inc. | Document conversion system, document conversion method and computer readable recording medium storing document conversion program |
US20030101416A1 (en) * | 2001-11-26 | 2003-05-29 | Evolution Consulting Group Plc | Creating XML documents |
US20030105950A1 (en) * | 2001-11-27 | 2003-06-05 | Fujitsu Limited | Document distribution method and document management method |
US20030145278A1 (en) * | 2002-01-22 | 2003-07-31 | Nielsen Andrew S. | Method and system for comparing structured documents |
US20030167445A1 (en) * | 2002-03-04 | 2003-09-04 | Hong Su | Method and system of document transformation between a source extensible markup language (XML) schema and a target XML schema |
US20030236857A1 (en) * | 2002-03-07 | 2003-12-25 | International Business Machines Corporation | Network service system and program using data processing |
US20030237047A1 (en) * | 2002-06-18 | 2003-12-25 | Microsoft Corporation | Comparing hierarchically-structured documents |
US20040010752A1 (en) * | 2002-07-09 | 2004-01-15 | Lucent Technologies Inc. | System and method for filtering XML documents with XPath expressions |
US20040060004A1 (en) * | 2002-09-19 | 2004-03-25 | International Business Machines Corporation | Conversion processing for XML to XML document transformation |
US6772413B2 (en) * | 1999-12-21 | 2004-08-03 | Datapower Technology, Inc. | Method and apparatus of data exchange using runtime code generator and translator |
US20040172234A1 (en) * | 2003-02-28 | 2004-09-02 | Dapp Michael C. | Hardware accelerator personality compiler |
US20040177325A1 (en) * | 2003-03-07 | 2004-09-09 | Keane Robert S. | Edit location indicator |
US20040194016A1 (en) * | 2003-03-28 | 2004-09-30 | International Business Machines Corporation | Dynamic data migration for structured markup language schema changes |
US20040205617A1 (en) * | 2001-11-06 | 2004-10-14 | Ncr Corporation | Custom report generation using XML and XSL |
US20040225999A1 (en) * | 2003-05-06 | 2004-11-11 | Andrew Nuss | Grammer for regular expressions |
US20040268233A1 (en) * | 2002-06-27 | 2004-12-30 | Oki Electric Industry Co., Ltd. | Information processing apparatus and information processing method |
US20040268249A1 (en) * | 2002-02-04 | 2004-12-30 | Thomas Fennelly | Document transformation |
US20050063545A1 (en) * | 2003-09-19 | 2005-03-24 | Ntt Docomo, Inc | Structured document signature device, structured document adaptation device and structured document verification device |
US20050067482A1 (en) * | 2003-09-26 | 2005-03-31 | Wu Daniel Huong-Yu | System and method for data capture and management |
US20050086584A1 (en) * | 2001-07-09 | 2005-04-21 | Microsoft Corporation | XSL transform |
US20050114614A1 (en) * | 2003-08-19 | 2005-05-26 | Anderson Andrew V. | Method and apparatus for differential, bandwidth-efficient and storage-efficient backups |
US20050132278A1 (en) * | 2002-12-27 | 2005-06-16 | Fujitsu Limited | Structural conversion apparatus, structural conversion method and storage media for structured documents |
US20050154760A1 (en) * | 2004-01-12 | 2005-07-14 | International Business Machines Corporation | Capturing portions of an electronic document |
US20050154976A1 (en) * | 2003-09-30 | 2005-07-14 | Nelson Brent D. | Method and system for automated metamodel system software code standardization |
US20050262440A1 (en) * | 2004-05-21 | 2005-11-24 | Microsoft Corporation | Localization of XML via transformations |
US20050273450A1 (en) * | 2004-05-21 | 2005-12-08 | Mcmillen Robert J | Regular expression acceleration engine and processing model |
US20060005247A1 (en) * | 2004-06-30 | 2006-01-05 | Microsoft Corporation | Method and system for detecting when an outgoing communication contains certain content |
US20060005122A1 (en) * | 2004-07-02 | 2006-01-05 | Lemoine Eric T | System and method of XML query processing |
US20060004772A1 (en) * | 1999-12-21 | 2006-01-05 | Thomas Hagan | Privacy and security method and system for a World-Wide-Web site |
US20060031315A1 (en) * | 2004-06-01 | 2006-02-09 | Fenton James L | Method and system for verifying identification of an electronic mail message |
US20060036631A1 (en) * | 2004-08-10 | 2006-02-16 | Palo Alto Research Center Incorporated | High performance XML storage retrieval system and method |
US7080314B1 (en) * | 2000-06-16 | 2006-07-18 | Lucent Technologies Inc. | Document descriptor extraction method |
US20060168650A1 (en) * | 2004-11-29 | 2006-07-27 | Yoko Kumagai | Digital-signed digital document exchange supporting method and information processor |
US20060288276A1 (en) * | 2005-06-20 | 2006-12-21 | Fujitsu Limited | Structured document processing system |
US20070143324A1 (en) * | 2005-12-16 | 2007-06-21 | Sap Ag | Graphical user interface icon for documents with status indicator |
US20080077613A1 (en) * | 2006-09-27 | 2008-03-27 | Ffd, Inc. | User Interface Displaying Hierarchical Data on a Contextual Tree Structure |
US7603654B2 (en) * | 2004-03-01 | 2009-10-13 | Microsoft Corporation | Determining XML schema type equivalence |
US7716577B2 (en) * | 2005-11-14 | 2010-05-11 | Oracle America, Inc. | Method and apparatus for hardware XML acceleration |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6108676A (en) * | 1996-10-28 | 2000-08-22 | Fuji Xerox Co., Ltd. | Document processing apparatus, document type determining method, and hierarchical regular expression determining method |
US6128627A (en) * | 1998-04-15 | 2000-10-03 | Inktomi Corporation | Consistent data storage in an object cache |
US6289347B1 (en) * | 1998-12-09 | 2001-09-11 | Bull Hn Information Systems Inc. | Data processing system utilizing web forms |
US7590644B2 (en) * | 1999-12-21 | 2009-09-15 | International Business Machine Corporation | Method and apparatus of streaming data transformation using code generator and translator |
US6883137B1 (en) * | 2000-04-17 | 2005-04-19 | International Business Machines Corporation | System and method for schema-driven compression of extensible mark-up language (XML) documents |
US6751628B2 (en) * | 2001-01-11 | 2004-06-15 | Dolphin Search | Process and system for sparse vector and matrix representation of document indexing and retrieval |
US6745208B2 (en) * | 2001-05-31 | 2004-06-01 | International Business Machines Corporation | Method and apparatus for synchronizing an XML document with its object model |
US20040186817A1 (en) * | 2001-10-31 | 2004-09-23 | Thames Joseph M. | Computer-based structures and methods for generating, maintaining, and modifying a source document and related documentation |
JP4039484B2 (en) | 2002-02-28 | 2008-01-30 | インターナショナル・ビジネス・マシーンズ・コーポレーション | XPath evaluation method, XML document processing system and program using the same |
AU2003245506A1 (en) * | 2002-06-13 | 2003-12-31 | Mark Logic Corporation | Parent-child query indexing for xml databases |
JP2005051734A (en) * | 2003-07-15 | 2005-02-24 | Hitachi Ltd | Electronic document authenticity assurance method and electronic document disclosure system |
DE602004007903T2 (en) * | 2004-06-22 | 2008-04-17 | Sap Ag | Data processing device of online transaction data |
US7284192B2 (en) * | 2004-06-24 | 2007-10-16 | Avaya Technology Corp. | Architecture for ink annotations on web documents |
-
2005
- 2005-06-02 US US11/145,262 patent/US7703006B2/en not_active Expired - Fee Related
-
2009
- 2009-08-05 US US12/535,902 patent/US20090299983A1/en not_active Abandoned
- 2009-08-05 US US12/535,933 patent/US20100162102A1/en not_active Abandoned
Patent Citations (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5857212A (en) * | 1995-07-06 | 1999-01-05 | Sun Microsystems, Inc. | System and method for horizontal alignment of tokens in a structural representation program editor |
US5944523A (en) * | 1996-06-12 | 1999-08-31 | Micro-Mega International Manufactures | Dental assembly having multi-movement motor |
US6539373B1 (en) * | 1997-03-07 | 2003-03-25 | Apple Computer, Inc. | Contextual searching by determining intersections of search results |
US20010013047A1 (en) * | 1997-11-26 | 2001-08-09 | Joaquin M. Marques | Content filtering for electronic documents generated in multiple foreign languages |
US6378072B1 (en) * | 1998-02-03 | 2002-04-23 | Compaq Computer Corporation | Cryptographic system |
US6470333B1 (en) * | 1998-07-24 | 2002-10-22 | Jarg Corporation | Knowledge extraction system and method |
US6324555B1 (en) * | 1998-08-31 | 2001-11-27 | Adobe Systems Incorporated | Comparing contents of electronic documents |
US20030070143A1 (en) * | 1999-08-23 | 2003-04-10 | Vadim Maslov | Method for extracting digests, reformatting, and automatic monitoring of structured online documents based on visual programming of document tree navigation and transformation |
US20060004772A1 (en) * | 1999-12-21 | 2006-01-05 | Thomas Hagan | Privacy and security method and system for a World-Wide-Web site |
US6772413B2 (en) * | 1999-12-21 | 2004-08-03 | Datapower Technology, Inc. | Method and apparatus of data exchange using runtime code generator and translator |
US7080314B1 (en) * | 2000-06-16 | 2006-07-18 | Lucent Technologies Inc. | Document descriptor extraction method |
US20050086584A1 (en) * | 2001-07-09 | 2005-04-21 | Microsoft Corporation | XSL transform |
US20030065936A1 (en) * | 2001-08-22 | 2003-04-03 | Wray Michael John | Method of performing a data processing operation |
US20030063285A1 (en) * | 2001-09-28 | 2003-04-03 | Pering Richard D. | Heterodyne based optical spectrum analysis with reduced data acquisition requirement |
US20040205617A1 (en) * | 2001-11-06 | 2004-10-14 | Ncr Corporation | Custom report generation using XML and XSL |
US20030093760A1 (en) * | 2001-11-12 | 2003-05-15 | Ntt Docomo, Inc. | Document conversion system, document conversion method and computer readable recording medium storing document conversion program |
US20030101416A1 (en) * | 2001-11-26 | 2003-05-29 | Evolution Consulting Group Plc | Creating XML documents |
US20030105950A1 (en) * | 2001-11-27 | 2003-06-05 | Fujitsu Limited | Document distribution method and document management method |
US20030145278A1 (en) * | 2002-01-22 | 2003-07-31 | Nielsen Andrew S. | Method and system for comparing structured documents |
US20040268249A1 (en) * | 2002-02-04 | 2004-12-30 | Thomas Fennelly | Document transformation |
US20030167445A1 (en) * | 2002-03-04 | 2003-09-04 | Hong Su | Method and system of document transformation between a source extensible markup language (XML) schema and a target XML schema |
US20030236857A1 (en) * | 2002-03-07 | 2003-12-25 | International Business Machines Corporation | Network service system and program using data processing |
US7437664B2 (en) * | 2002-06-18 | 2008-10-14 | Microsoft Corporation | Comparing hierarchically-structured documents |
US20030237047A1 (en) * | 2002-06-18 | 2003-12-25 | Microsoft Corporation | Comparing hierarchically-structured documents |
US20040268233A1 (en) * | 2002-06-27 | 2004-12-30 | Oki Electric Industry Co., Ltd. | Information processing apparatus and information processing method |
US20040010752A1 (en) * | 2002-07-09 | 2004-01-15 | Lucent Technologies Inc. | System and method for filtering XML documents with XPath expressions |
US20040060004A1 (en) * | 2002-09-19 | 2004-03-25 | International Business Machines Corporation | Conversion processing for XML to XML document transformation |
US20050132278A1 (en) * | 2002-12-27 | 2005-06-16 | Fujitsu Limited | Structural conversion apparatus, structural conversion method and storage media for structured documents |
US20040172234A1 (en) * | 2003-02-28 | 2004-09-02 | Dapp Michael C. | Hardware accelerator personality compiler |
US20040177325A1 (en) * | 2003-03-07 | 2004-09-09 | Keane Robert S. | Edit location indicator |
US20040194016A1 (en) * | 2003-03-28 | 2004-09-30 | International Business Machines Corporation | Dynamic data migration for structured markup language schema changes |
US20040225999A1 (en) * | 2003-05-06 | 2004-11-11 | Andrew Nuss | Grammer for regular expressions |
US20050114614A1 (en) * | 2003-08-19 | 2005-05-26 | Anderson Andrew V. | Method and apparatus for differential, bandwidth-efficient and storage-efficient backups |
US20050063545A1 (en) * | 2003-09-19 | 2005-03-24 | Ntt Docomo, Inc | Structured document signature device, structured document adaptation device and structured document verification device |
US20050067482A1 (en) * | 2003-09-26 | 2005-03-31 | Wu Daniel Huong-Yu | System and method for data capture and management |
US20050154976A1 (en) * | 2003-09-30 | 2005-07-14 | Nelson Brent D. | Method and system for automated metamodel system software code standardization |
US20050154760A1 (en) * | 2004-01-12 | 2005-07-14 | International Business Machines Corporation | Capturing portions of an electronic document |
US7603654B2 (en) * | 2004-03-01 | 2009-10-13 | Microsoft Corporation | Determining XML schema type equivalence |
US20050262440A1 (en) * | 2004-05-21 | 2005-11-24 | Microsoft Corporation | Localization of XML via transformations |
US20050273450A1 (en) * | 2004-05-21 | 2005-12-08 | Mcmillen Robert J | Regular expression acceleration engine and processing model |
US20060031315A1 (en) * | 2004-06-01 | 2006-02-09 | Fenton James L | Method and system for verifying identification of an electronic mail message |
US20060005247A1 (en) * | 2004-06-30 | 2006-01-05 | Microsoft Corporation | Method and system for detecting when an outgoing communication contains certain content |
US20060005122A1 (en) * | 2004-07-02 | 2006-01-05 | Lemoine Eric T | System and method of XML query processing |
US20060036631A1 (en) * | 2004-08-10 | 2006-02-16 | Palo Alto Research Center Incorporated | High performance XML storage retrieval system and method |
US20060168650A1 (en) * | 2004-11-29 | 2006-07-27 | Yoko Kumagai | Digital-signed digital document exchange supporting method and information processor |
US20060288276A1 (en) * | 2005-06-20 | 2006-12-21 | Fujitsu Limited | Structured document processing system |
US7716577B2 (en) * | 2005-11-14 | 2010-05-11 | Oracle America, Inc. | Method and apparatus for hardware XML acceleration |
US20070143324A1 (en) * | 2005-12-16 | 2007-06-21 | Sap Ag | Graphical user interface icon for documents with status indicator |
US20080077613A1 (en) * | 2006-09-27 | 2008-03-27 | Ffd, Inc. | User Interface Displaying Hierarchical Data on a Contextual Tree Structure |
Non-Patent Citations (24)
Title |
---|
Amer-Yahia et al., Structure and Content Scoring for XML, ACM 2005, pages 381-372. * |
Carpentier et al., "Structural Similarity Search in Databases: YAKUSA", 2003, 3 pages. * |
Chan et al., Efficient Filtering of XML Documents with XPath Expressions, VLDB Journal 2002, pages 354-379. * |
Dechler et al., MASS: A Multi-Axis Storage Structure for Large XML Documents, CIKM' 03, November 2003, pages 520-523. * |
Flesca et al., "Fast Detection of XML Structural Similarity", IEEE February 2005, pages 180-175. * |
Flesca et al., Detecting Structural Similarities between XML Documents, In Proceeding of the Int. Workshop to the Web and Database, WebDB 2002, pages 1-6. * |
Grust, Accelerating XPath Location Steps, ACM June 2002, pages 109-120. * |
Guerrini, Glovanna, Measuring Structural Divergences in XML Documents, First International Workshop CLIP 2005, 37 pages. * |
Helmer et al., Optimized Translation of XPath into Algebraic Expressions Parameterized by Programs Containing Navigational Primitives, Proceedings of the 3rd Int. Conference on the Web Information System Engineering 2002, pages 1-10. * |
Kaenmoto et al., Efficiently Updatable Index Scheme for Structured Documents, IEEE 1998, pages 991-996. * |
Kerrigan et al., Logic-Based Regulation Compliance-Assistance, ACM 2003, pages 126-135. * |
Manos, Optimized Translation of XPath into Algebraic Expressions Parameterized by Programs Containing Navigational Primitives of Sven Helmer, Carl-Christian Kanna and Guido Moerkotte, University of Crete, December 2003, pages 1-32. * |
Miklau et al, Containment and Equivalent for a Fragment of XPath, ACM 2004, pages 2-46. * |
Murata et al., XML Access Control Using Static Analysis, CCS 2003, pages 73-84. * |
Nicola et al., XML Parsing: A Threat to Database Performance, CIKM' 03, November 2003, pages 175-178. * |
Nierman et al. Evaluating Structural Similarities in XML Documents, Proceeding of the Fifth International Workshop on the Web and Databases, WebDB 2002, 6 pages. * |
Onizuka, Light-Weight XPath Processing of XML Stream with Deterministic Autodata, CIKM' 03, November 3-8 2003, pages 342-349. * |
Polivy et al., Authenticating Distributed Data Using Web Services and XML Signatures, ACM 2002, pages 80-89., * |
Sperberg-McQueen et al., Goddag: A Data Structure for Overlapping Hierarchies, Google 2004, pages 139-160. * |
Su et al., Raindrop: A Uniform and Layered Algebraic Framework for XQueries on XML Streams, CIKM' 03, November 2003, pages279-286. * |
Suciu, Distributed Query Evaluation on Semistructured Data, ACM 2002, pages 1-62. * |
Villard et al., An Incremental XSLT Transformation Processor for XML Document Manipulation, Google 2002, pages 474-485. * |
Vion-Dury, XPath on Left and Right Sides of Rules: Toward Compact XML Tree Rewritting through Node Patterns, DocEng '03, November 2003, pages 19-25. * |
Yan et al. Index Structure for Selective Dissemination of Information under the Boolean Model, IEEE June 1994, pages 332-364. * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110197149A1 (en) * | 2010-02-11 | 2011-08-11 | International Business Machines Coporation | Xml post-processing hardware acceleration |
US9110875B2 (en) * | 2010-02-11 | 2015-08-18 | International Business Machines Corporation | XML post-processing hardware acceleration |
Also Published As
Publication number | Publication date |
---|---|
US20090299983A1 (en) | 2009-12-03 |
US20060277459A1 (en) | 2006-12-07 |
US7703006B2 (en) | 2010-04-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7703006B2 (en) | System and method of accelerating document processing | |
US7917515B1 (en) | System and method of accelerating processing of streaming data | |
US7590644B2 (en) | Method and apparatus of streaming data transformation using code generator and translator | |
US7409400B2 (en) | Applications of an appliance in a data center | |
US9842090B2 (en) | Efficient streaming evaluation of XPaths on binary-encoded XML schema-based documents | |
US8028228B2 (en) | Methods and apparatus for accelerating data parsing | |
US20030172196A1 (en) | Application program interface for network software platform | |
US8136095B2 (en) | Relations in fuzzing data | |
US20030177341A1 (en) | Schema, syntactic analysis method and method of generating a bit stream based on a schema | |
US20030159111A1 (en) | System and method for fast XSL transformation | |
US20050228828A1 (en) | Efficient extraction of XML content stored in a LOB | |
KR20080066943A (en) | Partial xml validation | |
Takase et al. | An adaptive, fast, and safe XML parser based on byte sequences memorization | |
WO2005082102A2 (en) | Method and apparatus of streaming data transformation using code generator and translator | |
US9367642B2 (en) | Flexible storage of XML collections within an object-relational database | |
JP2009544102A (en) | Semantic processing of XML documents | |
US7861157B1 (en) | System and method of processing streaming XML data | |
US8407209B2 (en) | Utilizing path IDs for name and namespace searches | |
JP4866844B2 (en) | Efficient extraction of XML content stored in a LOB | |
Reschke et al. | Web distributed authoring and versioning (webdav) search | |
Turau | A caching system for web content generated from xml sources using xslt | |
Maruyama et al. | Digest values for DOM (DOMHASH) | |
Zhang | Efficient XML stream processing and searching | |
Li et al. | Structural Join in the'XSQS'Native XML Database. | |
ADIL et al. | Making Artifacts Reliable Using Nanopublications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: LSI CORPORATION,CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:LEMOINE, ERIC T.;REEL/FRAME:023084/0276 Effective date: 20050601 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |