US20100162102A1 - System and Method of Accelerating Document Processing - Google Patents

System and Method of Accelerating Document Processing Download PDF

Info

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
Application number
US12/535,933
Inventor
Eric T. Lemoine
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LSI Corp
Original Assignee
LSI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LSI Corp filed Critical LSI Corp
Priority to US12/535,933 priority Critical patent/US20100162102A1/en
Assigned to LSI CORPORATION reassignment LSI CORPORATION ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: LEMOINE, ERIC T.
Publication of US20100162102A1 publication Critical patent/US20100162102A1/en
Abandoned legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • G06F40/154Tree transformation for tree-structured or markup documents, e.g. XSLT, XSL-FO or stylesheets
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, 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

    BACKGROUND OF THE INVENTION
  • 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.
  • SUMMARY OF CERTAIN INVENTIVE ASPECTS
  • 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.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • 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.
  • DETAILED DESCRIPTION OF CERTAIN EMBODIMENTS
  • 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 an exemplary system 100 for processing XML documents. In one embodiment, 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. In one embodiment, one or more of the speculative processing modules 102 execute in parallel. In one embodiment, 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. 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 the system 100. In one embodiment, 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. 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-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. 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 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. In one embodiment, 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.
  • In operation, an XML document is received by the system 100 for processing. Each of the speculative processing modules 102 processes the incoming XML document. In one embodiment, 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. As the XML processing module 104 proceeds with processing, processed data provided by the speculative processing modules 102 is available to the XML processing module 104 without further processing delay. For example, the XML processing module 104 can obtain data already located in the document by the conformance 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 an exemplary method 150 of using the system 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. The method 150 begins at a block 152 in which the system 100 receives an XML document. Next at a block 154, the system 100 processes the XML document, e.g., performs initial tokenization and parsing, to determine the structure of the document. Moving to a block 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 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. 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, 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. Next at a block 164, the system 100 processes the current XML document, using the cached data. Referring again to the block 160, if no cache data is identified with the digest value, the method 150 proceeds to the block 164, in which the current XML document is processed without benefit of any cached data. Next at a block 166, 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. 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 an exemplary method 170 of using the system 100 to define points of interest in XML documents. In particular, in one embodiment, 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. In one embodiment, 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. 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 a block 172 in which the conformance 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 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. 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 as level 1, the “<e1>” entity as level 2 and the “<e5>” entity as level 3, with N=3.
  • Next at a block 174, the conformance engine 116 determines a digest value for each level of the structure. In one embodiment, the conformance 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>” at level 1. In one embodiment, the hash value is calculated using a cryptographic hash function such as SHA-1.
  • Proceeding to a block 176, 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. In one embodiment, 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. 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, 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. In one embodiment, the conformance 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, 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. Beginning at a block 182, 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. 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, the conformance engine 116 calculates a hash value for the structure string “<doc>” associated with this substructure. Next at block 184, 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.
  • Moving to the block 186, 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.
  • Returning to the block 190, as no further processing is indicated, the conformance 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. The conformance engine 116 outputs the token indicating the presence of the particular point of interest to the XML processing module 104. In another embodiment, the data includes a pointer to executable instructions for processing the point of interest. In one embodiment, the conformance engine 116 executes these instructions. In another embodiment, the conformance engine 116 provides the pointer to the executable instruction to the XML 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 an exemplary method 200 of canonicalization processing of an XML document by, for example, the canonicalization module (C14N module) 118. In operation, the C14N module 118 receives each token in the XML document from the tokenizer 110 and processes the token according to the method 200. In one embodiment, the C14N module 118 includes a processor programmed to perform at least a portion of the method 200. In one embodiment, 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. Moving to a block 204, 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. 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, 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. At the 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. In one embodiment, the C14N module 118 includes software for performing such non-simple transformations. In one embodiment, 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. In one embodiment, 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. 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.
  • 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 the system 100. The exemplary system 100 includes a processor 302 operably connected to a network interface 304 and a memory 306. In the exemplary system 100, the processor 302 is also connected to a content processor 310. In one embodiment, the content processor 310 includes a processor 312. In one embodiment, the content processor 310 includes a logic circuit 314. The content processor 310 may also include a memory 316. In one embodiment, the content 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 the content processor 310 of FIG. 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.
US12/535,933 2005-06-02 2009-08-05 System and Method of Accelerating Document Processing Abandoned US20100162102A1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (49)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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