<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Yuri D. Demchenko (University of Amsterdam) -->
<xs:schema targetNamespace="draft-ietf-inch-iodef-042.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:iodef="draft-ietf-inch-iodef-042.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:iodef-xws="draft-ietf-inch-iodef-xws-042.xsd" xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
	<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/>
	<xs:import namespace="draft-ietf-inch-iodef-xws-042.xsd" schemaLocation="draft-ietf-inch-iodef-xws-042.xsd"/>
	<!--
 ********************************************************************
 ********************************************************************
 *** Incident Object Description and Exchange Format XML Schema   ***
 ***               Version 04, March 2005                         ***
 ***              draft-ietf-inch-iodef-04           ***
 ********************************************************************
 ********************************************************************
 -->
	<!--
 ====================================================================
 ==  Element definitions                                           ==
 ====================================================================
 -->
	<!--
=====================================================================
 == IODEF-Document class                                           ==
 ====================================================================
 -->
	<xs:annotation>
		<xs:documentation>Root Element IODEF-Document</xs:documentation>
	</xs:annotation>
	<xs:element name="IODEF-Document">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:Incident"/>
				<!-- <xs:element ref="Signature" minOccurs="0" maxOccurs="unbounded"/> -->
			</xs:sequence>
			<xs:attribute name="version" type="xs:string" fixed="0.30"/>
		</xs:complexType>
	</xs:element>
	<!--Element Signature temporary removed for the debugging purposes. 
	Depending on Signature application, Signature element may be inserted by the software -->
	<!--
 ====================================================================
 ===  Incident class                                          ===
 ====================================================================
 -->
	<xs:element name="Incident">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:IncidentID"/>
				<xs:element ref="iodef:AlternativeID" minOccurs="0"/>
				<xs:element ref="iodef:RelatedActivity" minOccurs="0"/>
				<xs:element ref="iodef:Description" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:Contact" maxOccurs="unbounded"/>
				<xs:element ref="iodef:ReportTime"/>
				<xs:element ref="iodef:DetectTime" minOccurs="0"/>
				<xs:element ref="iodef:StartTime" minOccurs="0"/>
				<xs:element ref="iodef:EndTime" minOccurs="0"/>
				<xs:element ref="iodef:Expectation" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:Method" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:Assessment" maxOccurs="unbounded"/>
				<xs:element ref="iodef:EventData" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:History" minOccurs="0"/>
				<xs:element ref="iodef:AdditionalData" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute ref="iodef:restriction" default="private"/>
			<xs:attribute ref="iodef:purpose" use="required"/>
		</xs:complexType>
	</xs:element>
	<!--
 ====================================================================
 ==  IncidentID class                                              ==
 ====================================================================
 -->
	<xs:element name="IncidentID" type="iodef:IncidentIDType"/>
	<xs:complexType name="IncidentIDType" mixed="true">
		<xs:attribute name="Issuer" type="xs:string" use="required"/>
		<xs:attribute ref="iodef:restriction"/>
	</xs:complexType>
	<!--
 ====================================================================
 ==  AlternativeID class                                           ==
 ====================================================================
 -->
	<xs:element name="AlternativeID">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:IncidentID" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute ref="iodef:restriction"/>
		</xs:complexType>
	</xs:element>
	<!--
 ====================================================================
 ==  RelatedActivity class                                         ==
 ====================================================================
 -->
	<xs:element name="RelatedActivity">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:IncidentID" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute ref="iodef:restriction"/>
		</xs:complexType>
	</xs:element>
	<!--
 ====================================================================
 ===  AdditionalData class                                        ===
 ====================================================================
 -->
	<xs:element name="AdditionalData" type="iodef:AdditionalDataType"/>
	<xs:complexType name="AdditionalDataType">
		<xs:sequence>
			<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
			<!-- (0,unbounded) elements from any (target and external) namespace -->
		</xs:sequence>
		<xs:attribute ref="iodef:dtype" use="required"/>
		<xs:attribute name="meaning" type="xs:string"/>
	</xs:complexType>
	<!--
 ====================================================================
 ===  Contact class                                               ===
 ===    - Name
 ===    - RegistryHandle
 ===    - PostalAddress
 ===    - Email
 ===    - Telephone
 ===    - Fax
 ===    - TimeZone
 ===    - Contact (recursive)
