- <!--
    XML Software Versioning DTD, version 1.00
    
    http://mukoli.free.fr/svx/svx.dtd
    
    $Id: svx.dtd,v 1.24 2001/09/18 19:52:38 robux4 Exp $
  -->
  
  <!-- The root element : svx -->
  <!ELEMENT svx (vendor?, product+)>
  
- <!ATTLIST svx
    href CDATA #IMPLIED -- The place to get updated informations on this software --
    version CDATA #FIXED '1.0'  -- The version of this file format --
  >
  
- <!-- Contains information about the vendor whose products are described
      in this document -->
  <!ELEMENT vendor   (name,email?,url?)>
  
  <!-- The name of a vendor or a product : at least one text (in the default language)-->
  <!ELEMENT name     (text+)>
  
  <!-- The name of a vendor or a product -->
  <!ELEMENT text     (#PCDATA)>
  
- <!ATTLIST text
    lang CDATA "en" -- The language of the specified text item --
    mcontent CDATA "text/html" -- the MIME Content-Type : MAY NOT BE USED due to problems embedding MIME content in XML text files --
  >
    
  <!-- The email address of the vendor (as in info@foo-corp.com) -->
  <!ELEMENT email    (#PCDATA)>
  
  <!-- The home page URL of the vendor or the download (as in http://www.foo-corp.com/) -->
  <!ELEMENT url      (#PCDATA)>
  
  <!-- Contains information about a software product -->  
  <!ELEMENT product  (name,license*,version+)>
  
- <!ATTLIST product
    id ID #REQUIRED -- A unique identifier of the product. This
        is used to point from the outside into the XSA document, for example
        in order to only monitor a subset of the available products. --
    href CDATA #IMPLIED -- The place to get updated SVX versions for this package --
    ihref CDATA #IMPLIED -- The place to get updated informations on this package --
  >
  
- <!-- The current version of a product.
      license : in case it's different from the product (usefull when changing license in the product lifetime)
      -->
  <!ELEMENT version (license?,package*,dependency?,notes?,changes?)>
  
- <!ATTLIST version
    type (retail|eval|beta|alpha|todo) "retail" -- the size in Bytes (8 bits) of the located file --
    name CDATA #REQUIRED -- The version number (X.Y.Z usually) --
    date CDATA #IMPLIED -- The ISO 8601 data of the version (YYYY-MM-DD or YYYY-MM-DDTHH:MM:SSZ) --
    previous CDATA #IMPLIED -- the previous version number (X.Y.Z usually). It can be usefull to follow multiple branches --
  >
    
- <!-- The URL of where you can get the version
        http://www.foo-corp.com/products/bar/
       the text element describe in a human readable way what this download is
       the optional license is specified in case it's not the same as the global one
       -->
  <!ELEMENT package     (verification?,activation+,text*,license*,mirror+)>
  
- <!ATTLIST package
    size CDATA #IMPLIED -- the size in Bytes (8 bits) of the located file --
    type (binary|source) #REQUIRED -- the type of file retrieved --
    os (win32|win95|winNT|Win2K|WinXP|Linux|MacOS|MacOSX|DOS|BSD|OS2|Solaris|SunOS) "win32" -- the name of the located file --
    cpu (x86|IA64|mips|alpha|ppc|sparc|680x0) "x86" -- the name of the located file --
    lang CDATA "en" -- The language of the specified text item --
  >
    
  <!-- another package that should be installed for the product version -->
  <!ELEMENT verification (CRC32?,MD5?,CSV?,SFV?)>
  
  <!-- the CRC32 calculated on the file -->
  <!ELEMENT CRC32 (#PCDATA)>
    
  <!-- the MD5 sum calculated on the file -->
  <!ELEMENT MD5 (#PCDATA)>
    
  <!-- the CSV sum calculated on the file -->
  <!ELEMENT CSV (#PCDATA)>
    
  <!-- the SFV (Simple File Verify) sum calculated on the file -->
  <!ELEMENT SFV (#PCDATA)>
    
- <!-- a activation tag (for commercial/shareware softwares) that may be extended
    depending on the activation scheme -->
  <!ELEMENT activation (#PCDATA)>
  
- <!-- The activation scheme : extensible with other types (like javascript,python,vbscript,msi,etc)
    autorun : run the downloaded file with the default file association (.zip -> WinZip for example / .rpm -> rpm -Fvh)
    ex-autorun : same as autorun but in a separated process (in case the product to update is running)
  -->
  <!ATTLIST activation scheme (CDATA|autorun|ex-autorun) #REQUIRED>
    
  <!-- another package that should be installed for the product version -->
  <!ELEMENT mirror EMPTY>
  
- <!ATTLIST mirror
    country CDATA #IMPLIED -- The country where is located that mirror --
    href CDATA #REQUIRED -- The URL for this mirrored file --
  >
    
  <!-- another package that should be installed for the product version -->
  <!ELEMENT dependency (dversion+)>
  
- <!ATTLIST dependency
    id ID #REQUIRED -- The unique identifier of the package (should correspond to a known product) --
    link (optional|mandatory|exclusive) #REQUIRED -- The dependency product is either optional, mandatory (has to be installed too)
        or exclusive (shouldn't be installed if this one is) --
  >
  
  <!-- The current version of a product. -->
  <!ELEMENT dversion EMPTY>
  
- <!ATTLIST dversion
    name CDATA #REQUIRED -- The dependency version name --
    compatible (true|false) #REQUIRED -- The compatibility of the product version with the specified dependency version --
  >
  
  <!-- Some text to describe briefly what has changed -->
  <!ELEMENT notes (text+)>
  
- <!-- An element with information about changes made to the product
        between the previous release and the current one. -->
  <!ELEMENT changes (bugfix*,feature*,improvement*)>
  
  <!-- an improvement of this version over previous ones -->
  <!ELEMENT improvement (text+)>
    
  <!-- The priority or importance of the dependency (a number, bigger is less important) -->
  <!ATTLIST dependency priority CDATA #IMPLIED>
  
  <!-- a new feature of this version over previous ones -->
  <!ELEMENT feature (text+)>
    
  <!-- The priority or importance of the feature (a number, bigger is less important) -->
  <!ATTLIST feature priority CDATA #IMPLIED>
  
  <!-- a bugfix in this version over previous ones -->
  <!ELEMENT bugfix (text+)>
  
  <!-- The priority or importance of the bugfix (a number, bigger is less important) -->
- <!ATTLIST bugfix
    priority CDATA #IMPLIED -- it says all --
    id CDATA #IMPLIED -- in case each bug of the item has a name or number --
  >
    
  <!-- License for an item the text contain the details of the licence -->
  <!ELEMENT license (text*)>
    
- <!ATTLIST license
    type (free-software|osi-approved|freeware|commercial|shareware|adware|cardware) #REQUIRED -- The different types of license --
    name (CDATA|BXAPL|BSD|MIT|GPL|LGPL|MPL|MPL11|QPL|Apache|Python|Artistic) #REQUIRED -- The different name of the license : custom (any CDATA) or recognised--
    href CDATA #IMPLIED -- A URL that gives more info about the license (and maybe the original text for popular ones) --
  >