25. A method for using programming language annotations to perpetuate the provenance of generated source code artifacts, comprising: defining via a schema document a valid structure of an instance document; translating the schema document into a schema object model, wherein the schema object model is programming language-agnostic; translating the schema object model to provenance-annotated programming language bindings, wherein the annotations used in provenance-annotated programming language bindings refer back to one or more schema within the schema document; inserting the annotations in an artifact; and creating one or more annotation maps to enrich interactive and/or automatic software development tools, wherein each annotation map contains one or more associations between a schema and an annotation in the artifact.
25. A method for using programming language annotations to perpetuate the provenance of generated source code artifacts, comprising: defining via a schema document a valid structure of an instance document; translating the schema document into a schema object model, wherein the schema object model is programming language-agnostic; translating the schema object model to provenance-annotated programming language bindings, wherein the annotations used in provenance-annotated programming language bindings refer back to one or more schema within the schema document; inserting the annotations in an artifact; and creating one or more annotation maps to enrich interactive and/or automatic software development tools, wherein each annotation map contains one or more associations between a schema and an annotation in the artifact. 26. The method according to claim 25 , further comprising: using the schema object model to validate whether the instance document conforms to the schema.