1. A method for customizing a software application, the method comprising: retrieving a first metadata document via a software component configured to enable creation and/or update of XML documents, wherein: the first metadata document is based at least in part on Extensible Markup Language (XML); content of the first metadata document at least partially defines one or more characteristics of at least a portion of a software application; and at least one of the one or more characteristics corresponds to one or more of content, behavior, and/or appearance; in response to retrieving the first metadata document, creating in memory, a metadata object to represent the first metadata document; receiving, from the software component, one or more modifications to the metadata object, wherein the one or more modifications: are expressed as method calls performed on the metadata object; and comprise a modification to a source element in the first metadata document; translating the one or more method calls into one or more customization instructions, wherein the one or more customization instructions, when executed, cause at least the portion of the software application to change at least one of the one or more characteristics, the translating comprising: checking whether each of a plurality of elements is associated with a respective unique identifier, the plurality of elements comprising a sibling element, a parent element, and the source element; selecting a unique identifier based on a predetermined order comprising determining whether the source element is associated with a globally unique identifier and, if the source element is not associated with the globally unique identifier, determining whether the source element is associated with a locally unique identifier; and generating at least one customization instruction of the one or more customization instructions to reference the modification to the source element based at least in part on the checking and the selecting; and storing in a second metadata document the one or more customization instructions as a first customization for the first metadata document, wherein the first customization is stored separately from the first metadata document.
1. A method for customizing a software application, the method comprising: retrieving a first metadata document via a software component configured to enable creation and/or update of XML documents, wherein: the first metadata document is based at least in part on Extensible Markup Language (XML); content of the first metadata document at least partially defines one or more characteristics of at least a portion of a software application; and at least one of the one or more characteristics corresponds to one or more of content, behavior, and/or appearance; in response to retrieving the first metadata document, creating in memory, a metadata object to represent the first metadata document; receiving, from the software component, one or more modifications to the metadata object, wherein the one or more modifications: are expressed as method calls performed on the metadata object; and comprise a modification to a source element in the first metadata document; translating the one or more method calls into one or more customization instructions, wherein the one or more customization instructions, when executed, cause at least the portion of the software application to change at least one of the one or more characteristics, the translating comprising: checking whether each of a plurality of elements is associated with a respective unique identifier, the plurality of elements comprising a sibling element, a parent element, and the source element; selecting a unique identifier based on a predetermined order comprising determining whether the source element is associated with a globally unique identifier and, if the source element is not associated with the globally unique identifier, determining whether the source element is associated with a locally unique identifier; and generating at least one customization instruction of the one or more customization instructions to reference the modification to the source element based at least in part on the checking and the selecting; and storing in a second metadata document the one or more customization instructions as a first customization for the first metadata document, wherein the first customization is stored separately from the first metadata document. 5. The method of claim 1 , wherein the first metadata document is retrieved as a Java Architecture for XML Bindings (JAXB) representation, and wherein the one or modifications are expressed as standard JAXB method calls.