Customization syntax for multi-layer XML customization
First Claim
1. A non-transitory computer readable storage medium having stored thereon program code executable by a computer system, the program code comprising:
- code that causes the computer system to generate a customization document for a base metadata document, the base metadata document defining one or more characteristics of at least a portion of a software application, the customization document comprising;
a first XML element defining a modification to a source XML element in the base metadata document, the first XML element including an XML attribute set to an XPath expression that uniquely identifies the source XML element in the base metadata document;
a second XML element defining an insertion of a new XML element into the base metadata document, the second XML element including a positional XML attribute identifying where the new XML element will be inserted in relation to an existing source XML element in the base metadata document; and
a third XML element identifying the base metadata document;
wherein the generating the customization document comprises determining whether the customization document applies to customizations corresponding to two or more customization levels, each customization level representing a scope for which the base metadata document can be customized, the two or more customization levels corresponding to a precedence order in which customizations are to be applied to the base metadata document, and analyzing XML elements to determine whether two or more of the XML elements are combinable or whether one or more of the XML elements are to be preserved based at least in part on the two or more customization levels, wherein the first XML element and/or the second XML element is based at least in part on a combination of the two or more XML elements consequent to a determination that the two or more XML elements are combinable; and
code that causes the computer system to generate a customized metadata document by applying the customization document to the base metadata document.
1 Assignment
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide techniques for customizing aspects of a metadata-driven software application. In particular, embodiments of the present invention provide (1) a self-contained metadata engine for generating customized metadata documents from base metadata documents and customizations; (2) a customization syntax for defining customizations; (3) a customization creation/update component for creating and updating customizations; (4) a customization restriction mechanism for restricting the creation of new customizations by specific users or groups of users; and (5) memory and caching optimizations for optimizing the storage and lookup of customized metadata documents.
240 Citations
17 Claims
-
1. A non-transitory computer readable storage medium having stored thereon program code executable by a computer system, the program code comprising:
-
code that causes the computer system to generate a customization document for a base metadata document, the base metadata document defining one or more characteristics of at least a portion of a software application, the customization document comprising; a first XML element defining a modification to a source XML element in the base metadata document, the first XML element including an XML attribute set to an XPath expression that uniquely identifies the source XML element in the base metadata document; a second XML element defining an insertion of a new XML element into the base metadata document, the second XML element including a positional XML attribute identifying where the new XML element will be inserted in relation to an existing source XML element in the base metadata document; and a third XML element identifying the base metadata document; wherein the generating the customization document comprises determining whether the customization document applies to customizations corresponding to two or more customization levels, each customization level representing a scope for which the base metadata document can be customized, the two or more customization levels corresponding to a precedence order in which customizations are to be applied to the base metadata document, and analyzing XML elements to determine whether two or more of the XML elements are combinable or whether one or more of the XML elements are to be preserved based at least in part on the two or more customization levels, wherein the first XML element and/or the second XML element is based at least in part on a combination of the two or more XML elements consequent to a determination that the two or more XML elements are combinable; and code that causes the computer system to generate a customized metadata document by applying the customization document to the base metadata document. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method comprising:
-
generating, by a computer system, a customization document for a base metadata document, the base metadata document defining one or more characteristics of at least a portion of a software application, the customization document comprising; a first XML element defining a modification to a source XML element in the base metadata document, the first XML element including an XML attribute set to an XPath expression that uniquely identifies the source XML element in the base metadata document; a second XML element defining an insertion of a new XML element into the base metadata document, the second XML element including a positional XML attribute identifying where the new XML element will be inserted in relation to an existing source XML element in the base metadata document; and a third XML element identifying the base metadata document; wherein the generating the customization document comprises determining whether the customization document applies to customizations corresponding to two or more customization levels, each customization level representing a scope for which the base metadata document can be customized, the two or more customization levels corresponding to a precedence order in which customizations are to be applied to the base metadata document, and analyzing XML elements to determine whether two or more of the XML elements are combinable or whether one or more of the XML elements are to be preserved based at least in part on the two or more customization levels, wherein the first XML element and/or the second XML element is based at least in part on a combination of the two or more XML elements consequent to a determination that the two or more XML elements are combinable; and generating, by the computer system, a customized metadata document by applying the customization document to the base metadata document. - View Dependent Claims (10, 11, 12, 13)
-
-
14. A system comprising:
a processor configured to; generate a customization document for a base metadata document, the base metadata document defining one or more characteristics of at least a portion of a software application, the customization document comprising; a first XML element defining a modification to a source XML element in the base metadata document, the first XML element including an XML attribute set to an XPath expression that uniquely identifies the source XML element in the base metadata document; a second XML element defining an insertion of a new XML element into the base metadata document, the second XML element including a positional XML attribute identifying where the new XML element will be inserted in relation to an existing source XML element in the base metadata document; and a third XML element identifying the base metadata document; wherein the generating the customization document comprises determining whether the customization document applies to customizations corresponding to two or more customization levels, each customization level representing a scope for which the base metadata document can be customized, the two or more customization levels corresponding to a precedence order in which customizations are to be applied to the base metadata document, and analyzing XML elements to determine whether two or more of the XML elements are combinable or whether one or more of the XML elements are to be preserved based at least in part on the two or more customization levels, wherein the first XML element and/or the second XML element is based at least in part on a combination of the two or more XML elements consequent to a determination that the two or more XML elements are combinable; and generate a customized metadata document by applying the customization document to the base metadata document. - View Dependent Claims (15, 16, 17)
Specification