observer-response.xsd
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
targetNamespace="http://www.w3.org/unicorn/observationresponse"
xmlns:m="http://www.w3.org/unicorn/observationresponse">
<xs:import
namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
<xs:element name="observationresponse">
<xs:complexType>
<xs:sequence>
<!-- URI of the document checked-->
<xs:element ref="m:uri"/>
<!-- URI of the observer -->
<xs:element ref="m:checkedby" minOccurs="0"/>
<!-- "Version" of the document. For example CSS 2, XHTML 1.0 Strict, ... -->
<xs:element ref="m:version" minOccurs="0"/>
<!-- Observation date-->
<xs:element ref="m:date" minOccurs="0"/>
<!-- used for conformance checks -->
<xs:element ref="m:passed" minOccurs="0"/>
<!-- Result of the observation -->
<xs:element ref="m:result"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="uri" type="xs:anyURI"/>
<xs:element name="checkedby" type="xs:anyURI"/>
<xs:element name="version" type="xs:string"/>
<xs:element name="date" type="xs:dateTime"/>
<xs:element name="passed" type="xs:boolean"/>
<!-- there are three types of messages: errors, warnings and misceallenous-->
<xs:element name="result">
<xs:complexType>
<xs:sequence>
<!-- global error list-->
<xs:element ref="m:errors" minOccurs="0"/>
<!-- global warning list -->
<xs:element ref="m:warnings" minOccurs="0"/>
<!-- global message list -->
<xs:element ref="m:informations" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="errors">
<xs:complexType>
<xs:sequence>
<!-- Total number of errors -->
<xs:element ref="m:errorcount" minOccurs="0"/>
<xs:element ref="m:errorlist" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="xml:lang" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="errorcount" type="xs:integer"/>
<xs:element name="errorlist">
<xs:complexType>
<xs:sequence>
<!-- URI of an included and checked document -->
<xs:element ref="m:uri"/>
<!-- number of errors for this "sub" document -->
<xs:element ref="m:errorcount" minOccurs="0"/>
<!-- error list for this document -->
<xs:element ref="m:error" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="error">
<xs:complexType>
<xs:sequence>
<!-- Line where the error appeared-->
<xs:element ref="m:line" minOccurs="0"/>
<!-- Column where the error appeared -->
<xs:element ref="m:column" minOccurs="0"/>
<xs:element ref="m:errortype" minOccurs="0"/>
<xs:element ref="m:context" minOccurs="0"/>
<xs:element ref="m:message" maxOccurs="unbounded"/>
<xs:element ref="m:longmessage" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="line" type="xs:nonNegativeInteger"/>
<xs:element name="column" type="xs:nonNegativeInteger"/>
<xs:element name="errortype" type="xs:string"/>
<xs:element name="context" type="xs:string"/>
<xs:element name="message" type="xs:string"/>
<xs:element name="longmessage">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element ref="m:a"/>
<xs:element ref="m:code" />
<xs:element ref="m:img"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="Inline" mixed="true">
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="m:a"/>
<xs:element ref="m:img"/>
</xs:choice>
</xs:complexType>
<xs:complexType name="inA" mixed="true">
<xs:choice>
<xs:element ref="m:img"/>
</xs:choice>
</xs:complexType>
<xs:element name="a">
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="m:inA">
<xs:attribute name="href" type="xs:anyURI"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="code">
<xs:complexType mixed="true">
<xs:complexContent>
<xs:extension base="m:Inline">
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="img">
<xs:complexType>
<xs:attribute name="src" use="required" type="xs:anyURI"/>
<xs:attribute name="alt" use="required" type="xs:string"/>
<xs:attribute name="name" type="xs:NMTOKEN"/>
<xs:attribute name="longdesc" type="xs:anyURI"/>
<xs:attribute name="height" type="xs:nonNegativeInteger"/>
<xs:attribute name="width" type="xs:nonNegativeInteger"/>
</xs:complexType>
</xs:element>
<!--
<xs:complexType name="tCode" mixed="true">
<xs:complexContent>
<xs:extension base="m:Inline">
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="tA" mixed="true">
<xs:complexContent>
<xs:extension base="m:inA">
<xs:attribute name="href" type="xs:anyURI"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="tImg">
<xs:attribute name="src" use="required" type="xs:anyURI"/>
<xs:attribute name="alt" use="required" type="xs:string"/>
<xs:attribute name="name" type="xs:NMTOKEN"/>
<xs:attribute name="longdesc" type="xs:anyURI"/>
<xs:attribute name="height" type="xs:nonNegativeInteger"/>
<xs:attribute name="width" type="xs:nonNegativeInteger"/>
</xs:complexType>
-->
<xs:element name="warnings">
<xs:complexType>
<xs:sequence>
<xs:element ref="m:warningcount" minOccurs="0"/>
<xs:element ref="m:warninglist" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="xml:lang" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="warningcount" type="xs:integer"/>
<xs:element name="warninglist">
<xs:complexType>
<xs:sequence>
<xs:element ref="m:uri"/>
<xs:element ref="m:warningcount" minOccurs="0"/>
<xs:element ref="m:warning" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="warning">
<xs:complexType>
<xs:sequence>
<xs:element ref="m:line" minOccurs="0"/>
<xs:element ref="m:column" minOccurs="0"/>
<xs:element ref="m:context" minOccurs="0"/>
<xs:element ref="m:level" minOccurs="0"/>
<xs:element ref="m:message" maxOccurs="unbounded"/>
<xs:element ref="m:longmessage" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="level" type="m:tWarningLevels"/>
<xs:simpleType name="tWarningLevels">
<xs:restriction base="xs:nonNegativeInteger">
<xs:maxInclusive value="3"/>
</xs:restriction>
</xs:simpleType>
<xs:element name="informations">
<xs:complexType>
<xs:sequence>
<xs:element ref="m:infocount" minOccurs="0"/>
<xs:element ref="m:infolist" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute ref="xml:lang" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="infocount" type="xs:integer"/>
<xs:element name="infolist">
<xs:complexType>
<xs:sequence>
<xs:element ref="m:uri"/>
<xs:element ref="m:infocount" minOccurs="0"/>
<xs:element ref="m:info" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="info">
<xs:complexType>
<xs:sequence>
<xs:element ref="m:line" minOccurs="0"/>
<xs:element ref="m:column" minOccurs="0"/>
<xs:element ref="m:context" minOccurs="0"/>
<xs:element ref="m:message" maxOccurs="unbounded"/>
<xs:element ref="m:longmessage" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<!--<xs:element name="errordetail" type="xs:string"/>-->
</xs:schema>