Efficient validation of binary XML data
First Claim
1. A method comprising:
- a repository receiving a first request to store a XML document;
in response to receiving said first request, said repository validating said XML document based on a XML schema;
wherein said XML schema is defined by one or more XML schema documents, said one or more XML schema documents declaring a set of constructs that include more constructs than defined for said XML schema by said one or more XML schema documents;
wherein validating said XML document includes;
making a determination of which constructs of said set of constructs should exist in said XML document;
based on said determination of which constructs of said set of constructs should exist in said XML document, generating one or more validation structures for the subset of said constructs that should exist in said XML document, thereby forgoing the generation of a validation structure for a subset of said constructs that should not exist in said XML document; and
storing said one or more validation structures in a memory of said repository;
said repository receiving a subsequent request to store one or more XML documents associated with a XML schema;
in response to receiving said subsequent request, said repository subsequently validating said one or more XML documents based on said XML schema associated with said one or more XML documents;
wherein subsequently validating said one or more XML documents comprises;
accessing said one or more validation structures in said memory, andusing said one or more validation structures to validate said one or more XML documents; and
wherein the method is performed by one or more computing devices of said repository.
1 Assignment
0 Petitions
Accused Products
Abstract
Data used and generated by the process of validating XML documents is divided into two categories: compile-time static data and runtime data. Runtime data may be specific to a particular XML document and changes when validating the XML document, while compile-time data does not change in this way. For example, compile-time data may be data that defines, according to a schema, the descendant elements and ordering between them. Runtime data is information generated to track which descendants occurred in a particular XML document being validated. Compile-time static data, once generated to validate a particular XML document, is cached within a shared volatile memory. Once the compile-time data is cached, the compile-time static data may be used to validate other XML documents without the need to regenerate the compile-time static data.
29 Citations
8 Claims
-
1. A method comprising:
-
a repository receiving a first request to store a XML document; in response to receiving said first request, said repository validating said XML document based on a XML schema; wherein said XML schema is defined by one or more XML schema documents, said one or more XML schema documents declaring a set of constructs that include more constructs than defined for said XML schema by said one or more XML schema documents; wherein validating said XML document includes; making a determination of which constructs of said set of constructs should exist in said XML document; based on said determination of which constructs of said set of constructs should exist in said XML document, generating one or more validation structures for the subset of said constructs that should exist in said XML document, thereby forgoing the generation of a validation structure for a subset of said constructs that should not exist in said XML document; and storing said one or more validation structures in a memory of said repository; said repository receiving a subsequent request to store one or more XML documents associated with a XML schema; in response to receiving said subsequent request, said repository subsequently validating said one or more XML documents based on said XML schema associated with said one or more XML documents; wherein subsequently validating said one or more XML documents comprises; accessing said one or more validation structures in said memory, and using said one or more validation structures to validate said one or more XML documents; and wherein the method is performed by one or more computing devices of said repository. - View Dependent Claims (2, 3, 4)
-
-
5. A non-transitory computer-readable medium storing instructions which, when executed by one or more processors, cause the one or more processors to perform steps comprising:
-
a repository receiving a first request to store a XML document; in response to receiving said first request, said repository validating said XML document based on a XML schema; wherein said XML schema is defined by one or more XML schema documents, said one or more XML schema documents declaring a set of constructs that include more constructs than defined for said XML schema by said one or more XML schema documents; wherein validating said XML document includes; making a determination of which constructs of said set of constructs should exist in said XML document; based on said determination of which constructs of said set of constructs should exist in said XML document, generating one or more validation structures for the subset of said constructs that should exist in said XML document, thereby forgoing the generation of a validation structure for a subset of said constructs that should not exist in said XML document; and storing said one or more validation structures in a memory of said repository; said repository receiving a subsequent request to store one or more XML documents associated with a XML schema; in response to receiving said subsequent request, said repository subsequently validating said one or more XML documents based on said XML schema associated with said one or more XML documents; wherein subsequently validating said one or more XML documents comprises; accessing said one or more validation structures in said memory, and using said one or more validation structures to validate said one or more XML documents; and wherein the method is performed by one or more computing devices of said repository. - View Dependent Claims (6, 7, 8)
-
Specification