Files
pisi/pisi-spec.rng
T
A. Murat Eren ccd19366ed locale += it..
2007-03-17 16:52:37 +00:00

483 lines
12 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!-- RELAX NG schema file for PISI pspec.xml files -->
<!-- http://www.pardus.org.tr/projeler/pisi/ -->
<grammar xmlns="http://relaxng.org/ns/structure/1.0">
<!-- Start Document -->
<start>
<ref name="PISI"/>
</start>
<!-- PISI Section -->
<define name="PISI">
<element name="PISI">
<ref name="Source"/>
<oneOrMore>
<ref name="Package"/>
</oneOrMore>
<ref name="History"/>
</element>
</define>
<!-- Source Section -->
<define name="Source">
<element name="Source">
<ref name="Name"/>
<ref name="Homepage"/>
<ref name="Packager"/>
<oneOrMore>
<ref name="License"/>
</oneOrMore>
<optional>
<ref name="Icon"/>
</optional>
<oneOrMore>
<ref name="IsA"/>
</oneOrMore>
<optional>
<ref name="PartOf"/>
</optional>
<oneOrMore>
<ref name="Summary"/>
</oneOrMore>
<zeroOrMore>
<!-- FIXME: should be oneOrMore -->
<ref name="Description"/>
</zeroOrMore>
<ref name="Archive"/>
<optional>
<ref name="BuildDependencies"/>
</optional>
<optional>
<ref name="Patches"/>
</optional>
</element>
</define>
<!-- Package Section -->
<define name="Package">
<element name="Package">
<ref name="Name"/>
<optional>
<ref name="License"/>
</optional>
<zeroOrMore>
<ref name="IsA"/>
</zeroOrMore>
<optional>
<ref name="PartOf"/>
</optional>
<zeroOrMore>
<ref name="Summary"/>
</zeroOrMore>
<zeroOrMore>
<ref name="Description"/>
</zeroOrMore>
<optional>
<ref name="RuntimeDependencies"/>
</optional>
<optional>
<ref name="Conflicts"/>
</optional>
<ref name="Files"/>
<optional>
<ref name="AdditionalFiles"/>
</optional>
<optional>
<ref name="Provides"/>
</optional>
</element>
</define>
<!-- History Section -->
<define name="History">
<element name="History">
<oneOrMore>
<ref name="Update"/>
</oneOrMore>
</element>
</define>
<!-- Name -->
<define name="Name">
<element name="Name">
<data type="string" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<param name="pattern">[0-9a-zA-Z\-_+]*</param>
<param name="maxLength">255</param>
</data>
</element>
</define>
<!-- Homepage -->
<define name="Homepage">
<element name="Homepage">
<text/>
</element>
</define>
<!-- Icon -->
<define name="Icon">
<element name="Icon">
<text/>
</element>
</define>
<!-- Packager -->
<define name="Packager">
<element name="Packager">
<ref name="Packager.Name"/>
<ref name="Email"/>
</element>
</define>
<!-- Packager.Name -->
<define name="Packager.Name">
<element name="Name">
<data type="string" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<param name="maxLength">255</param>
</data>
</element>
</define>
<!-- Email -->
<define name="Email">
<element name="Email">
<text/>
</element>
</define>
<!-- License -->
<define name="License">
<element name="License">
<text/>
</element>
</define>
<!-- IsA -->
<define name="IsA">
<element name="IsA">
<choice>
<value>app</value>
<value>app:console</value>
<value>app:gui</value>
<value>app:web</value>
<value>library</value>
<value>service</value>
<value>data</value>
<value>data:doc</value>
<value>data:font</value>
<value>kernel</value>
<value>driver</value>
<value>locale</value>
<value>locale:tr</value>
<value>locale:en</value>
<value>locale:es</value>
<value>locale:nl</value>
<value>locale:fr</value>
<value>locale:de</value>
<value>locale:it</value>
</choice>
</element>
</define>
<!-- PartOf -->
<define name="PartOf">
<element name="PartOf">
<text/>
</element>
</define>
<!-- Summary -->
<define name="Summary">
<element name="Summary">
<ref name="attlist.Summary"/>
<text/>
</element>
</define>
<!-- attlist.Summary -->
<define name="attlist.Summary" combine="interleave">
<optional>
<attribute name="xml:lang"/>
</optional>
</define>
<!-- Description -->
<define name="Description">
<element name="Description">
<ref name="attlist.Description"/>
<text/>
</element>
</define>
<!-- attlist.Description -->
<define name="attlist.Description" combine="interleave">
<optional>
<attribute name="xml:lang"/>
</optional>
</define>
<!-- Archive -->
<define name="Archive">
<element name="Archive">
<ref name="attlist.Archive"/>
<text/>
</element>
</define>
<!-- attlist.Archive -->
<define name="attlist.Archive" combine="interleave">
<group>
<attribute name="sha1sum"/>
<attribute name="type">
<choice>
<value>targz</value>
<value>tarbz2</value>
<value>tarlzma</value>
<value>tar</value>
<value>zip</value>
<value>binary</value>
</choice>
</attribute>
</group>
</define>
<!-- BuildDependencies -->
<define name="BuildDependencies">
<element name="BuildDependencies">
<oneOrMore>
<ref name="Dependency"/>
</oneOrMore>
</element>
</define>
<!-- Dependency -->
<define name="Dependency">
<element name="Dependency">
<ref name="attlist.VersionReleaseToFrom"/>
<text/>
</element>
</define>
<!-- attlist.VersionReleaseToFrom -->
<define name="attlist.VersionReleaseToFrom">
<group>
<optional>
<attribute name="versionFrom"/>
</optional>
<optional>
<attribute name="versionTo"/>
</optional>
<optional>
<attribute name="version"/>
</optional>
<optional>
<attribute name="releaseFrom"/>
</optional>
<optional>
<attribute name="releaseTo"/>
</optional>
<optional>
<attribute name="release"/>
</optional>
</group>
</define>
<!-- Patches -->
<define name="Patches">
<element name="Patches">
<oneOrMore>
<ref name="Patch"/>
</oneOrMore>
</element>
</define>
<!-- Patch -->
<define name="Patch">
<element name="Patch">
<ref name="attlist.Patch"/>
<text/>
</element>
</define>
<!-- attlist.Patch -->
<define name="attlist.Patch" combine="interleave">
<group>
<optional>
<attribute name="compressionType"/>
</optional>
<optional>
<attribute name="level"/>
</optional>
<optional>
<attribute name="target"/>
</optional>
</group>
</define>
<!-- Provides -->
<define name="Provides">
<element name="Provides">
<oneOrMore>
<ref name="COMAR"/>
</oneOrMore>
</element>
</define>
<!-- COMAR -->
<define name="COMAR">
<element name="COMAR">
<ref name="attlist.COMAR"/>
<text/>
</element>
</define>
<!-- attlist.COMAR -->
<define name="attlist.COMAR">
<optional>
<attribute name="script"/>
</optional>
</define>
<!-- Conflicts -->
<define name="Conflicts">
<element name="Conflicts">
<oneOrMore>
<ref name="Conflicts.Package"/>
</oneOrMore>
</element>
</define>
<define name="Conflicts.Package">
<element name="Package">
<ref name="attlist.VersionReleaseToFrom"/>
<text />
</element>
</define>
<!-- AdditionalFiles -->
<define name="AdditionalFiles">
<element name="AdditionalFiles">
<oneOrMore>
<ref name="AdditionalFile"/>
</oneOrMore>
</element>
</define>
<!-- AdditionalFile -->
<define name="AdditionalFile">
<element name="AdditionalFile">
<ref name="attlist.AdditionalFile"/>
<text/>
</element>
</define>
<!-- attlist.AdditionalFile -->
<define name="attlist.AdditionalFile">
<attribute name="target"/>
<optional>
<attribute name="permission"/>
</optional>
<optional>
<attribute name="owner"/>
</optional>
</define>
<!-- RuntimeDependencies -->
<define name="RuntimeDependencies">
<element name="RuntimeDependencies">
<oneOrMore>
<ref name="Dependency"/>
</oneOrMore>
</element>
</define>
<!-- Files -->
<define name="Files">
<element name="Files">
<oneOrMore>
<ref name="Path"/>
</oneOrMore>
</element>
</define>
<!-- Path -->
<define name="Path">
<element name="Path">
<ref name="attlist.Path"/>
<text/>
</element>
</define>
<!-- attlist.Path -->
<define name="attlist.Path" combine="interleave">
<group>
<attribute name="fileType">
<choice>
<value>executable</value>
<value>library</value>
<value>data</value>
<value>config</value>
<value>doc</value>
<value>man</value>
<value>info</value>
<value>localedata</value>
<value>header</value>
</choice>
</attribute>
<optional>
<attribute name="permanent">
<choice>
<value>false</value>
<value>true</value>
</choice>
</attribute>
</optional>
</group>
</define>
<!-- Update -->
<define name="Update">
<element name="Update">
<ref name="attlist.Update"/>
<ref name="Date"/>
<ref name="Version"/>
<ref name="Comment"/>
<ref name="Packager.Name"/>
<ref name="Email"/>
</element>
</define>
<!-- attlist.Update -->
<define name="attlist.Update" combine="interleave">
<attribute name="release"/>
<optional>
<attribute name="type">
<choice>
<value>security</value>
<value>bug</value>
</choice>
</attribute>
</optional>
</define>
<!-- Date -->
<define name="Date">
<element name="Date">
<data type="date" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes"/>
</element>
</define>
<!-- Version -->
<define name="Version">
<element name="Version">
<text/>
</element>
</define>
<!-- Comment -->
<define name="Comment">
<element name="Comment">
<text/>
</element>
</define>
</grammar>