<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <!--
    log_parse.rnc
      relaxng schema for CodeSonar's XML output
      generated via template parse.xml
  -->
  <xs:element name="compilations">
    <xs:complexType>
      <xs:attribute name="ok" use="required" type="xs:integer"/>
      <xs:attribute name="fatal_error" use="required" type="xs:integer"/>
      <xs:attribute name="too_many_parse_errors" use="required" type="xs:integer"/>
      <xs:attribute name="some_parse_errors" use="required" type="xs:integer"/>
      <xs:attribute name="running" use="required" type="xs:integer"/>
      <xs:attribute name="total" use="required" type="xs:integer"/>
      <xs:attribute name="obsoleted" use="required" type="xs:integer"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="parse_errors" type="xs:integer"/>
  <xs:element name="native_run">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="compilation"/>
      </xs:sequence>
      <xs:attribute name="cmdline" use="required"/>
      <xs:attribute name="url" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="compilation">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="issue"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="diag"/>
      </xs:sequence>
      <xs:attribute name="status" use="required"/>
      <xs:attribute name="filename" use="required"/>
      <xs:attribute name="url" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="issue">
    <xs:complexType mixed="true">
      <xs:attribute name="created" use="required"/>
      <xs:attribute name="filename" use="required"/>
      <xs:attribute name="line" use="required"/>
      <xs:attribute name="severity" use="required"/>
      <xs:attribute name="errorcode" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="diag" type="xs:string"/>
  <xs:element name="log">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="compilations"/>
        <xs:element ref="parse_errors"/>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="native_run"/>
      </xs:sequence>
      <xs:attribute name="kind" use="required"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