====================================================================
 -->
	<xs:element name="Contact">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:NameIdentifier" minOccurs="0"/>
				<xs:element ref="iodef:Description" minOccurs="0"/>
				<xs:element ref="iodef:RegistryHandle" minOccurs="0"/>
				<xs:element ref="iodef:PostalAddress" minOccurs="0"/>
				<xs:element ref="iodef:Email" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:Telephone" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:Fax" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:TimeZone" minOccurs="0"/>
				<xs:element ref="iodef:Contact" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute ref="iodef:contactrole" use="required"/>
			<xs:attribute ref="iodef:contacttype" use="required"/>
			<xs:attribute ref="iodef:restriction"/>
		</xs:complexType>
	</xs:element>
	<!--  NameIdentifier format is identified by attribute "format"
example of using X.509 name identifier :
"CN=Yuri Demchenko, OU=AIRG, O=UvA, S=NH, L=Holland, C=NL" 
example of using URI format :
"http://science.uva.nl/airg"
-->
	<xs:element name="NameIdentifier" type="iodef:NameIdentifierType"/>
	<xs:complexType name="NameIdentifierType" mixed="true">
		<xs:complexContent mixed="true">
			<xs:extension base="iodef:MultilingTextType">
				<xs:attribute ref="iodef:format"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!--<xs:attribute ref="iodef:format"/> -->
	<xs:element name="RegistryHandle">
		<xs:complexType mixed="true">
			<xs:attribute ref="iodef:registrytype" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="PostalAddress">
		<xs:complexType mixed="true">
			<xs:attribute name="lang" type="xs:language"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="Email" type="xs:string"/>
	<xs:element name="Telephone" type="xs:string"/>
	<xs:element name="Fax" type="xs:string"/>
	<!--
 ====================================================================
 ===  Time-based classes                                          ===
 ====================================================================
 -->
	<xs:element name="DateTime" type="xs:dateTime"/>
	<xs:element name="ReportTime" type="xs:dateTime"/>
	<xs:element name="DetectTime" type="xs:dateTime"/>
	<xs:element name="StartTime" type="xs:dateTime"/>
	<xs:element name="EndTime" type="xs:dateTime"/>
	<xs:element name="TimeZone" type="iodef:TimeZoneType"/>
	<xs:simpleType name="TimeZoneType">
		<xs:restriction base="xs:string">
			<xs:pattern value="[+-][0-9][0-9][0-9][0-9]"/>
		</xs:restriction>
	</xs:simpleType>
	<!--
 ====================================================================
 ===  History class                                               ===
 ===    - HistoryItem
 ====================================================================
 -->
	<xs:element name="History">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:HistoryItem" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute ref="iodef:restriction" default="default"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="HistoryItem">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:DateTime"/>
				<xs:element ref="iodef:IncidentID" minOccurs="0"/>
				<xs:element ref="iodef:Description" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute ref="iodef:restriction"/>
			<xs:attribute ref="iodef:historycat" default="other"/>
		</xs:complexType>
	</xs:element>
	<!--
 ====================================================================
 ===  Expectation class                                           ===
 ====================================================================
 -->
	<xs:element name="Expectation">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:Description" maxOccurs="unbounded"/>
				<xs:element ref="iodef:Contact" minOccurs="0"/>
				<xs:element ref="iodef:StartTime" minOccurs="0"/>
				<xs:element ref="iodef:EndTime" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute ref="iodef:restriction" default="default"/>
			<xs:attribute ref="iodef:priority"/>
			<xs:attribute ref="iodef:expectcat"/>
		</xs:complexType>
	</xs:element>
	<!--
 ====================================================================
 ===  Method class                                                ===
 ===    - Classification
 ====================================================================
 -->
	<xs:element name="Method">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:Classification" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:Description" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute ref="iodef:restriction"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="Classification">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:name"/>
				<xs:element ref="iodef:url"/>
			</xs:sequence>
			<xs:attribute ref="iodef:origin" use="required"/>
		</xs:complexType>
	</xs:element>
	<!--
 ====================================================================
 ===  Assessment class                                            ===
 ===    - Impact
 ===    - TimeImpact
 ===    - MonetaryImpact
 ===    - Confidence
 ====================================================================
 -->
	<xs:element name="Assessment">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:Impact" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:TimeImpact" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:MonetaryImpact" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:Confidence" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute ref="iodef:restriction"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="Impact">
		<xs:complexType>
			<xs:attribute ref="iodef:severity"/>
			<xs:attribute ref="iodef:completion"/>
			<xs:attribute ref="iodef:impacttype" use="optional" default="unknown"/>
			<xs:attribute name="lang" type="xs:language"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="TimeImpact">
		<xs:complexType mixed="true">
			<xs:attribute ref="iodef:severity"/>
			<xs:attribute name="unit" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:NMTOKEN">
						<xs:enumeration value="labor"/>
						<xs:enumeration value="elapsed"/>
						<xs:enumeration value="downtime"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
			<xs:attribute name="metric" use="required">
				<xs:simpleType>
					<xs:restriction base="xs:NMTOKEN">
						<xs:enumeration value="days"/>
						<xs:enumeration value="hours"/>
						<xs:enumeration value="minutes"/>
						<xs:enumeration value="seconds"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="MonetaryImpact">
		<xs:complexType mixed="true">
			<xs:attribute ref="iodef:severity"/>
			<xs:attribute name="currency" type="xs:string"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="Confidence">
		<xs:complexType>
			<xs:attribute ref="iodef:rating" use="required"/>
		</xs:complexType>
	</xs:element>
	<!--
 ====================================================================
 === EventData class                                              ===
