<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="http://projets.admisource.gouv.fr/xemelios/technical/schemas/xsd2html.xsl"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:include schemaLocation="TPseudoXPath.xsd" />
  <xs:include schemaLocation="TWidget.xsd"/>

    <xs:complexType name="TListeResultat">
      <xs:sequence>
        <xs:choice maxOccurs="unbounded">
          <xs:element name="widget" type="TWidget" maxOccurs="unbounded"/>
          <xs:element name="champ" maxOccurs="unbounded" type="TChamp"/>
          <xs:element name="hidden" maxOccurs="unbounded" type="THidden"/>
        </xs:choice>
      </xs:sequence>
      <xs:attribute name="ordre" use="required" type="xs:string">
        <xs:annotation>
          <xs:documentation>contient la liste des sens dans lequel on doit trier, separes par des virgules.
          exemple : ASC,DESC,DESC,ASC
          Si une valeur est manquante, c'est ASC par defaut.</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="tri-defaut" use="required" type="xs:string">
        <xs:annotation>
          <xs:documentation>
              contient la liste des id des champs de la liste des resultats sur lesquels on trie, separes par des virgule.
              exemple: lr3,lr4,lr15
          </xs:documentation>
         </xs:annotation>
      </xs:attribute>
    </xs:complexType>

    <xs:complexType name="TChamp">
      <xs:sequence>
        <xs:element name="valeur" type="TPseudoXPath" maxOccurs="1" />
      </xs:sequence>
      <xs:attribute name="datatype" type="TDatatype"/>
      <xs:attribute name="id" use="required" type="xs:ID">
        <xs:annotation>
          <xs:documentation>
            Identifiant unique du champ pour l'element. Cet identifiant est utilise pour le tri par defaut
          </xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="libelle" use="required"/>
      <xs:attribute name="checked" type="xs:boolean" use="optional" />
      <xs:attribute name="default-display" type="xs:boolean" use="optional" />
      <xs:attribute name="aggregate" type="xs:boolean" use="optional">
        <xs:annotation><xs:documentation>Permet d'indiquer si on peut faire des opération d'aggrégation (somme, moyenne, etc...) sur ce champ. Par défaut, vaut false</xs:documentation></xs:annotation>
      </xs:attribute>
      <xs:attribute name="affichable" type="xs:boolean" use="optional">
        <xs:annotation><xs:documentation>Indique si le champs peut �tre affich� ou non.</xs:documentation></xs:annotation>
      </xs:attribute>
      <xs:attribute name="exportable" type="xs:boolean" use="optional">
        <xs:annotation><xs:documentation>Indique si le champs peut �tre export� ou non.</xs:documentation></xs:annotation>
      </xs:attribute>
      <xs:attribute name="identifiant" type="xs:boolean" use="optional">
        <xs:annotation><xs:documentation>Indique si le champs est consid�r� comme faisant parti de la clef primaire de l'�l�ment auquel il appartient.</xs:documentation></xs:annotation>
      </xs:attribute>
    </xs:complexType>
  <xs:complexType name="THidden">
    <xs:sequence>
      <xs:element name="valeur" type="TPseudoXPath" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="name" use="required" type="xs:string">
      <xs:annotation>
        <xs:documentation>
          Nom du controle. Si le nom respecte le pattern xsl-param:([xs:NCName]), alors la parametre \1 est passe a la xsl lors de la visualisation de l'element
        </xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  
  <xs:simpleType name="TDatatype">
    <xs:restriction base="xs:string">
      <xs:enumeration value="string"/>
      <xs:enumeration value="integer"/>
      <xs:enumeration value="amount"/>
      <xs:enumeration value="decimal"/>
      <xs:enumeration value="date"/>
      <xs:enumeration value="pj-list">
        <xs:annotation>
          <xs:documentation>doit pointer sur un ou plusieurs element de type TPJRef tels que definis dans le PES</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  
  <!-- xs:simpleType name="TOrdre">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ASC" />
      <xs:enumeration value="DESC"/>
    </xs:restriction>
  </xs:simpleType -->
  
  
</xs:schema>
