-<?xml version="1.0" encoding="UTF-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
-
- <!-- déclaration des groupes d'attributs -->
-
- <xs:attributeGroup name="parameterAttrGroup">
- <xs:attribute ref="name" use="required"/>
- <xs:attribute ref="type" use="required"/>
- <xs:attribute ref="wishbone" use="optional"/>
- <xs:attribute ref="core" use="optional"/>
- <xs:attribute ref="value" use="optional"/>
- <xs:attribute ref="iface" use="optional"/>
- <xs:attribute ref="width" use="optional"/>
- <xs:attribute ref="context" use="required"/>
- </xs:attributeGroup>
-
- <xs:attributeGroup name="inOutAttrGroup">
- <xs:attribute ref="name" use="required"/>
- <xs:attribute ref="width" use="required"/>
- <xs:attribute ref="type"/>
- <xs:attribute ref="purpose"/>
- <xs:attribute ref="multiplicity"/>
- </xs:attributeGroup>
-
-
- <!-- déclaration des attributs -->
-
- <xs:attribute name="ids" type="xs:string"/>
- <xs:attribute name="name" type="xs:string"/>
- <xs:attribute name="type" type="xs:string"/>
- <xs:attribute name="core" type="xs:string"/>
- <xs:attribute name="wishbone" type="xs:string"/>
- <xs:attribute name="context" type="xs:string" />
- <xs:attribute name="multiplicity" type="xs:string" />
- <xs:attribute name="width" type="xs:string"/>
- <xs:attribute name="purpose" type="xs:string"/>
- <xs:attribute name="value" type="xs:string"/>
- <xs:attribute name="iface" type="xs:string"/>
- <xs:attribute name="path" type="xs:string" />
-
-
- <!-- déclaration des groupes d'éléments -->
-
- <xs:group name="blockElmtGroup">
- <xs:sequence>
- <xs:element ref="informations"/>
- <xs:element ref="parameters"/>
- <xs:element ref="interfaces"/>
- <xs:element ref="implementations" minOccurs="0"/>
- </xs:sequence>
- </xs:group>
-
- <xs:group name="informationsElmtGroup">
- <xs:sequence>
- <xs:element ref="name"/>
- <xs:element ref="category"/>
- <xs:element ref="description"/>
- </xs:sequence>
- </xs:group>
-
- <xs:group name="descriptionElmtGroup">
- <xs:sequence>
- <xs:element ref="brief"/>
- <xs:element ref="detailed"/>
- </xs:sequence>
- </xs:group>
-
- <xs:group name="interfacesElmtGroup">
- <xs:sequence>
- <xs:element ref="inputs" minOccurs="0"/>
- <xs:element ref="outputs" minOccurs="1"/>
- <xs:element ref="bidirs" minOccurs="0"/>
- </xs:sequence>
- </xs:group>
-
-
- <!-- déclaration des éléments -->
-
- <xs:element name="informations">
- <xs:complexType>
- <xs:group ref="informationsElmtGroup"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="name" type="xs:string" />
-
- <xs:element name="category">
- <xs:complexType>
- <xs:attribute ref="ids" use="required"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="description">
- <xs:complexType>
- <xs:group ref="descriptionElmtGroup"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="brief" type="xs:string" />
-
- <xs:element name="detailed" type="xs:string" />
-
- <xs:element name="parameters">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="parameter" minOccurs="0" maxOccurs="unbounded"/>
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="parameter">
- <xs:complexType>
- <xs:attributeGroup ref="parameterAttrGroup"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="interfaces">
- <xs:complexType>
- <xs:group ref="interfacesElmtGroup"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="inputs">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="input" maxOccurs="unbounded" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="input">
- <xs:complexType>
- <xs:attributeGroup ref="inOutAttrGroup"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="outputs">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="output" maxOccurs="unbounded" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="output">
- <xs:complexType>
- <xs:attributeGroup ref="inOutAttrGroup"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="bidirs">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="bidir" maxOccurs="unbounded" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="bidir">
- <xs:complexType>
- <xs:attributeGroup ref="inOutAttrGroup"/>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="implementations">
- <xs:complexType>
- <xs:sequence>
- <xs:element ref="implementation" maxOccurs="unbounded" />
- </xs:sequence>
- </xs:complexType>
- </xs:element>
-
- <xs:element name="implementation">
- <xs:complexType>
- <xs:attribute ref="path" use="required" />
- </xs:complexType>
- </xs:element>
-
-
- <!-- Racine du document -->
-
- <xs:element name="block">
- <xs:complexType>
- <xs:group ref="blockElmtGroup"/>
- </xs:complexType>
- </xs:element>
-
-</xs:schema>