<!ELEMENT EventData (Description*, DetectTime?, StartTime?, EndTime?, Contact*, Assessment?, Method*, Flow*, EventData*, Record?, AdditionalData*)>
 ====================================================================
 -->
	<xs:element name="EventData">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:Description" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:Contact" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:DetectTime" minOccurs="0"/>
				<xs:element ref="iodef:StartTime" minOccurs="0"/>
				<xs:element ref="iodef:EndTime" minOccurs="0"/>
				<xs:element ref="iodef:Flow" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:System" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:Method" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:Assessment" minOccurs="0"/>
				<xs:element ref="iodef:EventData" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:Record" minOccurs="0"/>
				<xs:element ref="iodef:AdditionalData" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute ref="iodef:restriction" default="default"/>
		</xs:complexType>
	</xs:element>
	<!--
 ====================================================================
 ===  System class                                                ===
 ===  Note. Represents merged Source and  Target classes of IDMF 
 ====================================================================
 -->
	<xs:element name="Flow">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:System" maxOccurs="unbounded"/>
				<xs:element ref="iodef:Counter" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="System">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:Node"/>
				<xs:element ref="iodef:Service" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:OperatingSystem" minOccurs="0"/>
				<xs:element ref="iodef-xws:Principal" minOccurs="0"/>
				<!-- <xs:element ref="iodef-xws:XMLWebService" minOccurs="0"/> -->
			</xs:sequence>
			<xs:attribute ref="iodef:restriction"/>
			<xs:attribute name="interface" type="xs:string"/>
			<xs:attribute ref="iodef:systemcat"/>
			<xs:attribute ref="iodef:spoofed" default="unknown"/>
		</xs:complexType>
	</xs:element>
	<!--
====================================================================
====== Node class                                        ===
 ====================================================================
 -->
	<xs:element name="Node">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:DateTime" minOccurs="0"/>
				<xs:element ref="iodef:name" minOccurs="0"/>
				<xs:element ref="iodef:Address" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:Location" minOccurs="0"/>
				<xs:element ref="iodef:NodeRole" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute ref="iodef:nodecat" default="unknown"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="Address">
		<xs:complexType>
			<xs:attribute ref="iodef:addrcat" use="required"/>
			<xs:attribute name="vlan-name" type="xs:string"/>
			<xs:attribute name="vlan-num" type="xs:string"/>
		</xs:complexType>
	</xs:element>
	<!-- Location can use NameIdentifier element which format is identified by attribute "format"
