123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980 |
- <?xml version="1.0" encoding="UTF-8"?>
- <xs:schema targetNamespace="urn:ietf:params:xml:ns:iodef-1.0"
- xmlns="urn:ietf:params:xml:ns:iodef-1.0"
- xmlns:iodef="urn:ietf:params:xml:ns:iodef-1.0"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- elementFormDefault="qualified"
- attributeFormDefault="unqualified">
- <xs:annotation>
- <xs:documentation>
- Incident Object Description Exchange Format v1.00, see RFC XXX
- </xs:documentation>
- </xs:annotation>
- <!--
- ====================================================================
- == IODEF-Document class ==
- ====================================================================
- -->
- <xs:element name="IODEF-Document">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="iodef:Incident"
- maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="version"
- type="xs:string" fixed="1.00"/>
- <xs:attribute name="lang"
- type="xs:language" use="required"/>
- <xs:attribute name="formatid"
- type="xs:string"/>
- </xs:complexType>
- </xs:element>
- <!--
- ====================================================================
- === 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:DetectTime"
- minOccurs="0"/>
- <xs:element ref="iodef:StartTime"
- minOccurs="0"/>
- <xs:element ref="iodef:EndTime"
- minOccurs="0"/>
- <xs:element ref="iodef:ReportTime"/>
- <xs:element ref="iodef:Description"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="iodef:Assessment"
- maxOccurs="unbounded"/>
- <xs:element ref="iodef:Method"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="iodef:Contact"
- 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 name="purpose" use="required">
- <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="ext-value"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="ext-purpose"
- type="xs:string" use="optional"/>
- <xs:attribute name="lang"
- type="xs:language"/>
- <xs:attribute name="restriction"
- type="iodef:restriction-type" default="private"/>
- </xs:complexType>
- </xs:element>
- <!--
- ====================================================================
- == IncidentID class ==
- ====================================================================
- -->
- <xs:element name="IncidentID" type="iodef:IncidentIDType"/>
- <xs:complexType name="IncidentIDType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="name"
- type="xs:string" use="required"/>
- <xs:attribute name="instance"
- type="xs:string" use="optional"/>
- <xs:attribute name="restriction"
- type="iodef:restriction-type" default="public"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <!--
- ====================================================================
- == AlternativeID class ==
- ====================================================================
- -->
- <xs:element name="AlternativeID">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="iodef:IncidentID"
- maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="restriction"
- type="iodef:restriction-type"/>
- </xs:complexType>
- </xs:element>
- <!--
- ====================================================================
- == RelatedActivity class ==
- ====================================================================
- -->
- <xs:element name="RelatedActivity">
- <xs:complexType>
- <xs:choice>
- <xs:element ref="iodef:IncidentID"
- maxOccurs="unbounded"/>
- <xs:element ref="iodef:URL"
- maxOccurs="unbounded"/>
- </xs:choice>
- <xs:attribute name="restriction"
- type="iodef:restriction-type"/>
- </xs:complexType>
- </xs:element>
- <!--
- ====================================================================
- === AdditionalData class ===
- ====================================================================
- -->
- <xs:element name="AdditionalData" type="iodef:ExtensionType"/>
- <!--
- ====================================================================
- === Contact class ===
- ====================================================================
- -->
- <xs:element name="Contact">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="iodef:ContactName"
- minOccurs="0"/>
- <xs:element ref="iodef:Description"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="iodef:RegistryHandle"
- minOccurs="0" maxOccurs="unbounded"/>
- <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"/>
- <xs:element ref="iodef:Timezone"
- minOccurs="0"/>
- <xs:element ref="iodef:Contact"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="iodef:AdditionalData"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="role" use="required">
- <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:enumeration value="ext-value"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="ext-role"
- type="xs:string" use="optional"/>
- <xs:attribute name="type" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="person"/>
- <xs:enumeration value="organization"/>
- <xs:enumeration value="ext-value"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="ext-type"
- type="xs:string" use="optional"/>
- <xs:attribute name="restriction"
- type="iodef:restriction-type"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="ContactName"
- type="iodef:MLStringType"/>
- <xs:element name="RegistryHandle">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="registry">
- <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="ripe"/>
- <xs:enumeration value="afrinic"/>
- <xs:enumeration value="local"/>
- <xs:enumeration value="ext-value"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="ext-registry"
- type="xs:string" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="PostalAddress">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="iodef:MLStringType">
- <xs:attribute name="meaning"
- type="xs:string" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="Email" type="iodef:ContactMeansType"/>
- <xs:element name="Telephone" type="iodef:ContactMeansType"/>
- <xs:element name="Fax" type="iodef:ContactMeansType"/>
- <xs:complexType name="ContactMeansType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="meaning"
- type="xs:string" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <!--
- ====================================================================
- === 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="Z|[\+\-](0[0-9]|1[0-4]):[0-5][0-9]"/>
- </xs:restriction>
- </xs:simpleType>
- <!--
- ====================================================================
- === History class ===
- ====================================================================
- -->
- <xs:element name="History">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="iodef:HistoryItem"
- maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="restriction"
- type="iodef:restriction-type" 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:Contact"
- minOccurs="0"/>
- <xs:element ref="iodef:Description"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="iodef:AdditionalData"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="restriction"
- type="iodef:restriction-type"/>
- <xs:attribute name="action"
- type="iodef:action-type" use="required"/>
- <xs:attribute name="ext-action"
- type="xs:string" use="optional"/>
- </xs:complexType>
- </xs:element>
- <!--
- ====================================================================
- === Expectation class ===
- ====================================================================
- -->
- <xs:element name="Expectation">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="iodef:Description"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="iodef:StartTime"
- minOccurs="0"/>
- <xs:element ref="iodef:EndTime"
- minOccurs="0"/>
- <xs:element ref="iodef:Contact"
- minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="restriction"
- type="iodef:restriction-type" default="default"/>
- <xs:attribute name="severity"
- type="iodef:severity-type"/>
- <xs:attribute name="action"
- type="iodef:action-type" default="other"/>
- <xs:attribute name="ext-action"
- type="xs:string" use="optional"/>
- </xs:complexType>
- </xs:element>
- <!--
- ====================================================================
- === Method class ===
- ====================================================================
- -->
- <xs:element name="Method">
- <xs:complexType>
- <xs:sequence>
- <xs:choice maxOccurs="unbounded">
- <xs:element ref="iodef:Reference"/>
- <xs:element ref="iodef:Description"/>
- </xs:choice>
- <xs:element ref="iodef:AdditionalData"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="restriction"
- type="iodef:restriction-type"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="Reference">
- <xs:complexType>
- <xs:sequence>
- <xs:element name="ReferenceName"
- type="iodef:MLStringType"/>
- <xs:element ref="iodef:URL"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="iodef:Description"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!--
- ====================================================================
- === Assessment class ===
- ====================================================================
- -->
- <xs:element name="Assessment">
- <xs:complexType>
- <xs:sequence>
- <xs:choice maxOccurs="unbounded">
- <xs:element ref="iodef:Impact"/>
- <xs:element ref="iodef:TimeImpact"/>
- <xs:element ref="iodef:MonetaryImpact"/>
- </xs:choice>
- <xs:element ref="iodef:Counter"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="iodef:Confidence" minOccurs="0"/>
- <xs:element ref="iodef:AdditionalData"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="occurrence">
- <xs:simpleType>
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="actual"/>
- <xs:enumeration value="potential"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="restriction"
- type="iodef:restriction-type"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="Impact">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="iodef:MLStringType">
- <xs:attribute name="severity"
- type="iodef:severity-type"/>
- <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>
- <xs:attribute name="type"
- use="optional" default="unknown">
- <xs:simpleType>
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="admin"/>
- <xs:enumeration value="dos"/>
- <xs:enumeration value="extortion"/>
- <xs:enumeration value="file"/>
- <xs:enumeration value="info-leak"/>
- <xs:enumeration value="misconfiguration"/>
- <xs:enumeration value="recon"/>
- <xs:enumeration value="policy"/>
- <xs:enumeration value="social-engineering"/>
- <xs:enumeration value="user"/>
- <xs:enumeration value="unknown"/>
- <xs:enumeration value="ext-value"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="ext-type"
- type="xs:string" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="TimeImpact">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="iodef:PositiveFloatType">
- <xs:attribute name="severity"
- type="iodef:severity-type"/>
- <xs:attribute name="metric"
- use="required">
- <xs:simpleType>
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="labor"/>
- <xs:enumeration value="elapsed"/>
- <xs:enumeration value="downtime"/>
- <xs:enumeration value="ext-value"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="ext-metric"
- type="xs:string" use="optional"/>
- <xs:attribute name="duration"
- type="iodef:duration-type"/>
- <xs:attribute name="ext-duration"
- type="xs:string" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="MonetaryImpact">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="iodef:PositiveFloatType">
- <xs:attribute name="severity"
- type="iodef:severity-type"/>
- <xs:attribute name="currency"
- type="xs:string"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="Confidence">
- <xs:complexType mixed="true">
- <xs:attribute name="rating" use="required">
- <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>
- </xs:complexType>
- </xs:element>
- <!--
- ====================================================================
- === EventData class ===
- ====================================================================
- -->
- <xs:element name="EventData">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="iodef:Description"
- 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:Contact"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="iodef:Assessment"
- minOccurs="0"/>
- <xs:element ref="iodef:Method"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="iodef:Flow"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="iodef:Expectation"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="iodef:Record"
- minOccurs="0"/>
- <xs:element ref="iodef:EventData"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="iodef:AdditionalData"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="restriction"
- type="iodef:restriction-type" default="default"/>
- </xs:complexType>
- </xs:element>
- <!--
- ====================================================================
- === Flow class ===
- ====================================================================
- -->
- <xs:element name="Flow">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="iodef:System"
- maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <!--
- ====================================================================
- === System class ===
- ====================================================================
- -->
- <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" maxOccurs="unbounded"/>
- <xs:element ref="iodef:Counter"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="iodef:Description"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="iodef:AdditionalData"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="restriction"
- type="iodef:restriction-type"/>
- <xs:attribute name="interface"
- type="xs:string"/>
- <xs:attribute name="category">
- <xs:simpleType>
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="source"/>
- <xs:enumeration value="target"/>
- <xs:enumeration value="intermediate"/>
- <xs:enumeration value="sensor"/>
- <xs:enumeration value="infrastructure"/>
- <xs:enumeration value="ext-value"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="ext-category"
- type="xs:string" use="optional"/>
- <xs:attribute name="spoofed"
- default="unknown">
- <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>
- </xs:complexType>
- </xs:element>
- <!--
- ====================================================================
- === Node class ===
- ====================================================================
- -->
- <xs:element name="Node">
- <xs:complexType>
- <xs:sequence>
- <xs:choice maxOccurs="unbounded">
- <xs:element name="NodeName"
- type="iodef:MLStringType" minOccurs="0"/>
- <xs:element ref="iodef:Address"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:choice>
- <xs:element ref="iodef:Location"
- minOccurs="0"/>
- <xs:element ref="iodef:DateTime"
- minOccurs="0"/>
- <xs:element ref="iodef:NodeRole"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="iodef:Counter"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
- <xs:element name="Address">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="category" default="ipv4-addr">
- <xs:simpleType>
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="asn"/>
- <xs:enumeration value="atm"/>
- <xs:enumeration value="e-mail"/>
- <xs:enumeration value="mac"/>
- <xs:enumeration value="ipv4-addr"/>
- <xs:enumeration value="ipv4-net"/>
- <xs:enumeration value="ipv4-net-mask"/>
- <xs:enumeration value="ipv6-addr"/>
- <xs:enumeration value="ipv6-net"/>
- <xs:enumeration value="ipv6-net-mask"/>
- <xs:enumeration value="ext-value"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="ext-category"
- type="xs:string" use="optional"/>
- <xs:attribute name="vlan-name"
- type="xs:string"/>
- <xs:attribute name="vlan-num"
- type="xs:integer"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="Location" type="iodef:MLStringType"/>
- <xs:element name="NodeRole">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="iodef:MLStringType">
- <xs:attribute name="category" use="required">
- <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="ext-value"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="ext-category"
- type="xs:string" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <!--
- ====================================================================
- === Service Class ===
- ====================================================================
- -->
- <xs:element name="Service">
- <xs:complexType>
- <xs:sequence>
- <xs:choice minOccurs="0">
- <xs:element name="Port"
- type="xs:integer"/>
- <xs:element name="Portlist"
- type="iodef:PortlistType"/>
- </xs:choice>
- <xs:element name="ProtoType"
- type="xs:integer" minOccurs="0"/>
- <xs:element name="ProtoCode"
- type="xs:integer" minOccurs="0"/>
- <xs:element name="ProtoField"
- type="xs:integer" minOccurs="0"/>
- <xs:element ref="iodef:Application"
- minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="ip_protocol"
- type="xs:integer" use="required"/>
- </xs:complexType>
- </xs:element>
- <xs:simpleType name="PortlistType">
- <xs:restriction base="xs:string">
- <xs:pattern value="\d+(\-\d+)?(,\d+(\-\d+)?)*"/>
- </xs:restriction>
- </xs:simpleType>
- <!--
- ====================================================================
- === Counter class ===
- ====================================================================
- -->
- <xs:element name="Counter">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:double">
- <xs:attribute name="type" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="byte"/>
- <xs:enumeration value="packet"/>
- <xs:enumeration value="flow"/>
- <xs:enumeration value="session"/>
- <xs:enumeration value="event"/>
- <xs:enumeration value="alert"/>
- <xs:enumeration value="message"/>
- <xs:enumeration value="host"/>
- <xs:enumeration value="site"/>
- <xs:enumeration value="organization"/>
- <xs:enumeration value="ext-value"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="ext-type"
- type="xs:string" use="optional"/>
- <xs:attribute name="meaning"
- type="xs:string" use="optional"/>
- <xs:attribute name="duration"
- type="iodef:duration-type"/>
- <xs:attribute name="ext-duration"
- type="xs:string" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </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 name="restriction"
- type="iodef:restriction-type"/>
- </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:Application"
- minOccurs="0"/>
- <xs:element ref="iodef:RecordPattern"
- minOccurs="0" maxOccurs="unbounded"/>
- <xs:element ref="iodef:RecordItem"
- maxOccurs="unbounded"/>
- <xs:element ref="iodef:AdditionalData"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="restriction"
- type="iodef:restriction-type"/>
- </xs:complexType>
- </xs:element>
- <xs:element name="RecordPattern">
- <xs:complexType>
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="type" use="required">
- <xs:simpleType>
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="regex"/>
- <xs:enumeration value="binary"/>
- <xs:enumeration value="xpath"/>
- <xs:enumeration value="ext-value"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="ext-type"
- type="xs:string" use="optional"/>
- <xs:attribute name="offset"
- type="xs:integer" use="optional"/>
- <xs:attribute name="offsetunit"
- use="optional" default="line">
- <xs:simpleType>
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="line"/>
- <xs:enumeration value="byte"/>
- <xs:enumeration value="ext-value"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
- <xs:attribute name="ext-offsetunit"
- type="xs:string" use="optional"/>
- <xs:attribute name="instance"
- type="xs:integer" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- </xs:element>
- <xs:element name="RecordItem"
- type="iodef:ExtensionType"/>
- <!--
- ====================================================================
- === Classes that describe software ===
- ====================================================================
- -->
- <xs:complexType name="SoftwareType">
- <xs:sequence>
- <xs:element ref="iodef:URL"
- minOccurs="0"/>
- </xs:sequence>
- <xs:attribute name="swid"
- type="xs:string" default="0"/>
- <xs:attribute name="configid"
- type="xs:string" default="0"/>
- <xs:attribute name="vendor"
- type="xs:string"/>
- <xs:attribute name="family"
- 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 name="Application"
- type="iodef:SoftwareType"/>
- <xs:element name="OperatingSystem"
- type="iodef:SoftwareType"/>
- <!--
- ====================================================================
- === Miscellaneous simple classes ===
- ====================================================================
- -->
- <xs:element name="Description"
- type="iodef:MLStringType"/>
- <xs:element name="URL"
- type="xs:anyURI"/>
- <!--
- ====================================================================
- === Data Types ===
- ====================================================================
- -->
- <xs:simpleType name="PositiveFloatType">
- <xs:restriction base="xs:float">
- <xs:minExclusive value="0"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:complexType name="MLStringType">
- <xs:simpleContent>
- <xs:extension base="xs:string">
- <xs:attribute name="lang"
- type="xs:language" use="optional"/>
- </xs:extension>
- </xs:simpleContent>
- </xs:complexType>
- <xs:complexType name="ExtensionType" mixed="true">
- <xs:sequence>
- <xs:any namespace="##any" processContents="lax"
- minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- <xs:attribute name="dtype"
- type="iodef:dtype-type" use="required"/>
- <xs:attribute name="ext-dtype"
- type="xs:string" use="optional"/>
- <xs:attribute name="meaning"
- type="xs:string"/>
- <xs:attribute name="formatid"
- type="xs:string"/>
- <xs:attribute name="restriction"
- type="iodef:restriction-type"/>
- </xs:complexType>
- <!--
- ====================================================================
- === Global attribute type declarations ===
- ====================================================================
- -->
- <xs:simpleType name="restriction-type">
- <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:simpleType name="severity-type">
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="low"/>
- <xs:enumeration value="medium"/>
- <xs:enumeration value="high"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="duration-type">
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="second"/>
- <xs:enumeration value="minute"/>
- <xs:enumeration value="hour"/>
- <xs:enumeration value="day"/>
- <xs:enumeration value="month"/>
- <xs:enumeration value="quarter"/>
- <xs:enumeration value="year"/>
- <xs:enumeration value="ext-value"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="action-type">
- <xs:restriction base="xs:NMTOKEN">
- <xs:enumeration value="nothing"/>
- <xs:enumeration value="contact-source-site"/>
- <xs:enumeration value="contact-target-site"/>
- <xs:enumeration value="contact-sender"/>
- <xs:enumeration value="investigate"/>
- <xs:enumeration value="block-host"/>
- <xs:enumeration value="block-network"/>
- <xs:enumeration value="block-port"/>
- <xs:enumeration value="rate-limit-host"/>
- <xs:enumeration value="rate-limit-network"/>
- <xs:enumeration value="rate-limit-port"/>
- <xs:enumeration value="remediate-other"/>
- <xs:enumeration value="status-triage"/>
- <xs:enumeration value="status-new-info"/>
- <xs:enumeration value="other"/>
- <xs:enumeration value="ext-value"/>
- </xs:restriction>
- </xs:simpleType>
- <xs:simpleType name="dtype-type">
- <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="frame"/>
- <xs:enumeration value="packet"/>
- <xs:enumeration value="ipv4-packet"/>
- <xs:enumeration value="ipv6-packet"/>
- <xs:enumeration value="url"/>
- <xs:enumeration value="csv"/>
- <xs:enumeration value="winreg"/>
- <xs:enumeration value="xml"/>
- <xs:enumeration value="ext-value"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:schema>
|