Efficient validation of binary XML data
First Claim
1. A method comprising:
- a repository receiving a first request to store a XML, document;
wherein a first process within a first session is running within said repository;
wherein a second process within a second session is running within said repository;
in response to receiving said first request, said first process validating said XML document based on a XML schema defined by one or more XML schema documents, wherein validating said XML document includes said first process storing, in a shared volatile memory, compile-time generated static structures comprising validation data and specifically generated for XML document validation based on said XML schema, wherein said XML schema is registered with said repository;
said repository receiving a subsequent request to store one or more XML documents associated with said XML schema;
in response to receiving said subsequent request, said second process subsequently validating said one or more XML documents based on said XML schema;
wherein subsequently validating said one or more XML document comprises;
said second process copying from said shared volatile memory said compile-time generated static structures into private memory that is private to said second process, andsaid second process using said compile-time generated static structures that are stored in said private memory to validate said one or more XML documents; and
wherein the method is performed by one or more computing devices of said repository.
0 Assignments
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.
-
Citations
10 Claims
-
1. A method comprising:
-
a repository receiving a first request to store a XML, document; wherein a first process within a first session is running within said repository; wherein a second process within a second session is running within said repository; in response to receiving said first request, said first process validating said XML document based on a XML schema defined by one or more XML schema documents, wherein validating said XML document includes said first process storing, in a shared volatile memory, compile-time generated static structures comprising validation data and specifically generated for XML document validation based on said XML schema, wherein said XML schema is registered with said repository; said repository receiving a subsequent request to store one or more XML documents associated with said XML schema; in response to receiving said subsequent request, said second process subsequently validating said one or more XML documents based on said XML schema; wherein subsequently validating said one or more XML document comprises; said second process copying from said shared volatile memory said compile-time generated static structures into private memory that is private to said second process, and said second process using said compile-time generated static structures that are stored in said private memory 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)
-
-
6. A non-transitory computer-readable medium storing instructions which, when executed by one or more processors, cause:
-
a repository receiving a first request to store a XML document; wherein a first process within a first session is running within said repository; wherein a second process within a second session is running within said repository; in response to receiving said first request, said first process validating said XML document based on a XML schema defined by one or more XML schema documents, wherein validating said XML document includes said first process storing, in a shared volatile memory, a compile-time generated static structures comprising validation data and specifically generated for XML document validation based on said XML schema, wherein said XML schema is registered with said repository; said repository receiving a subsequent request to store one or more XML documents associated with said XML schema; in response to receiving said subsequent request, said second process subsequently validating said one or more XML documents based on said XML schema; wherein subsequently validating said one or more XML document comprises; said second process copying from said shared volatile memory said compile-time generated static structures into private memory that is private to said second process, and said second process using said compile-time generated static structures that are stored in said private memory to validate said one or more XML documents. - View Dependent Claims (7, 8, 9, 10)
-
Specification