example of using X.509 name identifier :
"CN=Yuri Demchenko, OU=AIRG, O=UvA, S=NH, L=Holland, C=NL" 
example of using URI format :
"http://science.uva.nl/airg"
-->
	<xs:element name="Location">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:NameIdentifier" minOccurs="0"/>
				<xs:element ref="iodef:TimeZone" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="lang" type="xs:language"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="NodeRole">
		<xs:complexType mixed="true">
			<xs:attribute ref="iodef:noderolecat" use="required"/>
			<xs:attribute name="lang" type="xs:language"/>
		</xs:complexType>
	</xs:element>
	<!--
 ====================================================================
 ===  Service Class                                               ===
 ====================================================================
 -->
	<xs:element name="Service">
		<xs:complexType>
			<xs:sequence>
				<xs:choice>
					<xs:element ref="iodef:port"/>
					<xs:element ref="iodef:portlist"/>
				</xs:choice>
				<xs:element ref="iodef:Application" minOccurs="0"/>
				<xs:element ref="iodef:User" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="port" type="xs:string"/>
	<xs:element name="portlist" type="xs:string"/>
	<!-- 
 ====== Application ======
 -->
	<xs:element name="Application">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:url" minOccurs="0"/>
				<xs:element ref="iodef:name"/>
			</xs:sequence>
			<xs:attribute name="appid" type="xs:string" default="0"/>
			<xs:attribute name="configid" type="xs:string" default="0"/>
			<xs:attribute name="vendor_name" type="xs:string"/>
			<xs:attribute name="version" type="xs:string"/>
		</xs:complexType>
	</xs:element>
	<!--
 ====================================================================
 ===  User class                                                  ===
 ===   - UserID
 ===  DTD  <!ELEMENT UserId (name | number | (name, number))>
 ====================================================================
 -->
	<xs:element name="User">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:UserId" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute ref="iodef:usercat" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="UserId">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:number" minOccurs="0"/>
				<xs:element ref="iodef:name" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!-- 
 ====== OS======
 -->
	<!--
	<xs:element name="OS">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:name" minOccurs="0"/>
				<xs:element ref="iodef:Description" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="version" type="xs:string"/>
			<xs:attribute name="kernel-version" type="xs:string"/>
		</xs:complexType>
	</xs:element>
