-
Notifications
You must be signed in to change notification settings - Fork 16
Proposal: Deprecate Use of QNames for IDs
Status: CLOSED
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 XML namespace 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 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:ObjectReferenceType
maecBundle:BehaviorReferenceType
maecBundle:ProcessTreeNodeType
maecBundle:CapabilityType
maecBundle:CapabilityReferenceType
maecBundle:BehaviorType
maecPackage:AnalysisType
maecPackage:PackageType
maecPackage:MalwareSubjectType
maecPackage: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?