boost/status/explicit-failures.xsd
Daniel James 1fbed8e98f Make all elements optional
This is so that this schema can be used to validate module markup (such as https://github.com/boostorg/functional/blob/develop/meta/explicit-failures-markup.xml). An alternative solution would be to have a separate schema file for submodules, espcially if the reporting scripts require these elements to be present.
2017-10-20 19:27:58 +01:00

100 lines
3.7 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="explicit-failures-markup">
<xs:complexType>
<xs:sequence>
<xs:element ref="mark-toolset" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="library" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="note" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="mark-toolset">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string" minOccurs="0"/>
<xs:element name="description" type="xs:string" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="status" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="library">
<xs:complexType>
<xs:sequence>
<xs:element ref="mark-unusable" minOccurs="0" maxOccurs="unbounded"/>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element ref="test"/>
<xs:element ref="mark-expected-failures"/>
</xs:choice>
</xs:sequence>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="mark-unusable">
<xs:complexType>
<xs:sequence>
<xs:element ref="toolset" maxOccurs="unbounded"/>
<xs:element ref="note" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="test">
<xs:complexType>
<xs:sequence>
<xs:element ref="mark-failure" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="toolset" minOccurs="0"/>
<xs:element ref="note" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required"/>
<xs:attribute name="category" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="mark-expected-failures">
<xs:complexType>
<xs:sequence>
<xs:element ref="test" maxOccurs="unbounded"/>
<xs:element ref="toolset" maxOccurs="unbounded"/>
<xs:element ref="note"/>
</xs:sequence>
<xs:attribute name="reason" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="mark-failure">
<xs:complexType>
<xs:sequence>
<xs:element ref="toolset" maxOccurs="unbounded"/>
<xs:element ref="note" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="note">
<xs:complexType mixed="true">
<xs:sequence>
<xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="refid" type="xs:string"/>
<xs:attribute name="author" type="xs:string"/>
<xs:attribute name="date" type="xs:string"/>
<xs:attribute name="id" type="xs:string"/>
</xs:complexType>
</xs:element>
<xs:element name="toolset">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>