`-->
	<xs:element name="OperatingSystem">
		<xs:complexType>
			<xs:attribute name="vendor" type="xs:string"/>
			<xs:attribute name="name" type="xs:string"/>
			<xs:attribute name="version" type="xs:string"/>
			<xs:attribute name="patch" type="xs:string"/>
		</xs:complexType>
	</xs:element>
	<!-- 
 ====== Counter ======
 -->
	<xs:element name="Counter">
		<xs:complexType>
			<xs:attribute ref="iodef:countertype" default="other"/>
			<xs:attribute name="meaning" type="xs:string" use="optional"/>
		</xs:complexType>
	</xs:element>
	<!--
 ====================================================================
 ===  Record class                                                ===
 ====================================================================
 -->
	<xs:element name="Record">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:RecordData" maxOccurs="unbounded"/>
			</xs:sequence>
			<xs:attribute ref="iodef:restriction"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="RecordData">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:DateTime" minOccurs="0"/>
				<xs:element ref="iodef:Description" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:Sensor" minOccurs="0"/>
				<xs:element ref="iodef:RecordSource" minOccurs="0"/>
				<xs:element ref="iodef:Pattern" minOccurs="0"/>
				<xs:element ref="iodef:PatternLocation" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="iodef:Counter" minOccurs="0"/>
				<xs:element ref="iodef:RecordItem" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute ref="iodef:restriction"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="RecordSource" type="iodef:RecordSourceType"/>
	<xs:complexType name="RecordSourceType" mixed="true">
		<xs:attribute name="recsourcetype" type="xs:string" use="optional"/>
	</xs:complexType>
	<xs:element name="Pattern" type="xs:string"/>
	<xs:element name="PatternLocation" type="iodef:PatternLocationType"/>
	<xs:complexType name="PatternLocationType" mixed="true">
		<xs:attribute name="recdtype" type="xs:string" use="optional"/>
	</xs:complexType>
	<!-- <xs:element name="Count" type="xs:integer"/> -->
	<!--Element Analyzer of IODEF is re-used from IDMEF (4.2.4.1) -->
	<xs:element name="Sensor">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:Node" minOccurs="0"/>
				<!-- removed in expectation of Analyser simplification -->
				<!-- <xs:element ref="iodef:Process" minOccurs="0"/> -->
				<xs:element ref="iodef:Process" minOccurs="0"/>
			</xs:sequence>
			<xs:attribute name="analyzerid" type="xs:string" default="0"/>
			<xs:attribute name="manufacturer" type="xs:string"/>
			<xs:attribute name="model" type="xs:string"/>
			<xs:attribute name="version" type="xs:string"/>
			<xs:attribute name="class" type="xs:string"/>
			<xs:attribute name="ostype" type="xs:string"/>
			<xs:attribute name="osversion" type="xs:string"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="Process">
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="iodef:name" minOccurs="0"/>
				<xs:element name="arg" type="xs:string" minOccurs="0"/>
				<xs:element name="env" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="RecordItem" type="iodef:AdditionalDataType"/>
	<!--
 ====================================================================
 ===  Description class                                        ===
 === (contains attribute "transform" to preserve non-UTF-8 text encoding)
 ====================================================================
 -->
	<xs:element name="Description" type="iodef:MultilingTextType"/>
	<xs:complexType name="MultilingTextType" mixed="true">
		<xs:complexContent mixed="true">
			<xs:extension base="iodef:TextAbstractType">
				<xs:attribute ref="iodef:preserve"/>
				<xs:attribute ref="iodef:transform"/>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<!-- <xs:element name="Text" type="iodef:TextAbstractType"/> -->
	<xs:complexType name="TextAbstractType" mixed="true">
		<xs:annotation>
			<xs:documentation xml:lang="en">Textual description, may use local languages. 
			For particular use may be extended with optional attributes "preserve"={0,1} and "transformation"
			</xs:documentation>
		</xs:annotation>
		<xs:complexContent mixed="true">
			<xs:restriction base="xs:anyType">
				<xs:sequence>
					<xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
				</xs:sequence>
				<xs:attribute name="lang" type="xs:language"/>
			</xs:restriction>
		</xs:complexContent>
	</xs:complexType>
	<!--
 | Values for the Description.preserve attributes
 -->
	<xs:attribute name="preserve">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="no"/>
				<xs:enumeration value="yes"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<xs:attribute name="transform">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="none"/>
				<xs:enumeration value="Base64"/>
				<xs:enumeration value="QP"/>
				<xs:enumeration value="stringprep"/>
				<xs:enumeration value="zip"/>
				<xs:enumeration value="URI"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 ====================================================================
 === Miscellaneous simple classes                                 ===
 ===   - name
 ===   - url 
	<xs:element name="name" type="iodef:MultilingTextType"/>
	<xs:element name="name" type="xs:string"/>
	<xs:element name="name" type="NameidType"/>
	<xs:complexType name="NameidType">
		<xs:complexContent>
			<xs:extension base="iodef:MultilingTextType"/>
		</xs:complexContent>
	</xs:complexType>

 ====================================================================
 -->
	<xs:element name="name" type="iodef:MultilingTextType"/>
	<xs:element name="number" type="xs:string"/>
	<xs:element name="url" type="xs:string"/>
	<!--
 ====================================================================
 === Attribute list declarations.                      ===
 ====================================================================
 -->
	<!--
 | Attributes of the IODEF element.  In general, the fixed value
 | of this attribute will change each time a new version of
 | the DTD is released.
 -->
	<!--
 | Values for the Address.category attribute.
 -->
	<xs:attribute name="addrcat">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="unknown"/>
				<xs:enumeration value="asm"/>
				<xs:enumeration value="atm"/>
				<xs:enumeration value="e-mail"/>
				<xs:enumeration value="lotus-notes"/>
				<xs:enumeration value="mac"/>
				<xs:enumeration value="sna"/>
				<xs:enumeration value="vm"/>
				<xs:enumeration value="ipv4-addr"/>
				<xs:enumeration value="ipv4-addr-hex"/>
				<xs:enumeration value="ipv4-net"/>
				<xs:enumeration value="ipv4-net-mask"/>
				<xs:enumeration value="ipv6-addr"/>
				<xs:enumeration value="ipv6-addr-hex"/>
				<xs:enumeration value="ipv6-net"/>
				<xs:enumeration value="ipv6-net-mask"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the Impact.completion attribute.
 -->
	<xs:attribute name="completion">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="failed"/>
				<xs:enumeration value="succeeded"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the Contact.role attribute.
 -->
	<xs:attribute name="contactrole">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="creator"/>
				<xs:enumeration value="admin"/>
				<xs:enumeration value="tech"/>
				<xs:enumeration value="irt"/>
				<xs:enumeration value="cc"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the Contact.type attribute.
 -->
	<xs:attribute name="contacttype">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="person"/>
				<xs:enumeration value="organisation"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the Counter.type attribute.
 -->
	<xs:attribute name="countertype">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="packet"/>
				<xs:enumeration value="session"/>
				<xs:enumeration value="event"/>
				<xs:enumeration value="other"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the RecordItem.type attribute
 -->
	<xs:attribute name="dtype">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="boolean"/>
				<xs:enumeration value="byte"/>
				<xs:enumeration value="character"/>
				<xs:enumeration value="date-time"/>
				<xs:enumeration value="integer"/>
				<xs:enumeration value="ntpstamp"/>
				<xs:enumeration value="portlist"/>
				<xs:enumeration value="real"/>
				<xs:enumeration value="string"/>
				<xs:enumeration value="file"/>
				<xs:enumeration value="path"/>
				<xs:enumeration value="url"/>
				<xs:enumeration value="xml"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the Expectation.expectcat attributes
 -->
	<xs:attribute name="expectcat">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="nothing"/>
				<xs:enumeration value="contact-site"/>
				<xs:enumeration value="contact-me"/>
				<xs:enumeration value="block"/>
				<xs:enumeration value="investigate"/>
				<xs:enumeration value="other"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the File.category attribute.
 -->
	<xs:attribute name="filecat">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="current"/>
				<xs:enumeration value="original"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the NameIdentifier.format attribute.
 -->
	<xs:attribute name="format">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="emailAddress"/>
				<xs:enumeration value="x509NameQualifier"/>
				<xs:enumeration value="urn"/>
				<xs:enumeration value="local"/>
				<xs:enumeration value="other"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the History.type attribute.
 -->
	<xs:attribute name="historycat">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="triaged"/>
				<xs:enumeration value="notification"/>
				<xs:enumeration value="shared-info"/>
				<xs:enumeration value="received-info"/>
				<xs:enumeration value="remediation"/>
				<xs:enumeration value="other"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the Id.type attribute.
 -->
	<xs:attribute name="idtype">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="current-user"/>
				<xs:enumeration value="original-user"/>
				<xs:enumeration value="target-user"/>
				<xs:enumeration value="user-privs"/>
				<xs:enumeration value="current-group"/>
				<xs:enumeration value="group-privs"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the Impact.type attribute.
 -->
	<xs:attribute name="impacttype">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="none"/>
				<xs:enumeration value="admin"/>
				<xs:enumeration value="dos"/>
				<xs:enumeration value="file"/>
				<xs:enumeration value="recon"/>
				<xs:enumeration value="user"/>
				<xs:enumeration value="unknown"/>
				<xs:enumeration value="other"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the Node.category attribute.
 -->
	<xs:attribute name="nodecat">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="unknown"/>
				<xs:enumeration value="ads"/>
				<xs:enumeration value="afs"/>
				<xs:enumeration value="coda"/>
				<xs:enumeration value="dfs"/>
				<xs:enumeration value="dns"/>
				<xs:enumeration value="kerberos"/>
				<xs:enumeration value="nds"/>
				<xs:enumeration value="nis"/>
				<xs:enumeration value="nisplus"/>
				<xs:enumeration value="nt"/>
				<xs:enumeration value="wfw"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the NodeRole.category attribute.
 -->
	<xs:attribute name="noderolecat">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="client"/>
				<xs:enumeration value="server-internal"/>
				<xs:enumeration value="server-public"/>
				<xs:enumeration value="www"/>
				<xs:enumeration value="mail"/>
				<xs:enumeration value="messaging"/>
				<xs:enumeration value="streaming"/>
				<xs:enumeration value="voice"/>
				<xs:enumeration value="file"/>
				<xs:enumeration value="ftp"/>
				<xs:enumeration value="p2p"/>
				<xs:enumeration value="name"/>
				<xs:enumeration value="directory"/>
				<xs:enumeration value="credential"/>
				<xs:enumeration value="print"/>
				<xs:enumeration value="application"/>
				<xs:enumeration value="database"/>
				<xs:enumeration value="infra"/>
				<xs:enumeration value="log"/>
				<xs:enumeration value="other"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the Classification.origin attribute.
 -->
	<xs:attribute name="origin">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="bugtraqid"/>
				<xs:enumeration value="cve"/>
				<xs:enumeration value="certcc"/>
				<xs:enumeration value="vendor"/>
				<xs:enumeration value="local"/>
				<xs:enumeration value="other"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the Expectation.priority attributes
 -->
	<xs:attribute name="priority">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="low"/>
				<xs:enumeration value="medium"/>
				<xs:enumeration value="high"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Defines purpose of the Incident
 -->
	<xs:attribute name="purpose">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="traceback"/>
				<xs:enumeration value="mitigation"/>
				<xs:enumeration value="reporting"/>
				<xs:enumeration value="other"/>
				<!--
				<xs:enumeration value="handling"/>
				<xs:enumeration value="statistics"/>
				<xs:enumeration value="warning"/>
				<xs:enumeration value="other"/>
               -->
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the Confidence.rating attribute.
 -->
	<xs:attribute name="rating">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="low"/>
				<xs:enumeration value="medium"/>
				<xs:enumeration value="high"/>
				<xs:enumeration value="numeric"/>
				<xs:enumeration value="unknown"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the RegistryHandle.type attribute.
 -->
	<xs:attribute name="registrytype">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="internic"/>
				<xs:enumeration value="apnic"/>
				<xs:enumeration value="arin"/>
				<xs:enumeration value="lacnic"/>
				<xs:enumeration value="ripencc"/>
				<xs:enumeration value="ti"/>
				<xs:enumeration value="local"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Defines restriction on access to an element's content 
 -->
	<xs:attribute name="restriction">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="default"/>
				<xs:enumeration value="public"/>
				<xs:enumeration value="need-to-know"/>
				<xs:enumeration value="private"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the Impact.severity attribute.
 -->
	<xs:attribute name="severity">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="low"/>
				<xs:enumeration value="medium"/>
				<xs:enumeration value="high"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the System.spoofed attributes
 -->
	<xs:attribute name="spoofed">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="unknown"/>
				<xs:enumeration value="yes"/>
				<xs:enumeration value="no"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!-- 
 | Values for the System.category attribute
 -->
	<xs:attribute name="systemcat">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="source"/>
				<xs:enumeration value="target"/>
				<xs:enumeration value="intermediate"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
 | Values for the User.category attribute.
 -->
	<xs:attribute name="usercat">
		<xs:simpleType>
			<xs:restriction base="xs:NMTOKEN">
				<xs:enumeration value="permissionlevel"/>
				<xs:enumeration value="usergroup"/>
				<xs:enumeration value="role"/>
				<xs:enumeration value="email"/>
				<xs:enumeration value="other"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:attribute>
	<!--
Full Copyright Statement

   Copyright (C) The Internet Society (2002).  All Rights Reserved.

   This document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works.  However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into languages other than
   English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.
-->
</xs:schema>
