<?xml version="1.0" encoding="ISO-8859-1" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           targetNamespace="https://www.pgroup.com/ccff"
           xmlns="https://www.pgroup.com/ccff"
           elementFormDefault="qualified"
           attributeFormDefault="unqualified">

<!--
CCFF XML Schema version 0.9
=================================================================
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/ccff.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>

<xs:simpleType name="inttype">
  <xs:restriction base="xs:positiveInteger"/>
</xs:simpleType>

<xs:simpleType name="dectype">
  <xs:restriction base="xs:decimal"/>
</xs:simpleType>


<!-- definition of complex types -->
<xs:complexType name="sourcetype">
 <xs:sequence>
  <xs:element name="sourcename" type="stringtype"/>
  <xs:element name="sourcepath" type="stringtype"/>
  <xs:element name="sourcedir"  type="stringtype"/>
 </xs:sequence>
</xs:complexType>

<xs:complexType name="buildtype">
 <xs:sequence>
  <xs:element name="buildcompiler"   type="stringtype"/>
  <xs:element name="buildvendor"     type="stringtype"/>
  <xs:element name="buildoptions"    type="stringtype"/>
  <xs:element name="buildversion"    type="stringtype"/>
  <xs:element name="buildhost"       type="stringtype"/>
  <xs:element name="buildtarget"     type="stringtype"/>
  <xs:element name="buildlanguage"   type="stringtype"/>
  <xs:element name="builddate"       type="stringtype"/>
  <xs:element name="buildrepository" type="stringtype"/>
 </xs:sequence>
</xs:complexType>

<xs:complexType name="messagetype">
 <xs:sequence>
  <xs:choice>
   <xs:element name="messagevar"  type="stringtype"/>
   <xs:element name="messagefunc" type="stringtype"/>
   <xs:element name="messageline" type="inttype"/>
  </xs:choice>
  <xs:element name="messageid"   type="stringtype"/>
  <xs:element name="messageargs" type="stringtype" minOccurs="0"/>
  <xs:element name="messagetext" type="stringtype" minOccurs="0"/>
 </xs:sequence>
 <!-- see the "inlinedtype" defn for a discussion of "seq" -->
 <xs:attribute name="seq" type="inttype" use="optional"/>
</xs:complexType>

<xs:complexType name="inlineinfotype">
 <xs:sequence>
  <xs:element name="inlinelevel"       type="inttype"/>
  <xs:element name="inlineline"        type="inttype"/>
  <xs:element name="inlinesrcline"     type="inttype"/>
  <xs:element name="inlinename"        type="stringtype"/>
  <xs:element name="inlinemangledname" type="stringtype" minOccurs="0"/>
  <xs:element name="inlinefile"        type="stringtype"/>
 </xs:sequence>
</xs:complexType>

<xs:complexType name="includeinfotype">
 <xs:sequence>
  <xs:element name="includelevel"       type="inttype"/>
  <xs:element name="includefile"        type="stringtype"/>
 </xs:sequence>
</xs:complexType>

<xs:complexType name="unitinfotype">
 <xs:sequence>
  <xs:element name="unitname"    type="stringtype"/>
  <xs:element name="unitabiname" type="stringtype" minOccurs="0"/>
  <xs:element name="unitlines"   type="stringtype"/>
  <xs:element name="unittype"    type="stringtype" minOccurs="0"/>
 </xs:sequence>
</xs:complexType>

<!--
 The messagegroup type is used to show that either a <message>
 element or an <inlined> element can be substituted in its
 place.
-->
<xs:group name="messagegroup">
 <xs:choice>
  <xs:element name="message" type="messagetype"/>
  <xs:element name="inlined" type="inlinedtype"/>
  <xs:element name="included" type="includedtype"/>
 </xs:choice>
</xs:group>

<xs:complexType name="messagestype">
 <xs:sequence>
  <xs:group ref="messagegroup" maxOccurs="unbounded"/>
 </xs:sequence>
</xs:complexType>

<!-- 
 If a <message> element has an "INLnnn" message id (in the "inlined" 
 category), it should have a "seq" attribute with an integer value. 
 The "seq" attribute is used to pair up <message> and <inlined> 
 elements.  The matching <inlined> element will contain (at least) 
 information about the routine that was inlined, in particular,
 the file and line number where it was defined.

 An <inlined> element may also contain <messages> if there is any
 more information the compiler has about the inlined routine, but
 this is not a requirement.
-->
<xs:complexType name="inlinedtype">
 <xs:sequence>
  <xs:element name="inlineinfo"  type="inlineinfotype"/>
  <xs:element name="messages"    type="messagestype" minOccurs="0"/>
 </xs:sequence>
 <xs:attribute name="seq" type="inttype" use="optional"/>
</xs:complexType>

<xs:complexType name="includedtype">
 <xs:sequence>
  <xs:element name="includeinfo"  type="includeinfotype"/>
  <xs:element name="messages"    type="messagestype" minOccurs="0"/>
 </xs:sequence>
 <xs:attribute name="seq" type="inttype" use="optional"/>
</xs:complexType>

<xs:complexType name="unittype">
 <xs:sequence>
  <xs:element name="unitinfo" type="unitinfotype"/>
  <xs:element name="messages" type="messagestype" minOccurs="0"/>
 </xs:sequence>
</xs:complexType>

<xs:complexType name="unitstype">
 <xs:sequence>
  <xs:element name="unit" type="unittype" maxOccurs="unbounded"/>
 </xs:sequence>
</xs:complexType>

<xs:complexType name="ccfftype">
 <xs:sequence>
  <xs:element name="source" type="sourcetype"/>
  <xs:element name="build" type="buildtype"/>
  <xs:element name="units" type="unitstype" minOccurs="0"/>
 </xs:sequence>
 <xs:attribute name="version" use="required"/>
</xs:complexType>

<xs:complexType name="ccffbintype">
 <xs:sequence>
  <xs:element name="ccff" type="ccfftype" maxOccurs="unbounded"/>
 </xs:sequence>
</xs:complexType>

<!-- definition of top-level element -->
<xs:element name="ccffbin" type="ccffbintype"/>

</xs:schema>
Click me

This site uses cookies to store information on your computer. See our cookie policy for further details on how to block cookies.

X