-- XSD schema extracted from ITU-T X.1520 (01/2014)
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns="http://cve.mitre.org/cve/downloads/1.0"
targetNamespace="http://cve.mitre.org/cve/downloads/1.0"
elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
<!-- ************************************************************************** -->
<!-- Changelog: 1.0 - Initial version -->
<!-- ************************************************************************** -->
<xsd:annotation>
<xsd:documentation xml:lang="en">
Simple schema that defines the format of the CVE List provided by MITRE
</xsd:documentation>
</xsd:annotation>
<!-- ************************************************************************** -->
<!-- Start Item Element Definition -->
<!-- ************************************************************************** -->
<xsd:element name="cve">
<xsd:annotation>
<xsd:documentation xml:lang="en">
cve is the top level element of the CVE List provided by MITRE.
It represents holds all CVE Items.
</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="item" type="ItemType" minOccurs="1" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="schemaVersion" type="xsd:token" use="optional"/>
</xsd:complexType>
</xsd:element>
<!-- ************************************************************************** -->
<!-- Simple Types -->
<!-- ************************************************************************** -->
<!-- CUSTOM TYPE DEFINITIONS-->
<xsd:simpleType name="typeEnumType">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="CAN"/>
<xsd:enumeration value="CVE"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="statusEnumType">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="Entry"/>
<xsd:enumeration value="Candidate"/>
</xsd:restriction>
</xsd:simpleType>
<!-- need to verify enumeration -->
<xsd:simpleType name="simplePhaseEnumType">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="Proposed"/>
<xsd:enumeration value="Interim"/>
<xsd:enumeration value="Modified"/>
<xsd:enumeration value="Assigned"/>
</xsd:restriction>
</xsd:simpleType>
<!-- **************************************************************************** -->
<!-- Complex Types -->
<!-- **************************************************************************** -->
<xsd:complexType name="ItemType">
<xsd:sequence>
<xsd:element name="status" type="statusEnumType" minOccurs="1" maxOccurs="1"/>
<xsd:element name="phase" type="specificPhaseType" minOccurs="0" maxOccurs="1"/>
<xsd:element name="desc" type="xsd:string" minOccurs="1" maxOccurs="1"/>
<xsd:element name="refs" type="refsType" minOccurs="1" maxOccurs="1"/>
<xsd:element name="votes" type="votesType" minOccurs="0" maxOccurs="1"/>
<xsd:element name="comments" type="commentsType" minOccurs="0" maxOccurs="1"/>
</xsd:sequence>
<!--Need to Verify Enumeration-->
<xsd:attribute name="type" type="typeEnumType" use="required"/>
<xsd:attribute name="name" type="xsd:token" use="required"/>
<xsd:attribute name="seq" type="xsd:token" use="required"/>
</xsd:complexType>
<xsd:complexType name="commentsType">
<xsd:sequence>
<xsd:element name="comment" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="voter" type="xsd:token" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="votesType">
<xsd:sequence>
<xsd:element name="accept" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="count" type="xsd:token" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="modify" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="count" type="xsd:token" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="noop" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="count" type="xsd:token" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="recast" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="count" type="xsd:token" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="reject" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="count" type="xsd:token" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="reviewing" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="count" type="xsd:token" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="revote" minOccurs="0" maxOccurs="1">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="count" type="xsd:token" use="required"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="specificPhaseType">
<xsd:simpleContent>
<xsd:extension base="simplePhaseEnumType">
<xsd:attribute name="date" type="xsd:token" use="optional"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
<xsd:complexType name="refsType">
<xsd:annotation>
<xsd:documentation>holds all hyperlink elements</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="ref" type="refType" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="refType">
<xsd:annotation>
<xsd:documentation>Holds individual hyperlink element</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="source" type="xsd:token" use="required"/>
<xsd:attribute name="url" type="xsd:anyURI" use="optional"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:schema>