Managing compound XML documents in a repository
First Claim
1. A computer-implemented method comprising,storing, within a repository, a plurality of compound documents, each compound document of the plurality of compound documents including:
- a parent document,a plurality of subdocuments of said parent document;
wherein the parent document includes, for each subdocument of the plurality of subdocuments, a link to said each subdocument;
storing, in association with a first compound document of the plurality of compound documents, a first compound document declaration that declares a first type of link;
storing, in association with a second compound document of the plurality of compound documents, a second compound document declaration that declares a second type of link that is different than the first type of link;
wherein the first type of link is one of a hard link, a weak link, or a symbolic link;
wherein the second type of link is another one of the hard link, the weak link, or the symbolic link;
wherein the hard link is a link such that a first subdocument that is a target of the hard link cannot be deleted from the repository as long as the hard link is included in a first parent document, wherein the hard link is uniquely associated with the first subdocument, and wherein the hard link between a first parent document and the first subdocument is preserved if the first subdocument is moved to another location within the repository;
wherein the weak link is a link such that a second subdocument that is a target of the weak link is uniquely associated with the weak link and can be deleted from the repository even while a second parent document includes the weak link to the second subdocument;
wherein the symbolic link is a link such that a third parent document that includes the symbolic link is no longer linked to a third subdocument that is a target of the symbolic link if the third subdocument is moved to a different location in the repository, wherein the symbolic link is not uniquely associated with the third subdocument;
wherein the method is performed by one or more computing devices.
1 Assignment
0 Petitions
Accused Products
Abstract
A declarative mechanism is used to manage large documents within a repository. The large documents are sectioned into subdocuments that are linked together by a parent document. The combination of the parent document and subdocument is referred to as a compound document. There are multiple options for configuring rules to break up a source document into a compound document and naming the subdocuments. The compound documents may be queried using statements that treat the compound document as a single XML document, or the parent document of a subdocument may be queried and treated independently. Access control and versioning can be applied at the finer granularity of the subdocument.
262 Citations
28 Claims
-
1. A computer-implemented method comprising,
storing, within a repository, a plurality of compound documents, each compound document of the plurality of compound documents including: -
a parent document, a plurality of subdocuments of said parent document; wherein the parent document includes, for each subdocument of the plurality of subdocuments, a link to said each subdocument; storing, in association with a first compound document of the plurality of compound documents, a first compound document declaration that declares a first type of link; storing, in association with a second compound document of the plurality of compound documents, a second compound document declaration that declares a second type of link that is different than the first type of link; wherein the first type of link is one of a hard link, a weak link, or a symbolic link; wherein the second type of link is another one of the hard link, the weak link, or the symbolic link; wherein the hard link is a link such that a first subdocument that is a target of the hard link cannot be deleted from the repository as long as the hard link is included in a first parent document, wherein the hard link is uniquely associated with the first subdocument, and wherein the hard link between a first parent document and the first subdocument is preserved if the first subdocument is moved to another location within the repository; wherein the weak link is a link such that a second subdocument that is a target of the weak link is uniquely associated with the weak link and can be deleted from the repository even while a second parent document includes the weak link to the second subdocument; wherein the symbolic link is a link such that a third parent document that includes the symbolic link is no longer linked to a third subdocument that is a target of the symbolic link if the third subdocument is moved to a different location in the repository, wherein the symbolic link is not uniquely associated with the third subdocument; wherein the method is performed by one or more computing devices. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer-implemented method, comprising steps of:
-
within a repository, storing; a first compound document that includes a first parent document that links to a first plurality of subdocuments that includes a first subdocument that corresponds to a first plurality of versions, a second compound document that includes a second parent document that links to a second plurality of subdocuments that includes a second subdocument that corresponds to a second plurality of versions, a first compound declaration in association with the first compound document, and a second compound declaration in association with the second compound document; while performing one or more operations to replace, in the first compound document, (a) links to the first plurality of subdocuments with (b) content of the first plurality of subdocuments, using said first compound declaration to return the most current version of the first plurality of versions of the first subdocument; while performing the one or more operations to replace, in the second compound document, (c) links to the second plurality of subdocuments with (d) content of the second plurality of subdocuments, using said second compound declaration to return a particular version, of the second plurality of versions, that is not the most current version of the second plurality of versions; in response to a request to check out a particular version of the first plurality of versions of the first subdocument for reading or modifying, checking out the particular version of the first subdocument without checking out any other subdocument of the first plurality of subdocuments and without checking out the first parent document. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. One or more non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause:
-
storing, within a repository, a plurality of compound documents, each compound document of the plurality of compound documents including; a parent document, a plurality of subdocuments of said parent document; wherein the parent document includes, for each subdocument of the plurality of subdocuments, a link to said each subdocument; storing, in association with a first compound document of the plurality of compound documents, a first compound document declaration that declares a first type of link; storing, in association with a second compound document of the plurality of compound documents, a second compound document declaration that declares a second type of link that is different than the first type of link; wherein the first type of link is one of a hard link, a weak link, or a symbolic link; wherein the second type of link is another one of the hard link, the weak link, or the symbolic link; wherein the hard link is a link such that a first subdocument that is a target of the hard link cannot be deleted from the repository as long as the hard link is included in a first parent document, wherein the hard link is uniquely associated with the first subdocument, and wherein the hard link between a first parent document and the first subdocument is preserved if the first subdocument is moved to another location within the repository; wherein the weak link is a link such that a second subdocument that is a target of the weak link is uniquely associated with the weak link and can be deleted from the repository even while a second parent document includes the weak link to the second subdocument; wherein the symbolic link is a link such that a third parent document that includes the symbolic link is no longer linked to a third subdocument that is a target of the symbolic link when the third subdocument is moved to a different location in the repository, wherein the symbolic link is not uniquely associated with the third subdocument. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22)
-
-
23. One or more non-transitory computer-readable media storing instructions which, when executed by one or more processors, cause:
-
within a repository, storing; a first compound document that includes a first parent document that links to a first plurality of subdocuments that includes a first subdocument that corresponds to a first plurality of versions, a second compound document that includes a second parent document that links to a second plurality of subdocuments that includes a second subdocument that corresponds to a second plurality of versions, a first compound declaration in association with the first compound document, a second compound declaration in association with the second compound document; while performing one or more operations to replace, in the first compound document, (a) links to the first plurality of subdocuments with (b) content of the first plurality of subdocuments, using said first compound declaration to return the most current version of the first plurality of versions of the first subdocument; while performing one or more operations to replace, in the second compound document, (c) links to the second plurality of subdocuments with (d) content of the second plurality of subdocuments, using said second compound declaration to return a particular version, of the second plurality of versions of the second subdocument, that is not the most current version of the second plurality of versions; in response to a request to check out a particular version of the first plurality of versions of the first subdocument for reading or modifying, checking out the particular version of the first subdocument without checking out any other subdocument of the first plurality of subdocuments and without checking out the first parent document. - View Dependent Claims (24, 25, 26, 27, 28)
-
Specification