<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!--
XML Schema for the CCFF message repository
Version 0.91
=================================================================
PGI Document Notice and License
Copyright (c) 2016, NVIDIA CORPORATION. All rights reserved.
Permission to use, copy, and distribute the contents of this document, in
any medium for any purpose and without fee or royalty is hereby granted,
provided that you include the following on ALL copies of the document, or
portions thereof:
1. A link or URL to the original document located at:
https://www.pgroup.com/doc/pgexplain.xsd
2. The copyright notice listed above.
When space permits, inclusion of the full text of this NOTICE should be
provided. We request that authorship attribution be provided in any
software, documents, or other items or products that you create pursuant to
the implementation of the contents of this document, or any portion
thereof.
The right to create modifications or derivatives is granted provided that
that you indicate any modification that you make by changing the namespace
so as to distinguish your altered version from the PGI version. We further
request you include a statement regarding who made the modifications, when,
and what changes were made.
THIS DOCUMENT IS PROVIDED "AS IS," AND THE COPYRIGHT HOLDER MAKES NO
REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT
LIMITED TO, WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
PURPOSE, NON-INFRINGEMENT, OR TITLE; THAT THE CONTENTS OF THE DOCUMENT ARE
SUITABLE FOR ANY PURPOSE; NOR THAT THE IMPLEMENTATION OF SUCH CONTENTS WILL
NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER
RIGHTS.
THE COPYRIGHT HOLDER WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL
OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE DOCUMENT OR THE
PERFORMANCE OR IMPLEMENTATION OF THE CONTENTS THEREOF.
The name and trademarks of the copyright holder may NOT be used in
advertising or publicity pertaining to this document or its contents
without specific, written prior permission. Title to copyright in this
document will at all times remain with copyright holders.
-->
<!-- definition of simple types -->
<xs:simpleType name="stringtype">
<xs:restriction base="xs:string"/>
</xs:simpleType>
<!-- definition of complex types -->
<!-- <type> element contains one each of
<typename> - symbolic identifier for the message type
<typeusername> - human-friendly name for the message type
<typeclass> - a higher-level categorization of message
types, eg there may be several message
types with typeclass "opt" (for optimization)
and optionally one of
<typeexplain> - human-friendly explanation of what the
message type means
-->
<xs:complexType name="typetype">
<xs:sequence>
<xs:element name="typename" type="stringtype"/>
<xs:element name="typeusername" type="stringtype"/>
<xs:element name="typeclass" type="stringtype"/>
<xs:element name="typeexplain" type="stringtype" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<!-- <msg> element contains one each of
<msgid> - symbolic identifier for the message
<msgtype> - category of this message, maps to <type><typename>
<msgtext> - text of the message, may contain replaceable params
and optionally contains one or the other of
<msgseealso> - msgid of another message. use the msgexplain element
of that message for this message.
<msgexplain> - explanation of the message, and optionally some hints
about what the user might do as a result
-->
<xs:group name="msgtypegroup">
<xs:choice>
<xs:element name="msgseealso" type="stringtype" minOccurs="0"/>
<xs:element name="msgexplain" type="stringtype" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
</xs:group>
<xs:complexType name="msgtype">
<xs:sequence>
<xs:element name="msgid" type="stringtype"/>
<xs:element name="msgtype" type="stringtype"/>
<xs:element name="msgtext" type="stringtype"/>
<xs:group ref="msgtypegroup" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<!-- <msgfile> contains elements
<type> - defines a category of messages, e.g. messages
having to do with OpenMP
<msg> - defines a specific message within a category
in any quantity and any order
-->
<xs:group name="msgfilegroup">
<xs:choice>
<xs:element name="type" type="typetype" maxOccurs="unbounded"/>
<xs:element name="msg" type="msgtype" maxOccurs="unbounded"/>
</xs:choice>
</xs:group>
<xs:complexType name="msgfiletype">
<xs:sequence>
<xs:group ref="msgfilegroup" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- definition of top-level element -->
<xs:element name="msgfile" type="msgfiletype"/>
</xs:schema>