-
Notifications
You must be signed in to change notification settings - Fork 16
Proposal: Deprecate Use of QNames for IDs
Status: Open
Comment Period Closes: July 28th, 2015
Affects Backwards Compatibility: Yes
Relevant Issue: https://github.com/MAECProject/schemas/issues/106
In MAEC v4.1, all MAEC identifiers (IDs) are captured and formatted as qualified names (QNames). Each ID includes both a namespace portion (optional) and an ID portion (required), separated by a colon (":"). To use these IDs, MAEC producers and consumers must map prefixes to namespaces.
We propose using Uniform Resource Identifiers (URIs) instead of QNames for IDs; this would involve replacing the existing xs:QName type used in ID and IDREF attributes with xs:anyURI. This follows a W3C recommendation (see http://www.w3.org/2001/tag/doc/qnameids) and will make the use of IDs more direct.
This change would affect the following existing types (those remaining after the other proposed MAEC 5.0 changes):
maecBundle:ObjectReferenceTypemaecBundle:BehaviorReferenceTypemaecBundle:ProcessTreeNodeTypemaecBundle:CapabilityTypemaecBundle:CapabilityReferenceTypemaecBundle:BehaviorTypemaecPackage:AnalysisTypemaecPackage:PackageTypemaecPackage:MalwareSubjectTypemaecPackage:MalwareSubjectReferenceType
<maecPackage:MAEC_Package ... xmlns:AcmeCompany="http://www.acmecompany.com"...>
<maecPackage:Malware_Subjects>
<maecPackage:Malware_Subject id="AcmeCompany:example-sub-1">
...
</maecPackage:Malware_Subject>
</maecPackage:Malware_Subjects>
</maecPackage:MAEC_Package><maecPackage:MAEC_Package ...>
<maecPackage:Malware_Subjects>
<maecPackage:Malware_Subject id="http://www.acmecompany.com/example-sub-1">
...
</maecPackage:Malware_Subject>
</maecPackage:Malware_Subjects>
</maecPackage:MAEC_Package>This change will not be backward compatible and is one of several revisions planned in new major version.
- Should URIs be used instead of QNames in IDs?
- Are there any circumstances when using QNames is necessary or preferable?