Skip to content

Proposal: Create a Domain_Object and Separate Domain from URI_Object

Ivan Kirillov edited this page Dec 18, 2013 · 3 revisions

Status: Closed
Comment Period Closes: 12/17/2013
Affects Backwards Compatibility: Yes
Relevant Issues: https://github.com/CybOXProject/schemas/issues/27

####Background Information

This proposal concerns the creation of a Domain_Object. Currently, URIObjectType enumerates a Domain Name value, but a new object would allow for better specificity and flexibility.

####Proposal

Add a Domain_Object to characterize network domain identifiers. This change would remove Domain Name from URI_Object and create a new Domain_Object.

A proposed draft of the Domain_Object schema follows:

<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:DomainObj="http://cybox.mitre.org/objects#DomainObject-1" xmlns:cyboxCommon="http://cybox.mitre.org/common-2" targetNamespace="http://cybox.mitre.org/objects#DomainObject-1" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.0">
	<xs:annotation>
		<xs:documentation>This schema was originally developed by The MITRE Corporation. The CybOX XML Schema implementation is maintained by The MITRE Corporation and developed by the open CybOX Community. For more information, including how to get involved in the effort and how to submit change requests, please visit the CybOX website at http://cybox.mitre.org. </xs:documentation>
		<xs:appinfo>
			<schema>Domain_Object</schema>
			<version>1.0</version>
			<date>05/24/2013 9:00:00 AM</date>
			<short_description>The following specifies the fields and types that compose this defined CybOX Object type. Each defined object is an extension of the abstract ObjectPropertiesType, defined in CybOX Common. For more information on this extension mechanism, please see the CybOX Specification. This document is intended for developers and assumes some familiarity with XML. </short_description>
			<terms_of_use>Copyright (c) 2012-2013, The MITRE Corporation. All rights reserved. The contents of this file are subject to the terms of the CybOX License located at http://cybox.mitre.org/about/termsofuse.html. See the CybOX License for the specific language governing permissions and limitations for use of this schema. When distributing copies of the CybOX Schema, this license header must be included. </terms_of_use>
		</xs:appinfo>
	</xs:annotation>
	<xs:import namespace="http://cybox.mitre.org/common-2" schemaLocation="../cybox_common.xsd"/>
	<xs:element name="Domain" type="DomainObj:DomainObjectType">
		<xs:annotation>
			<xs:documentation>The Domain object is intended to characterize network domain identifiers.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="DomainObjectType">
		<xs:annotation>
			<xs:documentation>The DomainObjectType type is intended to characterize network domain identifiers.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="cyboxCommon:ObjectPropertiesType">
				<xs:sequence>
					<xs:element name="Value" type="cyboxCommon:StringObjectPropertyType">
						<xs:annotation>
							<xs:documentation>The Value field specifies the value of the Domain identifier.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="type" type="DomainObj:DomainTypeEnum">
					<xs:annotation>
						<xs:documentation>The type field specifies the type of Domain that is being defined. </xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:simpleType name="DomainTypeEnum">
		<xs:annotation>
			<xs:documentation>The DomainTypeEnum is an enumeration of types of Domains.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="General">
				<xs:annotation>
					<xs:documentation>Specifies a general domain identifer. </xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="FQDN">
				<xs:annotation>
					<xs:documentation>Specifies a fully qualified domain name identifer. </xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Top-level Domain">
				<xs:annotation>
					<xs:documentation>Specifies a top-level domain identifer. </xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>

####Impact

This change would result in Domain Name no longer being enumerated in URIObj:URITypeEnum, and this could affect compatibility.

####Requested Feedback

  1. Does creating this object negatively impact CybOX authors/consumers?
  2. Should we change any aspect of the Domain Object?
Clone this wiki locally