Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save bryaneaton/9442a938da6e6555a0435e4d06bcd820 to your computer and use it in GitHub Desktop.
Save bryaneaton/9442a938da6e6555a0435e4d06bcd820 to your computer and use it in GitHub Desktop.
oscal_ssp_schema.xsd
<xs:schema xmlns="http://csrc.nist.gov/ns/oscal/1.0"
xmlns:m="http://csrc.nist.gov/ns/oscal/metaschema/1.0"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
elementFormDefault="qualified"
targetNamespace="http://csrc.nist.gov/ns/oscal/1.0"
version="1.1.0">
<xs:annotation>
<xs:appinfo>
<m:schema-name>OSCAL System Security Plan (SSP) Model</m:schema-name>
<m:schema-version>1.1.0</m:schema-version>
<m:short-name>oscal-ssp</m:short-name>
<m:remarks>
<p>The OSCAL Control SSP format can be used to describe the information typically specified in a system security plan, such as those defined in NIST SP 800-18.</p>
<p>The root of the OSCAL System Security Plan (SSP) format is <code>system-security-plan</code>.</p>
</m:remarks>
<m:root>system-security-plan</m:root>
</xs:appinfo>
</xs:annotation>
<xs:element name="system-security-plan"
type="oscal-ssp-system-security-plan-ASSEMBLY"/>
<xs:complexType name="oscal-ssp-system-security-plan-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>System Security Plan (SSP)</m:formal-name>
<m:description>A system security plan, such as those described in NIST SP 800-18.</m:description>
</xs:appinfo>
<xs:documentation>
<b>System Security Plan (SSP)</b>: A system security plan, such as those described in NIST SP 800-18.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="metadata"
type="oscal-metadata-metadata-ASSEMBLY"
minOccurs="1"
maxOccurs="1"/>
<xs:element name="import-profile"
type="oscal-ssp-import-profile-ASSEMBLY"
minOccurs="1"
maxOccurs="1"/>
<xs:element name="system-characteristics"
type="oscal-ssp-system-characteristics-ASSEMBLY"
minOccurs="1"
maxOccurs="1"/>
<xs:element name="system-implementation"
type="oscal-ssp-system-implementation-ASSEMBLY"
minOccurs="1"
maxOccurs="1"/>
<xs:element name="control-implementation"
type="oscal-ssp-control-implementation-ASSEMBLY"
minOccurs="1"
maxOccurs="1"/>
<xs:element name="back-matter"
type="oscal-metadata-back-matter-ASSEMBLY"
minOccurs="0"
maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>System Security Plan Universally Unique Identifier</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a>, <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#globally-unique">globally unique</a> identifier with <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#cross-instance">cross-instance</a> scope that can be used to reference this system security plan (SSP) elsewhere in <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#ssp-identifiers">this or other OSCAL instances</a>. The locally defined <em>UUID</em> of the <code>SSP</code> can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance).This UUID should be assigned <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#consistency">per-subject</a>, which means it should be consistently used to identify the same subject across revisions of the document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>System Security Plan Universally Unique Identifier</b>: A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this system security plan (SSP) elsewhere in this or other OSCAL instances. The locally defined UUID of the SSP can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance).This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-ssp-import-profile-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Import Profile</m:formal-name>
<m:description>Used to import the OSCAL profile representing the system's control baseline.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Import Profile</b>: Used to import the OSCAL profile representing the system's control baseline.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="href" use="required" type="URIReferenceDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Profile Reference</m:formal-name>
<m:description>A resolvable URL reference to the profile or catalog to use as the system's control baseline.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Profile Reference</b>: A resolvable URL reference to the profile or catalog to use as the system's control baseline.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-ssp-system-characteristics-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>System Characteristics</m:formal-name>
<m:description>Contains the characteristics of the system, such as its name, purpose, and security impact level.</m:description>
</xs:appinfo>
<xs:documentation>
<b>System Characteristics</b>: Contains the characteristics of the system, such as its name, purpose, and security impact level.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="system-id"
type="oscal-implementation-common-system-id-FIELD"
minOccurs="1"
maxOccurs="unbounded"/>
<xs:element name="system-name" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>System Name - Full</m:formal-name>
<m:description>The full name of the system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>System Name - Full</b>: The full name of the system.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
</xs:element>
<xs:element name="system-name-short" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>System Name - Short</m:formal-name>
<m:description>A short name for the system, such as an acronym, that is suitable for display in a data table or summary list.</m:description>
</xs:appinfo>
<xs:documentation>
<b>System Name - Short</b>: A short name for the system, such as an acronym, that is suitable for display in a data table or summary list.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
</xs:element>
<xs:element name="description" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>System Description</m:formal-name>
<m:description>A summary of the system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>System Description</b>: A summary of the system.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="date-authorized"
type="oscal-ssp-date-authorized-FIELD"
minOccurs="0"
maxOccurs="1"/>
<xs:element name="security-sensitivity-level" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Security Sensitivity Level</m:formal-name>
<m:description>The overall information system sensitivity categorization, such as defined by <a href="https://doi.org/10.6028/NIST.FIPS.199">FIPS-199</a>.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Security Sensitivity Level</b>: The overall information system sensitivity categorization, such as defined by FIPS-199.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
</xs:element>
<xs:element name="system-information"
type="oscal-ssp-system-information-ASSEMBLY"
minOccurs="1"
maxOccurs="1"/>
<xs:element name="security-impact-level"
type="oscal-ssp-security-impact-level-ASSEMBLY"
minOccurs="0"
maxOccurs="1"/>
<xs:element name="status"
type="oscal-ssp-status-ASSEMBLY"
minOccurs="1"
maxOccurs="1"/>
<xs:element name="authorization-boundary"
type="oscal-ssp-authorization-boundary-ASSEMBLY"
minOccurs="1"
maxOccurs="1"/>
<xs:element name="network-architecture"
type="oscal-ssp-network-architecture-ASSEMBLY"
minOccurs="0"
maxOccurs="1"/>
<xs:element name="data-flow"
type="oscal-ssp-data-flow-ASSEMBLY"
minOccurs="0"
maxOccurs="1"/>
<xs:element name="responsible-party"
type="oscal-metadata-responsible-party-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="oscal-ssp-system-information-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>System Information</m:formal-name>
<m:description>Contains details about all information types that are stored, processed, or transmitted by the system, such as privacy information, and those defined in <a href="https://doi.org/10.6028/NIST.SP.800-60v2r1">NIST SP 800-60</a>.</m:description>
</xs:appinfo>
<xs:documentation>
<b>System Information</b>: Contains details about all information types that are stored, processed, or transmitted by the system, such as privacy information, and those defined in NIST SP 800-60.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="information-type" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Information Type</m:formal-name>
<m:description>Contains details about one information type that is stored, processed, or transmitted by the system, such as privacy information, and those defined in <a href="https://doi.org/10.6028/NIST.SP.800-60v2r1">NIST SP 800-60</a>.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Information Type</b>: Contains details about one information type that is stored, processed, or transmitted by the system, such as privacy information, and those defined in NIST SP 800-60.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="title" minOccurs="1" maxOccurs="1">
<xs:complexType mixed="true">
<xs:annotation>
<xs:appinfo>
<m:formal-name>title field</m:formal-name>
<m:description>A human readable name for the information type. This title should be meaningful within the context of the system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>title field</b>: A human readable name for the information type. This title should be meaningful within the context of the system.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupLineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="description" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Information Type Description</m:formal-name>
<m:description>A summary of how this information type is used within the system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Information Type Description</b>: A summary of how this information type is used within the system.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="categorization" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Information Type Categorization</m:formal-name>
<m:description>A set of information type identifiers qualified by the given identification <code>system</code> used, such as NIST SP 800-60.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Information Type Categorization</b>: A set of information type identifiers qualified by the given identification system used, such as NIST SP 800-60.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="information-type-id" minOccurs="0" maxOccurs="unbounded">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Information Type Systematized Identifier</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#human-oriented">human-oriented</a>, <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#globally-unique">globally unique</a> identifier qualified by the given identification <code>system</code> used, such as NIST SP 800-60. This identifier has <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#cross-instance">cross-instance</a> scope and can be used to reference this system elsewhere in <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#ssp-identifiers">this or other OSCAL instances</a>. This id should be assigned <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#consistency">per-subject</a>, which means it should be consistently used to identify the same subject across revisions of the document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Information Type Systematized Identifier</b>: A human-oriented, globally unique identifier qualified by the given identification system used, such as NIST SP 800-60. This identifier has cross-instance scope and can be used to reference this system elsewhere in this or other OSCAL instances. This id should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attribute name="system" use="required" type="URIDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Information Type Identification System</m:formal-name>
<m:description>Specifies the information type identification system used.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Information Type Identification System</b>: Specifies the information type identification system used.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="confidentiality-impact"
type="oscal-ssp-impact-ASSEMBLY"
minOccurs="0"
maxOccurs="1"/>
<xs:element name="integrity-impact"
type="oscal-ssp-impact-ASSEMBLY"
minOccurs="0"
maxOccurs="1"/>
<xs:element name="availability-impact"
type="oscal-ssp-impact-ASSEMBLY"
minOccurs="0"
maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="uuid" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Information Type Universally Unique Identifier</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a>, <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#globally-unique">globally unique</a> identifier with <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#cross-instance">cross-instance</a> scope that can be used to reference this information type elsewhere in <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#ssp-identifiers">this or other OSCAL instances</a>. The locally defined <em>UUID</em> of the <code>information type</code> can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#consistency">per-subject</a>, which means it should be consistently used to identify the same subject across revisions of the document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Information Type Universally Unique Identifier</b>: A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this information type elsewhere in this or other OSCAL instances. The locally defined UUID of the information type can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="oscal-ssp-impact-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Impact Level</m:formal-name>
<m:description>The expected level of impact resulting from the described information.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Impact Level</b>: The expected level of impact resulting from the described information.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="base"
type="oscal-ssp-base-FIELD"
minOccurs="1"
maxOccurs="1"/>
<xs:element name="selected"
type="oscal-ssp-selected-FIELD"
minOccurs="0"
maxOccurs="1"/>
<xs:element name="adjustment-justification" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Adjustment Justification</m:formal-name>
<m:description>If the selected security level is different from the base security level, this contains the justification for the change.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Adjustment Justification</b>: If the selected security level is different from the base security level, this contains the justification for the change.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="oscal-ssp-base-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Base Level (Confidentiality, Integrity, or Availability)</m:formal-name>
<m:description>The prescribed base (Confidentiality, Integrity, or Availability) security impact level.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Base Level (Confidentiality, Integrity, or Availability)</b>: The prescribed base (Confidentiality, Integrity, or Availability) security impact level.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
<xs:simpleType name="oscal-ssp-selected-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Selected Level (Confidentiality, Integrity, or Availability)</m:formal-name>
<m:description>The selected (Confidentiality, Integrity, or Availability) security impact level.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Selected Level (Confidentiality, Integrity, or Availability)</b>: The selected (Confidentiality, Integrity, or Availability) security impact level.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
<xs:complexType name="oscal-ssp-adjustment-justification-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Adjustment Justification</m:formal-name>
<m:description>If the selected security level is different from the base security level, this contains the justification for the change.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Adjustment Justification</b>: If the selected security level is different from the base security level, this contains the justification for the change.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="oscal-ssp-security-impact-level-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Security Impact Level</m:formal-name>
<m:description>The overall level of expected impact resulting from unauthorized disclosure, modification, or loss of access to information.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Security Impact Level</b>: The overall level of expected impact resulting from unauthorized disclosure, modification, or loss of access to information.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="security-objective-confidentiality"
minOccurs="1"
maxOccurs="1">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Security Objective: Confidentiality</m:formal-name>
<m:description>A target-level of confidentiality for the system, based on the sensitivity of information within the system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Security Objective: Confidentiality</b>: A target-level of confidentiality for the system, based on the sensitivity of information within the system.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
</xs:element>
<xs:element name="security-objective-integrity" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Security Objective: Integrity</m:formal-name>
<m:description>A target-level of integrity for the system, based on the sensitivity of information within the system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Security Objective: Integrity</b>: A target-level of integrity for the system, based on the sensitivity of information within the system.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
</xs:element>
<xs:element name="security-objective-availability" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Security Objective: Availability</m:formal-name>
<m:description>A target-level of availability for the system, based on the sensitivity of information within the system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Security Objective: Availability</b>: A target-level of availability for the system, based on the sensitivity of information within the system.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="oscal-ssp-status-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Status</m:formal-name>
<m:description>Describes the operational status of the system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Status</b>: Describes the operational status of the system.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="state" use="required" type="StringDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>State</m:formal-name>
<m:description>The current operating status.</m:description>
</xs:appinfo>
<xs:documentation>
<b>State</b>: The current operating status.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:simpleType name="oscal-ssp-date-authorized-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>System Authorization Date</m:formal-name>
<m:description>The date the system received its authorization.</m:description>
</xs:appinfo>
<xs:documentation>
<b>System Authorization Date</b>: The date the system received its authorization.</xs:documentation>
</xs:annotation>
<xs:restriction base="DateDatatype"/>
</xs:simpleType>
<xs:complexType name="oscal-ssp-authorization-boundary-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Authorization Boundary</m:formal-name>
<m:description>A description of this system's authorization boundary, optionally supplemented by diagrams that illustrate the authorization boundary.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Authorization Boundary</b>: A description of this system's authorization boundary, optionally supplemented by diagrams that illustrate the authorization boundary.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="description" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Authorization Boundary Description</m:formal-name>
<m:description>A summary of the system's authorization boundary.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Authorization Boundary Description</b>: A summary of the system's authorization boundary.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="diagram"
type="oscal-ssp-diagram-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="oscal-ssp-diagram-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Diagram</m:formal-name>
<m:description>A graphic that provides a visual representation the system, or some aspect of it.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Diagram</b>: A graphic that provides a visual representation the system, or some aspect of it.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="description" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Diagram Description</m:formal-name>
<m:description>A summary of the diagram.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Diagram Description</b>: A summary of the diagram.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="caption" minOccurs="0" maxOccurs="1">
<xs:complexType mixed="true">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Caption</m:formal-name>
<m:description>A brief caption to annotate the diagram.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Caption</b>: A brief caption to annotate the diagram.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupLineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Diagram ID</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a>, <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#globally-unique">globally unique</a> identifier with <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#cross-instance">cross-instance</a> scope that can be used to reference this diagram elsewhere in <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#ssp-identifiers">this or other OSCAL instances</a>. The locally defined <em>UUID</em> of the <code>diagram</code> can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#consistency">per-subject</a>, which means it should be consistently used to identify the same subject across revisions of the document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Diagram ID</b>: A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this diagram elsewhere in this or other OSCAL instances. The locally defined UUID of the diagram can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-ssp-network-architecture-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Network Architecture</m:formal-name>
<m:description>A description of the system's network architecture, optionally supplemented by diagrams that illustrate the network architecture.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Network Architecture</b>: A description of the system's network architecture, optionally supplemented by diagrams that illustrate the network architecture.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="description" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Network Architecture Description</m:formal-name>
<m:description>A summary of the system's network architecture.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Network Architecture Description</b>: A summary of the system's network architecture.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="diagram"
type="oscal-ssp-diagram-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="oscal-ssp-data-flow-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Data Flow</m:formal-name>
<m:description>A description of the logical flow of information within the system and across its boundaries, optionally supplemented by diagrams that illustrate these flows.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Data Flow</b>: A description of the logical flow of information within the system and across its boundaries, optionally supplemented by diagrams that illustrate these flows.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="description" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Data Flow Description</m:formal-name>
<m:description>A summary of the system's data flow.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Data Flow Description</b>: A summary of the system's data flow.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="diagram"
type="oscal-ssp-diagram-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="oscal-ssp-system-implementation-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>System Implementation</m:formal-name>
<m:description>Provides information as to how the system is implemented.</m:description>
</xs:appinfo>
<xs:documentation>
<b>System Implementation</b>: Provides information as to how the system is implemented.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="leveraged-authorization" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Leveraged Authorization</m:formal-name>
<m:description>A description of another authorized system from which this system inherits capabilities that satisfy security requirements. Another term for this concept is a <em>common control provider</em>.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Leveraged Authorization</b>: A description of another authorized system from which this system inherits capabilities that satisfy security requirements. Another term for this concept is a common control provider.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="title" minOccurs="1" maxOccurs="1">
<xs:complexType mixed="true">
<xs:annotation>
<xs:appinfo>
<m:formal-name>title field</m:formal-name>
<m:description>A human readable name for the leveraged authorization in the context of the system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>title field</b>: A human readable name for the leveraged authorization in the context of the system.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupLineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="party-uuid" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>party-uuid field</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a> identifier reference to the <code>party</code> that manages the leveraged system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>party-uuid field</b>: A machine-oriented identifier reference to the party that manages the leveraged system.</xs:documentation>
</xs:annotation>
<xs:restriction base="UUIDDatatype"/>
</xs:simpleType>
</xs:element>
<xs:element name="date-authorized"
type="oscal-ssp-date-authorized-FIELD"
minOccurs="1"
maxOccurs="1"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Leveraged Authorization Universally Unique Identifier</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a>, <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#globally-unique">globally unique</a> identifier with <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#cross-instance">cross-instance</a> scope and can be used to reference this leveraged authorization elsewhere in <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#ssp-identifiers">this or other OSCAL instances</a>. The locally defined <em>UUID</em> of the <code>leveraged authorization</code> can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#consistency">per-subject</a>, which means it should be consistently used to identify the same subject across revisions of the document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Leveraged Authorization Universally Unique Identifier</b>: A machine-oriented, globally unique identifier with cross-instance scope and can be used to reference this leveraged authorization elsewhere in this or other OSCAL instances. The locally defined UUID of the leveraged authorization can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="user"
type="oscal-implementation-common-system-user-ASSEMBLY"
minOccurs="1"
maxOccurs="unbounded"/>
<xs:element name="component"
type="oscal-implementation-common-system-component-ASSEMBLY"
minOccurs="1"
maxOccurs="unbounded"/>
<xs:element name="inventory-item"
type="oscal-implementation-common-inventory-item-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="oscal-ssp-control-implementation-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Control Implementation</m:formal-name>
<m:description>Describes how the system satisfies a set of controls.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Control Implementation</b>: Describes how the system satisfies a set of controls.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="description" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Control Implementation Description</m:formal-name>
<m:description>A statement describing important things to know about how this set of control satisfaction documentation is approached.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Control Implementation Description</b>: A statement describing important things to know about how this set of control satisfaction documentation is approached.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="set-parameter"
type="oscal-implementation-common-set-parameter-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="implemented-requirement"
type="oscal-ssp-implemented-requirement-ASSEMBLY"
minOccurs="1"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="oscal-ssp-implemented-requirement-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Control-based Requirement</m:formal-name>
<m:description>Describes how the system satisfies the requirements of an individual control.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Control-based Requirement</b>: Describes how the system satisfies the requirements of an individual control.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="set-parameter"
type="oscal-implementation-common-set-parameter-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="responsible-role"
type="oscal-metadata-responsible-role-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="statement"
type="oscal-ssp-statement-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="by-component"
type="oscal-ssp-by-component-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Control Requirement Universally Unique Identifier</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a>, <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#globally-unique">globally unique</a> identifier with <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#cross-instance">cross-instance</a> scope that can be used to reference this control requirement elsewhere in <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#ssp-identifiers">this or other OSCAL instances</a>. The locally defined <em>UUID</em> of the <code>control requirement</code> can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#consistency">per-subject</a>, which means it should be consistently used to identify the same subject across revisions of the document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Control Requirement Universally Unique Identifier</b>: A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this control requirement elsewhere in this or other OSCAL instances. The locally defined UUID of the control requirement can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="control-id" use="required" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Control Identifier Reference</m:formal-name>
<m:description>A reference to a control with a corresponding <code>id</code> value. When referencing an externally defined <code>control</code>, the <code>Control Identifier Reference</code> must be used in the context of the external / imported OSCAL instance (e.g., uri-reference).</m:description>
</xs:appinfo>
<xs:documentation>
<b>Control Identifier Reference</b>: A reference to a control with a corresponding id value. When referencing an externally defined control, the Control Identifier Reference must be used in the context of the external / imported OSCAL instance (e.g., uri-reference).</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-ssp-statement-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Specific Control Statement</m:formal-name>
<m:description>Identifies which statements within a control are addressed.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Specific Control Statement</b>: Identifies which statements within a control are addressed.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="responsible-role"
type="oscal-metadata-responsible-role-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="by-component"
type="oscal-ssp-by-component-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="statement-id" use="required" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Control Statement Reference</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#human-oriented">human-oriented</a> identifier reference to a <code>control statement</code>.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Control Statement Reference</b>: A human-oriented identifier reference to a control statement.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Control Statement Reference Universally Unique Identifier</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a>, <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#globally-unique">globally unique</a> identifier with <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#cross-instance">cross-instance</a> scope that can be used to reference this control statement elsewhere in <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#ssp-identifiers">this or other OSCAL instances</a>. The <em>UUID</em> of the <code>control statement</code> in the source OSCAL instance is sufficient to reference the data item locally or globally (e.g., in an imported OSCAL instance).</m:description>
</xs:appinfo>
<xs:documentation>
<b>Control Statement Reference Universally Unique Identifier</b>: A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this control statement elsewhere in this or other OSCAL instances. The UUID of the control statement in the source OSCAL instance is sufficient to reference the data item locally or globally (e.g., in an imported OSCAL instance).</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-ssp-by-component-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Component Control Implementation</m:formal-name>
<m:description>Defines how the referenced component implements a set of controls.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Component Control Implementation</b>: Defines how the referenced component implements a set of controls.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="description" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Control Implementation Description</m:formal-name>
<m:description>An implementation statement that describes how a control or a control statement is implemented within the referenced system component.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Control Implementation Description</b>: An implementation statement that describes how a control or a control statement is implemented within the referenced system component.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="set-parameter"
type="oscal-implementation-common-set-parameter-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="implementation-status"
type="oscal-implementation-common-implementation-status-ASSEMBLY"
minOccurs="0"
maxOccurs="1"/>
<xs:element name="export" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Export</m:formal-name>
<m:description>Identifies content intended for external consumption, such as with leveraged organizations.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Export</b>: Identifies content intended for external consumption, such as with leveraged organizations.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="description" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Control Implementation Export Description</m:formal-name>
<m:description>An implementation statement that describes the aspects of the control or control statement implementation that can be available to another system leveraging this system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Control Implementation Export Description</b>: An implementation statement that describes the aspects of the control or control statement implementation that can be available to another system leveraging this system.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="provided" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Provided Control Implementation</m:formal-name>
<m:description>Describes a capability which may be inherited by a leveraging system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Provided Control Implementation</b>: Describes a capability which may be inherited by a leveraging system.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="description" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Provided Control Implementation Description</m:formal-name>
<m:description>An implementation statement that describes the aspects of the control or control statement implementation that can be provided to another system leveraging this system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Provided Control Implementation Description</b>: An implementation statement that describes the aspects of the control or control statement implementation that can be provided to another system leveraging this system.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="responsible-role"
type="oscal-metadata-responsible-role-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Provided Universally Unique Identifier</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a>, <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#globally-unique">globally unique</a> identifier with <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#cross-instance">cross-instance</a> scope that can be used to reference this provided entry elsewhere in <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#ssp-identifiers">this or other OSCAL instances</a>. The locally defined <em>UUID</em> of the <code>provided</code> entry can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#consistency">per-subject</a>, which means it should be consistently used to identify the same subject across revisions of the document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Provided Universally Unique Identifier</b>: A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this provided entry elsewhere in this or other OSCAL instances. The locally defined UUID of the provided entry can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="responsibility" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Control Implementation Responsibility</m:formal-name>
<m:description>Describes a control implementation responsibility imposed on a leveraging system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Control Implementation Responsibility</b>: Describes a control implementation responsibility imposed on a leveraging system.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="description" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Control Implementation Responsibility Description</m:formal-name>
<m:description>An implementation statement that describes the aspects of the control or control statement implementation that a leveraging system must implement to satisfy the control provided by a leveraged system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Control Implementation Responsibility Description</b>: An implementation statement that describes the aspects of the control or control statement implementation that a leveraging system must implement to satisfy the control provided by a leveraged system.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="responsible-role"
type="oscal-metadata-responsible-role-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Responsibility Universally Unique Identifier</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a>, <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#globally-unique">globally unique</a> identifier with <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#cross-instance">cross-instance</a> scope that can be used to reference this responsibility elsewhere in <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#ssp-identifiers">this or other OSCAL instances</a>. The locally defined <em>UUID</em> of the <code>responsibility</code> can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#consistency">per-subject</a>, which means it should be consistently used to identify the same subject across revisions of the document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Responsibility Universally Unique Identifier</b>: A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this responsibility elsewhere in this or other OSCAL instances. The locally defined UUID of the responsibility can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="provided-uuid" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Provided UUID</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a> identifier reference to an inherited control implementation that a leveraging system is inheriting from a leveraged system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Provided UUID</b>: A machine-oriented identifier reference to an inherited control implementation that a leveraging system is inheriting from a leveraged system.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="inherited" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Inherited Control Implementation</m:formal-name>
<m:description>Describes a control implementation inherited by a leveraging system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Inherited Control Implementation</b>: Describes a control implementation inherited by a leveraging system.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="description" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Inherited Control Implementation Description</m:formal-name>
<m:description>An implementation statement that describes the aspects of a control or control statement implementation that a leveraging system is inheriting from a leveraged system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Inherited Control Implementation Description</b>: An implementation statement that describes the aspects of a control or control statement implementation that a leveraging system is inheriting from a leveraged system.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="responsible-role"
type="oscal-metadata-responsible-role-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Inherited Universally Unique Identifier</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a>, <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#globally-unique">globally unique</a> identifier with <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#cross-instance">cross-instance</a> scope that can be used to reference this inherited entry elsewhere in <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#ssp-identifiers">this or other OSCAL instances</a>. The locally defined <em>UUID</em> of the <code>inherited control implementation</code> can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#consistency">per-subject</a>, which means it should be consistently used to identify the same subject across revisions of the document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Inherited Universally Unique Identifier</b>: A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this inherited entry elsewhere in this or other OSCAL instances. The locally defined UUID of the inherited control implementation can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="provided-uuid" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Provided UUID</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a> identifier reference to an inherited control implementation that a leveraging system is inheriting from a leveraged system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Provided UUID</b>: A machine-oriented identifier reference to an inherited control implementation that a leveraging system is inheriting from a leveraged system.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="satisfied" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Satisfied Control Implementation Responsibility</m:formal-name>
<m:description>Describes how this system satisfies a responsibility imposed by a leveraged system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Satisfied Control Implementation Responsibility</b>: Describes how this system satisfies a responsibility imposed by a leveraged system.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="description" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Satisfied Control Implementation Responsibility Description</m:formal-name>
<m:description>An implementation statement that describes the aspects of a control or control statement implementation that a leveraging system is implementing based on a requirement from a leveraged system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Satisfied Control Implementation Responsibility Description</b>: An implementation statement that describes the aspects of a control or control statement implementation that a leveraging system is implementing based on a requirement from a leveraged system.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="responsible-role"
type="oscal-metadata-responsible-role-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Satisfied Universally Unique Identifier</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a>, <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#globally-unique">globally unique</a> identifier with <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#cross-instance">cross-instance</a> scope that can be used to reference this satisfied control implementation entry elsewhere in <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#ssp-identifiers">this or other OSCAL instances</a>. The locally defined <em>UUID</em> of the <code>control implementation</code> can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#consistency">per-subject</a>, which means it should be consistently used to identify the same subject across revisions of the document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Satisfied Universally Unique Identifier</b>: A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this satisfied control implementation entry elsewhere in this or other OSCAL instances. The locally defined UUID of the control implementation can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="responsibility-uuid" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Responsibility UUID</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a> identifier reference to a control implementation that satisfies a responsibility imposed by a leveraged system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Responsibility UUID</b>: A machine-oriented identifier reference to a control implementation that satisfies a responsibility imposed by a leveraged system.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="responsible-role"
type="oscal-metadata-responsible-role-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="component-uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Component Universally Unique Identifier Reference</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a> identifier reference to the <code>component</code> that is implemeting a given control.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Component Universally Unique Identifier Reference</b>: A machine-oriented identifier reference to the component that is implemeting a given control.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>By-Component Universally Unique Identifier</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a>, <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#globally-unique">globally unique</a> identifier with <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#cross-instance">cross-instance</a> scope that can be used to reference this by-component entry elsewhere in <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#ssp-identifiers">this or other OSCAL instances</a>. The locally defined <em>UUID</em> of the <code>by-component</code> entry can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#consistency">per-subject</a>, which means it should be consistently used to identify the same subject across revisions of the document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>By-Component Universally Unique Identifier</b>: A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this by-component entry elsewhere in this or other OSCAL instances. The locally defined UUID of the by-component entry can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-metadata-metadata-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Document Metadata</m:formal-name>
<m:description>Provides information about the containing document, and defines concepts that are shared across the document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Document Metadata</b>: Provides information about the containing document, and defines concepts that are shared across the document.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="title" minOccurs="1" maxOccurs="1">
<xs:complexType mixed="true">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Document Title</m:formal-name>
<m:description>A name given to the document, which may be used by a tool for display and navigation.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Document Title</b>: A name given to the document, which may be used by a tool for display and navigation.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupLineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="published"
type="oscal-metadata-published-FIELD"
minOccurs="0"
maxOccurs="1"/>
<xs:element name="last-modified"
type="oscal-metadata-last-modified-FIELD"
minOccurs="1"
maxOccurs="1"/>
<xs:element name="version"
type="oscal-metadata-version-FIELD"
minOccurs="1"
maxOccurs="1"/>
<xs:element name="oscal-version"
type="oscal-metadata-oscal-version-FIELD"
minOccurs="1"
maxOccurs="1"/>
<xs:element name="revisions" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>revisions</m:formal-name>
<m:description>A group of 'revision' elements</m:description>
</xs:appinfo>
<xs:documentation>
<b>revisions</b>: A group of 'revision' elements</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="revision" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Revision History Entry</m:formal-name>
<m:description>An entry in a sequential list of revisions to the containing document, expected to be in reverse chronological order (i.e. latest first).</m:description>
</xs:appinfo>
<xs:documentation>
<b>Revision History Entry</b>: An entry in a sequential list of revisions to the containing document, expected to be in reverse chronological order (i.e. latest first).</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="title" minOccurs="0" maxOccurs="1">
<xs:complexType mixed="true">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Document Title</m:formal-name>
<m:description>A name given to the document revision, which may be used by a tool for display and navigation.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Document Title</b>: A name given to the document revision, which may be used by a tool for display and navigation.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupLineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="published"
type="oscal-metadata-published-FIELD"
minOccurs="0"
maxOccurs="1"/>
<xs:element name="last-modified"
type="oscal-metadata-last-modified-FIELD"
minOccurs="0"
maxOccurs="1"/>
<xs:element name="version"
type="oscal-metadata-version-FIELD"
minOccurs="1"
maxOccurs="1"/>
<xs:element name="oscal-version"
type="oscal-metadata-oscal-version-FIELD"
minOccurs="0"
maxOccurs="1"/>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="document-id"
type="oscal-metadata-document-id-FIELD"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="role" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Role</m:formal-name>
<m:description>Defines a function, which might be assigned to a party in a specific situation.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Role</b>: Defines a function, which might be assigned to a party in a specific situation.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="title" minOccurs="1" maxOccurs="1">
<xs:complexType mixed="true">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Role Title</m:formal-name>
<m:description>A name given to the role, which may be used by a tool for display and navigation.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Role Title</b>: A name given to the role, which may be used by a tool for display and navigation.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupLineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="short-name" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Role Short Name</m:formal-name>
<m:description>A short common name, abbreviation, or acronym for the role.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Role Short Name</b>: A short common name, abbreviation, or acronym for the role.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
</xs:element>
<xs:element name="description" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Role Description</m:formal-name>
<m:description>A summary of the role's purpose and associated responsibilities.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Role Description</b>: A summary of the role's purpose and associated responsibilities.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" use="required" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Role Identifier</m:formal-name>
<m:description>A unique identifier for the role.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Role Identifier</b>: A unique identifier for the role.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="location" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Location</m:formal-name>
<m:description>A physical point of presence, which may be associated with people, organizations, or other concepts within the current or linked OSCAL document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Location</b>: A physical point of presence, which may be associated with people, organizations, or other concepts within the current or linked OSCAL document.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="title" minOccurs="0" maxOccurs="1">
<xs:complexType mixed="true">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Location Title</m:formal-name>
<m:description>A name given to the location, which may be used by a tool for display and navigation.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Location Title</b>: A name given to the location, which may be used by a tool for display and navigation.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupLineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="address"
type="oscal-metadata-address-ASSEMBLY"
minOccurs="0"
maxOccurs="1"/>
<xs:element name="email-address"
type="oscal-metadata-email-address-FIELD"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="telephone-number"
type="oscal-metadata-telephone-number-FIELD"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="url" minOccurs="0" maxOccurs="unbounded">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Location URL</m:formal-name>
<m:description>The uniform resource locator (URL) for a web site or other resource associated with the location.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Location URL</b>: The uniform resource locator (URL) for a web site or other resource associated with the location.</xs:documentation>
</xs:annotation>
<xs:restriction base="URIDatatype"/>
</xs:simpleType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Location Universally Unique Identifier</m:formal-name>
<m:description>A unique ID for the location, for reference.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Location Universally Unique Identifier</b>: A unique ID for the location, for reference.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="party" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Party</m:formal-name>
<m:description>An organization or person, which may be associated with roles or other concepts within the current or linked OSCAL document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Party</b>: An organization or person, which may be associated with roles or other concepts within the current or linked OSCAL document.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="name" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Party Name</m:formal-name>
<m:description>The full name of the party. This is typically the legal name associated with the party.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Party Name</b>: The full name of the party. This is typically the legal name associated with the party.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
</xs:element>
<xs:element name="short-name" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Party Short Name</m:formal-name>
<m:description>A short common name, abbreviation, or acronym for the party.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Party Short Name</b>: A short common name, abbreviation, or acronym for the party.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
</xs:element>
<xs:element name="external-id" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Party External Identifier</m:formal-name>
<m:description>An identifier for a person or organization using a designated scheme. e.g. an Open Researcher and Contributor ID (ORCID).</m:description>
</xs:appinfo>
<xs:documentation>
<b>Party External Identifier</b>: An identifier for a person or organization using a designated scheme. e.g. an Open Researcher and Contributor ID (ORCID).</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="StringDatatype">
<xs:attribute name="scheme" use="required" type="URIDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>External Identifier Schema</m:formal-name>
<m:description>Indicates the type of external identifier.</m:description>
</xs:appinfo>
<xs:documentation>
<b>External Identifier Schema</b>: Indicates the type of external identifier.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="email-address"
type="oscal-metadata-email-address-FIELD"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="telephone-number"
type="oscal-metadata-telephone-number-FIELD"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:choice>
<xs:element name="address"
type="oscal-metadata-address-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="location-uuid"
type="oscal-metadata-location-uuid-FIELD"
minOccurs="0"
maxOccurs="unbounded"/>
</xs:choice>
<xs:element name="member-of-organization" minOccurs="0" maxOccurs="unbounded">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Organizational Affiliation</m:formal-name>
<m:description>A reference to another <code>party</code> by UUID, typically an organization, that this subject is associated with.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Organizational Affiliation</b>: A reference to another party by UUID, typically an organization, that this subject is associated with.</xs:documentation>
</xs:annotation>
<xs:restriction base="UUIDDatatype"/>
</xs:simpleType>
</xs:element>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Party Universally Unique Identifier</m:formal-name>
<m:description>A unique identifier for the party.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Party Universally Unique Identifier</b>: A unique identifier for the party.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" use="required" type="StringDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Party Type</m:formal-name>
<m:description>A category describing the kind of party the object describes.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Party Type</b>: A category describing the kind of party the object describes.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="responsible-party"
type="oscal-metadata-responsible-party-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="action"
type="oscal-metadata-action-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="oscal-metadata-location-uuid-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Location Universally Unique Identifier Reference</m:formal-name>
<m:description>Reference to a location by UUID.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Location Universally Unique Identifier Reference</b>: Reference to a location by UUID.</xs:documentation>
</xs:annotation>
<xs:restriction base="UUIDDatatype"/>
</xs:simpleType>
<xs:simpleType name="oscal-metadata-party-uuid-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Party Universally Unique Identifier Reference</m:formal-name>
<m:description>Reference to a party by UUID.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Party Universally Unique Identifier Reference</b>: Reference to a party by UUID.</xs:documentation>
</xs:annotation>
<xs:restriction base="UUIDDatatype"/>
</xs:simpleType>
<xs:simpleType name="oscal-metadata-role-id-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Role Identifier Reference</m:formal-name>
<m:description>Reference to a role by UUID.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Role Identifier Reference</b>: Reference to a role by UUID.</xs:documentation>
</xs:annotation>
<xs:restriction base="TokenDatatype"/>
</xs:simpleType>
<xs:complexType name="oscal-metadata-back-matter-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Back matter</m:formal-name>
<m:description>A collection of resources that may be referenced from within the OSCAL document instance.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Back matter</b>: A collection of resources that may be referenced from within the OSCAL document instance.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="resource" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Resource</m:formal-name>
<m:description>A resource associated with content in the containing document instance. A resource may be directly included in the document using base64 encoding or may point to one or more equivalent internet resources.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Resource</b>: A resource associated with content in the containing document instance. A resource may be directly included in the document using base64 encoding or may point to one or more equivalent internet resources.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="title" minOccurs="0" maxOccurs="1">
<xs:complexType mixed="true">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Resource Title</m:formal-name>
<m:description>An optional name given to the resource, which may be used by a tool for display and navigation.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Resource Title</b>: An optional name given to the resource, which may be used by a tool for display and navigation.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupLineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="description" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Resource Description</m:formal-name>
<m:description>An optional short summary of the resource used to indicate the purpose of the resource.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Resource Description</b>: An optional short summary of the resource used to indicate the purpose of the resource.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="document-id"
type="oscal-metadata-document-id-FIELD"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="citation" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Citation</m:formal-name>
<m:description>An optional citation consisting of end note text using structured markup.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Citation</b>: An optional citation consisting of end note text using structured markup.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="text" minOccurs="1" maxOccurs="1">
<xs:complexType mixed="true">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Citation Text</m:formal-name>
<m:description>A line of citation text.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Citation Text</b>: A line of citation text.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupLineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="rlink" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Resource link</m:formal-name>
<m:description>A URL-based pointer to an external resource with an optional hash for verification and change detection.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Resource link</b>: A URL-based pointer to an external resource with an optional hash for verification and change detection.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="hash"
type="oscal-metadata-hash-FIELD"
minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="href" use="required" type="URIReferenceDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Hypertext Reference</m:formal-name>
<m:description>A resolvable URL pointing to the referenced resource.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Hypertext Reference</b>: A resolvable URL pointing to the referenced resource.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="media-type" type="StringDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Media Type</m:formal-name>
<m:description>A label that indicates the nature of a resource, as a data serialization or format.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Media Type</b>: A label that indicates the nature of a resource, as a data serialization or format.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="base64" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Base64</m:formal-name>
<m:description>A resource encoded using the Base64 alphabet defined by <a href="https://www.rfc-editor.org/rfc/rfc2045.html">RFC 2045</a>.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Base64</b>: A resource encoded using the Base64 alphabet defined by RFC 2045.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="Base64Datatype">
<xs:attribute name="filename" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>File Name</m:formal-name>
<m:description>Name of the file before it was encoded as Base64 to be embedded in a <code>resource</code>. This is the name that will be assigned to the file when the file is decoded.</m:description>
</xs:appinfo>
<xs:documentation>
<b>File Name</b>: Name of the file before it was encoded as Base64 to be embedded in a resource. This is the name that will be assigned to the file when the file is decoded.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="media-type" type="StringDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Media Type</m:formal-name>
<m:description>A label that indicates the nature of a resource, as a data serialization or format.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Media Type</b>: A label that indicates the nature of a resource, as a data serialization or format.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Resource Universally Unique Identifier</m:formal-name>
<m:description>A unique identifier for a resource.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Resource Universally Unique Identifier</b>: A unique identifier for a resource.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="oscal-metadata-property-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Property</m:formal-name>
<m:description>An attribute, characteristic, or quality of the containing object expressed as a namespace qualified name/value pair.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Property</b>: An attribute, characteristic, or quality of the containing object expressed as a namespace qualified name/value pair.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" use="required" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Property Name</m:formal-name>
<m:description>A textual label, within a namespace, that uniquely identifies a specific attribute, characteristic, or quality of the property's containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Property Name</b>: A textual label, within a namespace, that uniquely identifies a specific attribute, characteristic, or quality of the property's containing object.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="uuid" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Property Universally Unique Identifier</m:formal-name>
<m:description>A unique identifier for a property.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Property Universally Unique Identifier</b>: A unique identifier for a property.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ns" type="URIDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Property Namespace</m:formal-name>
<m:description>A namespace qualifying the property's name. This allows different organizations to associate distinct semantics with the same name.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Property Namespace</b>: A namespace qualifying the property's name. This allows different organizations to associate distinct semantics with the same name.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="value" use="required" type="StringDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Property Value</m:formal-name>
<m:description>Indicates the value of the attribute, characteristic, or quality.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Property Value</b>: Indicates the value of the attribute, characteristic, or quality.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Property Class</m:formal-name>
<m:description>A textual label that provides a sub-type or characterization of the property's <code>name</code>.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Property Class</b>: A textual label that provides a sub-type or characterization of the property's name.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="group" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Property Group</m:formal-name>
<m:description>An identifier for relating distinct sets of properties.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Property Group</b>: An identifier for relating distinct sets of properties.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-metadata-link-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Link</m:formal-name>
<m:description>A reference to a local or remote resource, that has a specific relation to the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Link</b>: A reference to a local or remote resource, that has a specific relation to the containing object.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="text" minOccurs="0" maxOccurs="1">
<xs:complexType mixed="true">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Link Text</m:formal-name>
<m:description>A textual label to associate with the link, which may be used for presentation in a tool.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Link Text</b>: A textual label to associate with the link, which may be used for presentation in a tool.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupLineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="href" use="required" type="URIReferenceDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Hypertext Reference</m:formal-name>
<m:description>A resolvable URL reference to a resource.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Hypertext Reference</b>: A resolvable URL reference to a resource.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="rel" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Link Relation Type</m:formal-name>
<m:description>Describes the type of relationship provided by the link's hypertext reference. This can be an indicator of the link's purpose.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Link Relation Type</b>: Describes the type of relationship provided by the link's hypertext reference. This can be an indicator of the link's purpose.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="media-type" type="StringDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Media Type</m:formal-name>
<m:description>A label that indicates the nature of a resource, as a data serialization or format.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Media Type</b>: A label that indicates the nature of a resource, as a data serialization or format.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="resource-fragment" type="StringDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Resource Fragment</m:formal-name>
<m:description>In case where the <code>href</code> points to a <code>back-matter/resource</code>, this value will indicate the URI <a href="https://www.rfc-editor.org/rfc/rfc3986#section-3.5">fragment</a> to append to any <code>rlink</code> associated with the resource. This value MUST be <a href="https://www.rfc-editor.org/rfc/rfc3986#section-2.1">URI encoded</a>.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Resource Fragment</b>: In case where the href points to a back-matter/resource, this value will indicate the URI fragment to append to any rlink associated with the resource. This value MUST be URI encoded.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-metadata-responsible-party-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Responsible Party</m:formal-name>
<m:description>A reference to a set of persons and/or organizations that have responsibility for performing the referenced role in the context of the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Responsible Party</b>: A reference to a set of persons and/or organizations that have responsibility for performing the referenced role in the context of the containing object.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="party-uuid"
type="oscal-metadata-party-uuid-FIELD"
minOccurs="1"
maxOccurs="unbounded"/>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="role-id" use="required" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Responsible Role</m:formal-name>
<m:description>A reference to a <code>role</code> performed by a <code>party</code>.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Responsible Role</b>: A reference to a role performed by a party.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-metadata-action-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Action</m:formal-name>
<m:description>An action applied by a role within a given party to the content.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Action</b>: An action applied by a role within a given party to the content.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="responsible-party"
type="oscal-metadata-responsible-party-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Action Universally Unique Identifier</m:formal-name>
<m:description>A unique identifier that can be used to reference this defined action elsewhere in an OSCAL document. A UUID should be consistently used for a given location across revisions of the document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Action Universally Unique Identifier</b>: A unique identifier that can be used to reference this defined action elsewhere in an OSCAL document. A UUID should be consistently used for a given location across revisions of the document.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="date" type="DateTimeWithTimezoneDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Action Occurrence Date</m:formal-name>
<m:description>The date and time when the action occurred.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Action Occurrence Date</b>: The date and time when the action occurred.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" use="required" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Action Type</m:formal-name>
<m:description>The type of action documented by the assembly, such as an approval.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Action Type</b>: The type of action documented by the assembly, such as an approval.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="system" use="required" type="URIDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Action Type System</m:formal-name>
<m:description>Specifies the action type system used.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Action Type System</b>: Specifies the action type system used.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-metadata-responsible-role-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Responsible Role</m:formal-name>
<m:description>A reference to a role with responsibility for performing a function relative to the containing object, optionally associated with a set of persons and/or organizations that perform that role.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Responsible Role</b>: A reference to a role with responsibility for performing a function relative to the containing object, optionally associated with a set of persons and/or organizations that perform that role.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="party-uuid"
type="oscal-metadata-party-uuid-FIELD"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="role-id" use="required" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Responsible Role ID</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#human-oriented">human-oriented</a> identifier reference to a <code>role</code> performed.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Responsible Role ID</b>: A human-oriented identifier reference to a role performed.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-metadata-hash-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Hash</m:formal-name>
<m:description>A representation of a cryptographic digest generated over a resource using a specified hash algorithm.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Hash</b>: A representation of a cryptographic digest generated over a resource using a specified hash algorithm.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="StringDatatype">
<xs:attribute name="algorithm" use="required" type="StringDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Hash algorithm</m:formal-name>
<m:description>The digest method by which a hash is derived.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Hash algorithm</b>: The digest method by which a hash is derived.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="oscal-metadata-remarks-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="oscal-metadata-published-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Publication Timestamp</m:formal-name>
<m:description>The date and time the document was last made available.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Publication Timestamp</b>: The date and time the document was last made available.</xs:documentation>
</xs:annotation>
<xs:restriction base="DateTimeWithTimezoneDatatype"/>
</xs:simpleType>
<xs:simpleType name="oscal-metadata-last-modified-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Last Modified Timestamp</m:formal-name>
<m:description>The date and time the document was last stored for later retrieval.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Last Modified Timestamp</b>: The date and time the document was last stored for later retrieval.</xs:documentation>
</xs:annotation>
<xs:restriction base="DateTimeWithTimezoneDatatype"/>
</xs:simpleType>
<xs:simpleType name="oscal-metadata-version-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Document Version</m:formal-name>
<m:description>Used to distinguish a specific revision of an OSCAL document from other previous and future versions.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Document Version</b>: Used to distinguish a specific revision of an OSCAL document from other previous and future versions.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
<xs:simpleType name="oscal-metadata-oscal-version-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>OSCAL Version</m:formal-name>
<m:description>The OSCAL model version the document was authored against and will conform to as valid.</m:description>
</xs:appinfo>
<xs:documentation>
<b>OSCAL Version</b>: The OSCAL model version the document was authored against and will conform to as valid.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
<xs:simpleType name="oscal-metadata-email-address-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Email Address</m:formal-name>
<m:description>An email address as defined by <a href="https://tools.ietf.org/html/rfc5322#section-3.4.1">RFC 5322 Section 3.4.1</a>.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Email Address</b>: An email address as defined by RFC 5322 Section 3.4.1.</xs:documentation>
</xs:annotation>
<xs:restriction base="EmailAddressDatatype"/>
</xs:simpleType>
<xs:complexType name="oscal-metadata-telephone-number-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Telephone Number</m:formal-name>
<m:description>A telephone service number as defined by <a href="https://www.itu.int/rec/T-REC-E.164-201011-I/en">ITU-T E.164</a>.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Telephone Number</b>: A telephone service number as defined by ITU-T E.164.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="StringDatatype">
<xs:attribute name="type" type="StringDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>type flag</m:formal-name>
<m:description>Indicates the type of phone number.</m:description>
</xs:appinfo>
<xs:documentation>
<b>type flag</b>: Indicates the type of phone number.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="oscal-metadata-address-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Address</m:formal-name>
<m:description>A postal address for the location.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Address</b>: A postal address for the location.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="addr-line"
type="oscal-metadata-addr-line-FIELD"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="city" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>City</m:formal-name>
<m:description>City, town or geographical region for the mailing address.</m:description>
</xs:appinfo>
<xs:documentation>
<b>City</b>: City, town or geographical region for the mailing address.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
</xs:element>
<xs:element name="state" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>State</m:formal-name>
<m:description>State, province or analogous geographical region for a mailing address.</m:description>
</xs:appinfo>
<xs:documentation>
<b>State</b>: State, province or analogous geographical region for a mailing address.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
</xs:element>
<xs:element name="postal-code" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Postal Code</m:formal-name>
<m:description>Postal or ZIP code for mailing address.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Postal Code</b>: Postal or ZIP code for mailing address.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
</xs:element>
<xs:element name="country" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Country Code</m:formal-name>
<m:description>The ISO 3166-1 alpha-2 country code for the mailing address.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Country Code</b>: The ISO 3166-1 alpha-2 country code for the mailing address.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
</xs:element>
</xs:sequence>
<xs:attribute name="type" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Address Type</m:formal-name>
<m:description>Indicates the type of address.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Address Type</b>: Indicates the type of address.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:simpleType name="oscal-metadata-addr-line-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Address line</m:formal-name>
<m:description>A single line of an address.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Address line</b>: A single line of an address.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
<xs:complexType name="oscal-metadata-document-id-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Document Identifier</m:formal-name>
<m:description>A document identifier qualified by an identifier <code>scheme</code>.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Document Identifier</b>: A document identifier qualified by an identifier scheme.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="StringDatatype">
<xs:attribute name="scheme" type="URIDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Document Identification Scheme</m:formal-name>
<m:description>Qualifies the kind of document identifier using a URI. If the scheme is not provided the value of the element will be interpreted as a string of characters.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Document Identification Scheme</b>: Qualifies the kind of document identifier using a URI. If the scheme is not provided the value of the element will be interpreted as a string of characters.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="oscal-implementation-common-system-component-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Component</m:formal-name>
<m:description>A defined component that can be part of an implemented system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Component</b>: A defined component that can be part of an implemented system.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="title" minOccurs="1" maxOccurs="1">
<xs:complexType mixed="true">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Component Title</m:formal-name>
<m:description>A human readable name for the system component.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Component Title</b>: A human readable name for the system component.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupLineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="description" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Component Description</m:formal-name>
<m:description>A description of the component, including information about its function.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Component Description</b>: A description of the component, including information about its function.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="purpose" minOccurs="0" maxOccurs="1">
<xs:complexType mixed="true">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Purpose</m:formal-name>
<m:description>A summary of the technological or business purpose of the component.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Purpose</b>: A summary of the technological or business purpose of the component.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupLineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="status" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Status</m:formal-name>
<m:description>Describes the operational status of the system component.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Status</b>: Describes the operational status of the system component.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="state" use="required" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>State</m:formal-name>
<m:description>The operational status.</m:description>
</xs:appinfo>
<xs:documentation>
<b>State</b>: The operational status.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="responsible-role"
type="oscal-metadata-responsible-role-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="protocol"
type="oscal-implementation-common-protocol-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Component Identifier</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a>, <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#globally-unique">globally unique</a> identifier with <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#cross-instance">cross-instance</a> scope that can be used to reference this component elsewhere in <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#scope">this or other OSCAL instances</a>. The locally defined <em>UUID</em> of the <code>component</code> can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#consistency">per-subject</a>, which means it should be consistently used to identify the same subject across revisions of the document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Component Identifier</b>: A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this component elsewhere in this or other OSCAL instances. The locally defined UUID of the component can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" use="required" type="StringDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Component Type</m:formal-name>
<m:description>A category describing the purpose of the component.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Component Type</b>: A category describing the purpose of the component.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-implementation-common-protocol-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Service Protocol Information</m:formal-name>
<m:description>Information about the protocol used to provide a service.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Service Protocol Information</b>: Information about the protocol used to provide a service.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="title" minOccurs="0" maxOccurs="1">
<xs:complexType mixed="true">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Protocol Title</m:formal-name>
<m:description>A human readable name for the protocol (e.g., Transport Layer Security).</m:description>
</xs:appinfo>
<xs:documentation>
<b>Protocol Title</b>: A human readable name for the protocol (e.g., Transport Layer Security).</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupLineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="port-range"
type="oscal-implementation-common-port-range-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="uuid" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Service Protocol Information Universally Unique Identifier</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a>, <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#globally-unique">globally unique</a> identifier with <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#cross-instance">cross-instance</a> scope that can be used to reference this service protocol information elsewhere in <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#scope">this or other OSCAL instances</a>. The locally defined <em>UUID</em> of the <code>service protocol</code> can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#consistency">per-subject</a>, which means it should be consistently used to identify the same subject across revisions of the document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Service Protocol Information Universally Unique Identifier</b>: A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this service protocol information elsewhere in this or other OSCAL instances. The locally defined UUID of the service protocol can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="name" use="required" type="StringDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Protocol Name</m:formal-name>
<m:description>The common name of the protocol, which should be the appropriate "service name" from the <a href="https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xhtml">IANA Service Name and Transport Protocol Port Number Registry</a>. </m:description>
</xs:appinfo>
<xs:documentation>
<b>Protocol Name</b>: The common name of the protocol, which should be the appropriate "service name" from the IANA Service Name and Transport Protocol Port Number Registry. </xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-implementation-common-port-range-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Port Range</m:formal-name>
<m:description>Where applicable this is the IPv4 port range on which the service operates.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Port Range</b>: Where applicable this is the IPv4 port range on which the service operates.</xs:documentation>
</xs:annotation>
<xs:attribute name="start" type="NonNegativeIntegerDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Start</m:formal-name>
<m:description>Indicates the starting port number in a port range</m:description>
</xs:appinfo>
<xs:documentation>
<b>Start</b>: Indicates the starting port number in a port range</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="end" type="NonNegativeIntegerDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>End</m:formal-name>
<m:description>Indicates the ending port number in a port range</m:description>
</xs:appinfo>
<xs:documentation>
<b>End</b>: Indicates the ending port number in a port range</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="transport" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Transport</m:formal-name>
<m:description>Indicates the transport type.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Transport</b>: Indicates the transport type.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-implementation-common-implementation-status-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Implementation Status</m:formal-name>
<m:description>Indicates the degree to which the a given control is implemented.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Implementation Status</b>: Indicates the degree to which the a given control is implemented.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="state" use="required" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Implementation State</m:formal-name>
<m:description>Identifies the implementation status of the control or control objective.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Implementation State</b>: Identifies the implementation status of the control or control objective.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-implementation-common-system-user-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>System User</m:formal-name>
<m:description>A type of user that interacts with the system based on an associated role.</m:description>
</xs:appinfo>
<xs:documentation>
<b>System User</b>: A type of user that interacts with the system based on an associated role.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="title" minOccurs="0" maxOccurs="1">
<xs:complexType mixed="true">
<xs:annotation>
<xs:appinfo>
<m:formal-name>User Title</m:formal-name>
<m:description>A name given to the user, which may be used by a tool for display and navigation.</m:description>
</xs:appinfo>
<xs:documentation>
<b>User Title</b>: A name given to the user, which may be used by a tool for display and navigation.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupLineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="short-name" minOccurs="0" maxOccurs="1">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>User Short Name</m:formal-name>
<m:description>A short common name, abbreviation, or acronym for the user.</m:description>
</xs:appinfo>
<xs:documentation>
<b>User Short Name</b>: A short common name, abbreviation, or acronym for the user.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
</xs:element>
<xs:element name="description" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>User Description</m:formal-name>
<m:description>A summary of the user's purpose within the system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>User Description</b>: A summary of the user's purpose within the system.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="role-id"
type="oscal-metadata-role-id-FIELD"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="authorized-privilege"
type="oscal-implementation-common-authorized-privilege-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>User Universally Unique Identifier</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a>, <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#globally-unique">globally unique</a> identifier with <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#cross-instance">cross-instance</a> scope that can be used to reference this user class elsewhere in <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#scope">this or other OSCAL instances</a>. The locally defined <em>UUID</em> of the <code>system user</code> can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#consistency">per-subject</a>, which means it should be consistently used to identify the same subject across revisions of the document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>User Universally Unique Identifier</b>: A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this user class elsewhere in this or other OSCAL instances. The locally defined UUID of the system user can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-implementation-common-authorized-privilege-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Privilege</m:formal-name>
<m:description>Identifies a specific system privilege held by the user, along with an associated description and/or rationale for the privilege.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Privilege</b>: Identifies a specific system privilege held by the user, along with an associated description and/or rationale for the privilege.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="title" minOccurs="1" maxOccurs="1">
<xs:complexType mixed="true">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Privilege Title</m:formal-name>
<m:description>A human readable name for the privilege.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Privilege Title</b>: A human readable name for the privilege.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupLineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="description" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Privilege Description</m:formal-name>
<m:description>A summary of the privilege's purpose within the system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Privilege Description</b>: A summary of the privilege's purpose within the system.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="function-performed"
type="oscal-implementation-common-function-performed-FIELD"
minOccurs="1"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="oscal-implementation-common-function-performed-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Functions Performed</m:formal-name>
<m:description>Describes a function performed for a given authorized privilege by this user class.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Functions Performed</b>: Describes a function performed for a given authorized privilege by this user class.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
<xs:complexType name="oscal-implementation-common-inventory-item-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Inventory Item</m:formal-name>
<m:description>A single managed inventory item within the system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Inventory Item</b>: A single managed inventory item within the system.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="description" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Inventory Item Description</m:formal-name>
<m:description>A summary of the inventory item stating its purpose within the system.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Inventory Item Description</b>: A summary of the inventory item stating its purpose within the system.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="responsible-party"
type="oscal-metadata-responsible-party-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="implemented-component" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Implemented Component</m:formal-name>
<m:description>The set of components that are implemented in a given system inventory item.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Implemented Component</b>: The set of components that are implemented in a given system inventory item.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="responsible-party"
type="oscal-metadata-responsible-party-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="component-uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Component Universally Unique Identifier Reference</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a> identifier reference to a <code>component</code> that is implemented as part of an inventory item.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Component Universally Unique Identifier Reference</b>: A machine-oriented identifier reference to a component that is implemented as part of an inventory item.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="uuid" use="required" type="UUIDDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Inventory Item Universally Unique Identifier</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#machine-oriented">machine-oriented</a>, <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#globally-unique">globally unique</a> identifier with <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#cross-instance">cross-instance</a> scope that can be used to reference this inventory item elsewhere in <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#scope">this or other OSCAL instances</a>. The locally defined <em>UUID</em> of the <code>inventory item</code> can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#consistency">per-subject</a>, which means it should be consistently used to identify the same subject across revisions of the document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Inventory Item Universally Unique Identifier</b>: A machine-oriented, globally unique identifier with cross-instance scope that can be used to reference this inventory item elsewhere in this or other OSCAL instances. The locally defined UUID of the inventory item can be used to reference the data item locally or globally (e.g., in an imported OSCAL instance). This UUID should be assigned per-subject, which means it should be consistently used to identify the same subject across revisions of the document.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-implementation-common-set-parameter-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Set Parameter Value</m:formal-name>
<m:description>Identifies the parameter that will be set by the enclosed value.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Set Parameter Value</b>: Identifies the parameter that will be set by the enclosed value.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="value" minOccurs="1" maxOccurs="unbounded">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Parameter Value</m:formal-name>
<m:description>A parameter value or set of values.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Parameter Value</b>: A parameter value or set of values.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
</xs:element>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="param-id" use="required" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Parameter ID</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#human-oriented">human-oriented</a> reference to a <code>parameter</code> within a control, who's catalog has been imported into the current implementation context.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Parameter ID</b>: A human-oriented reference to a parameter within a control, who's catalog has been imported into the current implementation context.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-implementation-common-system-id-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>System Identification</m:formal-name>
<m:description>A <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#human-oriented">human-oriented</a>, <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#globally-unique">globally unique</a> identifier with <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#cross-instance">cross-instance</a> scope that can be used to reference this system identification property elsewhere in <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#scope">this or other OSCAL instances</a>. When referencing an externally defined <code>system identification</code>, the <code>system identification</code> must be used in the context of the external / imported OSCAL instance (e.g., uri-reference). This string should be assigned <a href="https://pages.nist.gov/OSCAL/concepts/identifier-use/#consistency">per-subject</a>, which means it should be consistently used to identify the same system across revisions of the document.</m:description>
</xs:appinfo>
<xs:documentation>
<b>System Identification</b>: A human-oriented, globally unique identifier with cross-instance scope that can be used to reference this system identification property elsewhere in this or other OSCAL instances. When referencing an externally defined system identification, the system identification must be used in the context of the external / imported OSCAL instance (e.g., uri-reference). This string should be assigned per-subject, which means it should be consistently used to identify the same system across revisions of the document.</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="StringDatatype">
<xs:attribute name="identifier-type" type="URIDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Identification System Type</m:formal-name>
<m:description>Identifies the identification system from which the provided identifier was assigned. </m:description>
</xs:appinfo>
<xs:documentation>
<b>Identification System Type</b>: Identifies the identification system from which the provided identifier was assigned. </xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="oscal-control-common-part-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Part</m:formal-name>
<m:description>An annotated, markup-based textual element of a control's or catalog group's definition, or a child of another part.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Part</b>: An annotated, markup-based textual element of a control's or catalog group's definition, or a child of another part.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="title" minOccurs="0" maxOccurs="1">
<xs:complexType mixed="true">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Part Title</m:formal-name>
<m:description>An optional name given to the part, which may be used by a tool for display and navigation.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Part Title</b>: An optional name given to the part, which may be used by a tool for display and navigation.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupLineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
<xs:element name="part"
type="oscal-control-common-part-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Part Identifier</m:formal-name>
<m:description>A unique identifier for the part.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Part Identifier</b>: A unique identifier for the part.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="name" use="required" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Part Name</m:formal-name>
<m:description>A textual label that uniquely identifies the part's semantic type, which exists in a value space qualified by the <code>ns</code>.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Part Name</b>: A textual label that uniquely identifies the part's semantic type, which exists in a value space qualified by the ns.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ns" type="URIDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Part Namespace</m:formal-name>
<m:description>An optional namespace qualifying the part's <code>name</code>. This allows different organizations to associate distinct semantics with the same name.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Part Namespace</b>: An optional namespace qualifying the part's name. This allows different organizations to associate distinct semantics with the same name.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Part Class</m:formal-name>
<m:description>An optional textual providing a sub-type or characterization of the part's <code>name</code>, or a category to which the part belongs.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Part Class</b>: An optional textual providing a sub-type or characterization of the part's name, or a category to which the part belongs.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-control-common-parameter-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Parameter</m:formal-name>
<m:description>Parameters provide a mechanism for the dynamic assignment of value(s) in a control.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Parameter</b>: Parameters provide a mechanism for the dynamic assignment of value(s) in a control.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="prop"
type="oscal-metadata-property-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="link"
type="oscal-metadata-link-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="label" minOccurs="0" maxOccurs="1">
<xs:complexType mixed="true">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Parameter Label</m:formal-name>
<m:description>A short, placeholder name for the parameter, which can be used as a substitute for a <code>value</code> if no value is assigned.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Parameter Label</b>: A short, placeholder name for the parameter, which can be used as a substitute for a value if no value is assigned.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupLineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="usage" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Parameter Usage Description</m:formal-name>
<m:description>Describes the purpose and use of a parameter.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Parameter Usage Description</b>: Describes the purpose and use of a parameter.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="constraint"
type="oscal-control-common-parameter-constraint-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="guideline"
type="oscal-control-common-parameter-guideline-ASSEMBLY"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:choice>
<xs:element name="value"
type="oscal-control-common-parameter-value-FIELD"
minOccurs="0"
maxOccurs="unbounded"/>
<xs:element name="select"
type="oscal-control-common-parameter-selection-ASSEMBLY"
minOccurs="0"
maxOccurs="1"/>
</xs:choice>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" use="required" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Parameter Identifier</m:formal-name>
<m:description>A unique identifier for the parameter.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Parameter Identifier</b>: A unique identifier for the parameter.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="class" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Parameter Class</m:formal-name>
<m:description>A textual label that provides a characterization of the type, purpose, use or scope of the parameter.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Parameter Class</b>: A textual label that provides a characterization of the type, purpose, use or scope of the parameter.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="depends-on" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Depends on</m:formal-name>
<m:description>
<strong>(deprecated)</strong> Another parameter invoking this one. This construct has been deprecated and should not be used.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Depends on</b>: (deprecated) Another parameter invoking this one. This construct has been deprecated and should not be used.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-control-common-parameter-constraint-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Constraint</m:formal-name>
<m:description>A formal or informal expression of a constraint or test.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Constraint</b>: A formal or informal expression of a constraint or test.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="description" minOccurs="0" maxOccurs="1">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Constraint Description</m:formal-name>
<m:description>A textual summary of the constraint to be applied.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Constraint Description</b>: A textual summary of the constraint to be applied.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupMultilineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="test" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Constraint Test</m:formal-name>
<m:description>A test expression which is expected to be evaluated by a tool.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Constraint Test</b>: A test expression which is expected to be evaluated by a tool.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="expression" minOccurs="1" maxOccurs="1">
<xs:simpleType>
<xs:annotation>
<xs:appinfo>
<m:formal-name>Constraint test</m:formal-name>
<m:description>A formal (executable) expression of a constraint.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Constraint test</b>: A formal (executable) expression of a constraint.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
</xs:element>
<xs:element name="remarks" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Remarks</m:formal-name>
<m:description>Additional commentary about the containing object.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Remarks</b>: Additional commentary about the containing object.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="oscal-control-common-parameter-guideline-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Guideline</m:formal-name>
<m:description>A prose statement that provides a recommendation for the use of a parameter.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Guideline</b>: A prose statement that provides a recommendation for the use of a parameter.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:group ref="blockElementGroup" maxOccurs="unbounded" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:simpleType name="oscal-control-common-parameter-value-FIELD">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Parameter Value</m:formal-name>
<m:description>A parameter value or set of values.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Parameter Value</b>: A parameter value or set of values.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype"/>
</xs:simpleType>
<xs:complexType name="oscal-control-common-parameter-selection-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Selection</m:formal-name>
<m:description>Presenting a choice among alternatives.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Selection</b>: Presenting a choice among alternatives.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="choice" minOccurs="0" maxOccurs="unbounded">
<xs:complexType mixed="true">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Choice</m:formal-name>
<m:description>A value selection among several such options.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Choice</b>: A value selection among several such options.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="MarkupLineDatatype"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="how-many" type="TokenDatatype">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Parameter Cardinality</m:formal-name>
<m:description>Describes the number of selections that must occur. Without this setting, only one value should be assumed to be permitted.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Parameter Cardinality</b>: Describes the number of selections that must occur. Without this setting, only one value should be assumed to be permitted.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:complexType name="oscal-control-common-include-all-ASSEMBLY">
<xs:annotation>
<xs:appinfo>
<m:formal-name>Include All</m:formal-name>
<m:description>Include all controls from the imported catalog or profile resources.</m:description>
</xs:appinfo>
<xs:documentation>
<b>Include All</b>: Include all controls from the imported catalog or profile resources.</xs:documentation>
</xs:annotation>
</xs:complexType>
<xs:complexType name="MarkupMultilineDatatype">
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:group ref="blockElementGroup"/>
</xs:choice>
</xs:complexType>
<xs:group name="headingBlockElementGroup">
<xs:choice>
<xs:element name="h1" type="inlineMarkupType"/>
<xs:element name="h2" type="inlineMarkupType"/>
<xs:element name="h3" type="inlineMarkupType"/>
<xs:element name="h4" type="inlineMarkupType"/>
<xs:element name="h5" type="inlineMarkupType"/>
<xs:element name="h6" type="inlineMarkupType"/>
</xs:choice>
</xs:group>
<xs:group name="blockElementGroup">
<xs:choice>
<xs:group ref="headingBlockElementGroup"/>
<xs:group ref="listsGroup"/>
<xs:group ref="blockTextGroup"/>
<xs:element name="p" type="inlineMarkupType"/>
<xs:element name="table" type="tableType"/>
<!-- QUESTION: Deprecate this? -->
<xs:element name="img" type="imageType"/>
</xs:choice>
</xs:group>
<xs:group name="blockTextGroup">
<xs:choice>
<xs:element name="pre" type="preformattedType"/>
<xs:element name="hr"/>
<!-- TODO: need to add support for blockquote, which can contain block elements. usnistgov/metaschema#70 -->
<xs:element name="blockquote" type="blockQuoteType"/>
</xs:choice>
</xs:group>
<xs:complexType name="preformattedType" mixed="true">
<xs:complexContent>
<xs:extension base="inlineMarkupType">
<xs:annotation>
<xs:documentation>The content model is the same as inlineMarkupType, but line endings need
to be preserved, since this is preformatted.</xs:documentation>
</xs:annotation>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="listType">
<xs:sequence>
<xs:element name="li"
type="listItemType"
minOccurs="1"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="orderedListType">
<xs:complexContent>
<xs:extension base="listType">
<!-- TODO: confirm if romans are allowed -->
<xs:attribute name="start" type="xs:nonNegativeInteger"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:group name="listsGroup">
<xs:choice>
<xs:element name="ul" type="listType"/>
<xs:element name="ol" type="orderedListType"/>
</xs:choice>
</xs:group>
<xs:complexType name="listItemType" mixed="true">
<!-- TODO: is this the correct construction? -->
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="inlineMarkupGroup"/>
<xs:group ref="listsGroup"/>
<xs:group ref="blockTextGroup"/>
<xs:group ref="headingBlockElementGroup"/>
<xs:element name="p" type="inlineMarkupType"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="tableType">
<xs:sequence>
<xs:element maxOccurs="unbounded" name="tr" type="tableRowType"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="tableRowType">
<!-- QUESTION: Should we allow TH and TD to be mixed? -->
<xs:choice minOccurs="1" maxOccurs="unbounded">
<xs:element name="td" type="tableCellType" maxOccurs="unbounded"/>
<xs:element name="th" type="tableCellType" maxOccurs="unbounded"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="tableCellType" mixed="true">
<xs:complexContent>
<!-- TODO: consider adding a choice between the inline or paragraphs. We need to figure out what is supported in Markdown. -->
<xs:extension base="inlineMarkupType">
<!-- TODO: need to add support for alignment. usnistgov/metaschema#70 -->
<xs:attribute name="align" type="alignType" default="left"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="alignType">
<xs:restriction base="xs:token">
<xs:enumeration value="left"/>
<xs:enumeration value="center"/>
<xs:enumeration value="right"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="blockQuoteType">
<!-- TODO: confirm if nested blockquote is supported in markdown -->
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="blockElementGroup"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="MarkupLineDatatype" mixed="true">
<xs:complexContent>
<xs:extension base="inlineMarkupType"/>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="inlineMarkupType" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="inlineMarkupGroup"/>
</xs:choice>
</xs:complexType>
<xs:group name="inlineMarkupGroup">
<xs:choice>
<xs:element name="a" type="anchorType"/>
<xs:element name="insert" type="insertType"/>
<xs:element name="br"/>
<xs:group ref="phraseMarkupGroup"/>
</xs:choice>
</xs:group>
<xs:group name="phraseMarkupGroup">
<xs:choice>
<xs:element name="code" type="codeType"/>
<xs:element name="em" type="inlineMarkupType"/>
<xs:element name="i" type="inlineMarkupType"/>
<xs:element name="b" type="inlineMarkupType"/>
<xs:element name="strong" type="inlineMarkupType"/>
<xs:element name="sub" type="inlineMarkupType"/>
<xs:element name="sup" type="inlineMarkupType"/>
<xs:element name="q" type="inlineMarkupType"/>
<xs:element name="img" type="imageType"/>
</xs:choice>
</xs:group>
<xs:complexType name="codeType">
<xs:complexContent>
<xs:extension base="inlineMarkupType">
<xs:attribute name="class" type="xs:token"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="imageType">
<xs:attribute name="alt" type="xs:string"/>
<xs:attribute name="src" use="required" type="xs:anyURI"/>
<xs:attribute name="title" type="xs:string"/>
</xs:complexType>
<xs:complexType name="anchorType" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="phraseMarkupGroup"/>
</xs:choice>
<xs:attribute name="href" type="xs:anyURI"/>
<xs:attribute name="title" type="xs:string"/>
</xs:complexType>
<xs:complexType name="insertType">
<xs:annotation>
<xs:documentation>An insert can be used to identify a placeholder for dynamically inserting text related to a specific object, which is referenced by the object's identifier using an <code xmlns="">id-ref</code>. This insert mechanism allows the selection of which text value from the object to dynamically include based on the application's display requirements.</xs:documentation>
</xs:annotation>
<xs:attribute name="type" use="required" type="xs:NCName">
<xs:annotation>
<xs:documentation>The type of object to include from (e.g., parameter, control, component, role, etc.)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="id-ref" use="required" type="xs:NCName">
<xs:annotation>
<xs:documentation>The identity of the object to insert a value for. The identity will be selected from the index of objects of the specified <code xmlns="">type</code>. The specific value to include is based on the application's display requirements, which will likely use a specific data element associated with the <code xmlns="">type</code> (e.g., title, identifier, value, etc.) that is appropriate for the application.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:simpleType name="Base64Datatype">
<xs:annotation>
<xs:documentation>Binary data encoded using the Base64 encoding algorithm
as defined by RFC4648.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:base64Binary">
<xs:pattern value="[0-9A-Za-z+/]+={0,2}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DateDatatype">
<xs:annotation>
<xs:documentation>A string representing a 24-hour period with an optional timezone.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:date">
<xs:pattern value="(((2000|2400|2800|(19|2[0-9](0[48]|[2468][048]|[13579][26])))-02-29)|(((19|2[0-9])[0-9]{2})-02-(0[1-9]|1[0-9]|2[0-8]))|(((19|2[0-9])[0-9]{2})-(0[13578]|10|12)-(0[1-9]|[12][0-9]|3[01]))|(((19|2[0-9])[0-9]{2})-(0[469]|11)-(0[1-9]|[12][0-9]|30)))(Z|[+-][0-9]{2}:[0-9]{2})?"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DateTimeDatatype">
<xs:annotation>
<xs:documentation>A string representing a point in time with an optional timezone.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:dateTime">
<xs:pattern value="(((2000|2400|2800|(19|2[0-9](0[48]|[2468][048]|[13579][26])))-02-29)|(((19|2[0-9])[0-9]{2})-02-(0[1-9]|1[0-9]|2[0-8]))|(((19|2[0-9])[0-9]{2})-(0[13578]|10|12)-(0[1-9]|[12][0-9]|3[01]))|(((19|2[0-9])[0-9]{2})-(0[469]|11)-(0[1-9]|[12][0-9]|30)))T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\.[0-9]+)?(Z|(-((0[0-9]|1[0-2]):00|0[39]:30)|\+((0[0-9]|1[0-4]):00|(0[34569]|10):30|(0[58]|12):45)))?"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="DateTimeWithTimezoneDatatype">
<xs:annotation>
<xs:documentation>A string representing a point in time with a required timezone.</xs:documentation>
</xs:annotation>
<xs:restriction base="DateTimeDatatype">
<xs:pattern value="(((2000|2400|2800|(19|2[0-9](0[48]|[2468][048]|[13579][26])))-02-29)|(((19|2[0-9])[0-9]{2})-02-(0[1-9]|1[0-9]|2[0-8]))|(((19|2[0-9])[0-9]{2})-(0[13578]|10|12)-(0[1-9]|[12][0-9]|3[01]))|(((19|2[0-9])[0-9]{2})-(0[469]|11)-(0[1-9]|[12][0-9]|30)))T(2[0-3]|[01][0-9]):([0-5][0-9]):([0-5][0-9])(\.[0-9]+)?(Z|(-((0[0-9]|1[0-2]):00|0[39]:30)|\+((0[0-9]|1[0-4]):00|(0[34569]|10):30|(0[58]|12):45)))"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="EmailAddressDatatype">
<xs:annotation>
<xs:documentation>An email address string formatted according to RFC 6531.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype">
<xs:pattern value=".+@.+">
<!-- TODO: Need a better pattern. -->
</xs:pattern>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="NonNegativeIntegerDatatype">
<xs:annotation>
<xs:documentation>An integer value that is equal to or greater than 0.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:nonNegativeInteger">
<xs:pattern value="\S(.*\S)?">
<xs:annotation>
<xs:documentation>This pattern ensures that leading and trailing whitespace is
disallowed. This helps to even the user experience between implementations
related to whitespace.</xs:documentation>
</xs:annotation>
</xs:pattern>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="StringDatatype">
<xs:annotation>
<xs:documentation>A non-empty string of Unicode characters with leading and trailing whitespace
disallowed. Whitespace is: U+9, U+10, U+32 or [ \n\t]+</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:annotation>
<xs:documentation>The 'string' datatype restricts the XSD type by prohibiting leading
and trailing whitespace, and something (not only whitespace) is required.</xs:documentation>
</xs:annotation>
<xs:whiteSpace value="preserve"/>
<xs:pattern value="\S(.*\S)?">
<xs:annotation>
<xs:documentation>This pattern ensures that leading and trailing whitespace is
disallowed. This helps to even the user experience between implementations
related to whitespace.</xs:documentation>
</xs:annotation>
</xs:pattern>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TokenDatatype">
<xs:annotation>
<!--<xs:documentation>Matching XSD NCName, except whitespace is not collapsed.</xs:documentation> -->
<xs:documentation>A non-empty, non-colonized name as defined by XML Schema Part 2: Datatypes
Second Edition (https://www.w3.org/TR/xmlschema11-2/#NCName), with leading and trailing
whitespace disallowed.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype">
<xs:pattern value="(\p{L}|_)(\p{L}|\p{N}|[.\-_])*">
<xs:annotation>
<!--<xs:documentation>An XML initial character (but not colon), followed
by any XML name character (but not colon).</xs:documentation> -->
<xs:documentation>A single token may not contain whitespace.
</xs:documentation>
</xs:annotation>
</xs:pattern>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="URIDatatype">
<xs:annotation>
<xs:documentation>A universal resource identifier (URI) formatted according to RFC3986.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:anyURI">
<xs:pattern value="[a-zA-Z][a-zA-Z0-9+\-.]+:.*\S">
<xs:annotation>
<xs:documentation>Requires a scheme with colon per RFC 3986.</xs:documentation>
</xs:annotation>
</xs:pattern>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="URIReferenceDatatype">
<xs:annotation>
<xs:documentation>A URI Reference, either a URI or a relative-reference, formatted according to section 4.1 of RFC3986.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:anyURI">
<xs:pattern value="\S(.*\S)?">
<xs:annotation>
<xs:documentation>This pattern ensures that leading and trailing whitespace is
disallowed. This helps to even the user experience between implementations
related to whitespace.</xs:documentation>
</xs:annotation>
</xs:pattern>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="UUIDDatatype">
<xs:annotation>
<xs:documentation>A type 4 ('random' or 'pseudorandom') or type 5 UUID per RFC
4122.</xs:documentation>
</xs:annotation>
<xs:restriction base="StringDatatype">
<xs:pattern value="[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[45][0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}">
<xs:annotation>
<xs:documentation>A sequence of 8-4-4-4-12 hex digits, with extra
constraints in the 13th and 17-18th places for version 4 and 5
</xs:documentation>
</xs:annotation>
</xs:pattern>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment