Alert.png The wiki is deprecated and due to be decommissioned by the end of September 2022.
The content is being migrated to other supports, new updates will be ignored and lost.
If needed you can get in touch with EGI SDIS team using operations @ egi.eu.

Difference between revisions of "EGI-InSPIRE:NRMS New Release MetaDATA schema"

From EGIWiki
Jump to navigation Jump to search
Line 141: Line 141:
<pre>
<pre>
<!DOCTYPE repository [
<!DOCTYPE repository [
<!ELEMENT Release ( Name, SoftwareProvider, SoftwareComponent, Contact, Description, Keywords, DocumentationLinks, Date, Version, SynchProtocol, SynchURL, Package* ) >
<!ELEMENT Release ( Name, SoftwareProvider, SoftwareComponent, Contact, Description, Keywords,
DocumentationLinks, Date, Version, SynchProtocol, SynchURL, Package* ) >
   <!ELEMENT DistributionName ( #PCDATA) >
   <!ELEMENT DistributionName ( #PCDATA) >
   <!ELEMENT DistributionShortName( #PCDATA) >
   <!ELEMENT DistributionShortName( #PCDATA) >
Line 155: Line 156:
   <!ELEMENT SynchURL ( #PCDATA) >
   <!ELEMENT SynchURL ( #PCDATA) >


<!ELEMENT Package ( Name, Type, Creator, Contact, Description, SLDType, License, Keywords, SupportedPlatforms, Architecture, DocumentationLinks, Date, Version, ReleaseNotes, ChangeLog, Method, DocumentationURL, Category, ServicesAffected, Dependencies ) >
<!ELEMENT Package ( Name, Type, Creator, Contact, Description, SLDType, License, Keywords,  
SupportedPlatforms, Architecture, DocumentationLinks, Date, Version, ReleaseNotes, ChangeLog,  
Method, DocumentationURL, Category, ServicesAffected, Dependencies ) >
   <!ELEMENT Name ( #PCDATA) >
   <!ELEMENT Name ( #PCDATA) >
   <!ELEMENT Type ( #PCDATA) >
   <!ELEMENT Type ( #PCDATA) >

Revision as of 19:39, 27 October 2010

Schema definition

This document described the definition of the XML file that should be provided to the UMD repo in order to update it, using metadata collected by the RT from the software providers. This provides the software provider with a way to define the packages in a release, along with the release metadata. A full example follows:

Minimal Example

A minimal XML file can be uploaded as well, but in this case a synchronization URL is required. It is implied that all packages are contained at this URL, so that the repository can fetch them:

<Release>
   <DistributionName>European Middleware Initiative</DistributionName>
   <DistributionShortName>EMI</DistributionShortName>
   <SoftwareProvider>EMI</SoftwareProvider>
   <SoftwareComponent>glite3.2</SoftwareComponent>
   <Contact>eangelou@cslab.ntua.gr</Contact>
   <Description>Yet another glite release</Description>  
   <Keywords>gLite</Keywords>
   <DocumentationLinks>http://www.cslab.ece.ntua.gr http://www.egi.eu<DocumentationLinks>
   <Date>21/6/2010</Date>
   <MajorVersion>3</MajorVersion>
  <MinorVersion>2</MinorVersion>
  <RevisionVersion>1</RevisionVersion>
   <ReleaseNotes>Release Notes Text</ReleaseNotes>
   <ChangeLog>Change Log Text</ChangeLog>
   <SynchProtocol>ftp</SynchProtocol>
   <SynchURL>ftp://repository.egi.eu/~eangelou/myfiles/</SynchURL>
</Release>

Full Example

<Release>
   <DistributionName>European Middleware Initiative</DistributionName>
   <DistributionShortName>EMI</DistributionShortName>
   <SoftwareProvider>EMI</SoftwareProvider>
   <SoftwareComponent>glite3.2</SoftwareComponent>
   <Contact>eangelou@cslab.ntua.gr</Contact>
   <Description>Yet another glite release</Description>  
   <Keywords>gLite</Keywords>
   <DocumentationLinks>http://www.cslab.ece.ntua.gr http://www.egi.eu<DocumentationLinks>
   <Date>21/6/2010</Date>
   <MajorVersion>3</MajorVersion>
  <MinorVersion>2</MinorVersion>
  <RevisionVersion>1</RevisionVersion>
   <ReleaseNotes>Release Notes Text</ReleaseNotes>
   <ChangeLog>Change Log Text</ChangeLog>
   <SynchProtocol>ftp</SynchProtocol>
   <SynchURL>ftp://repository.egi.eu/~eangelou/myfiles/</SynchURL>
<Package>
        <Name>glite-WN-manpages</Name>
        <Type>Virtual</Type
        <Creator>eangelou</Creator>
        <Contact>eangelou@cslab.ntua.gr</Contact>
        <Description>Provides glite-WN with manpages for the appropriate tools</Description>
        <SLDType>community</SLDType>
        <License>GPL v.3</License>
        <Keywords>gLite gLite-WN man manpages</Keywords>
        <SupportedPlatforms>SL5</SupportedPlatforms>
        <Architecture>any</Architecture>
        <DocumentationLinks>http://www.cslab.ece.ntua.gr http://www.egi.eu<DocumentationLinks>
        <Date>21/6/2010</Date>
        <Version>3.2.1</Version>
        <ReleaseNotesURL>http://www.cslab.ece.ntua.gr</ReleaseNotesURL>
        <ChangeLogURL>http://www.cslab.ece.ntua.gr</ChangeLogURL>
        <DocumentationURL>http://www.cslab.ece.ntua.gr</DocumentationURL>
        <Dependencies>glite-WN-manpages-3.2.15 manpages</Dependencies>

</Package>

<Package>
        <Name>glite-WN-manpages</Name>
        <Type>Physical</Type>
        <Creator>eangelou</Creator>
        <Contact>eangelou@cslab.ntua.gr</Contact>
        <Description>Provides glite-WN with manpages for the appropriate tools</Description>
        <SLDType>community</SLDType>
        <License>GPL v.3</License>
        <Keywords>gLite gLite-WN man manpages</Keywords>
        <SupportedPlatforms>SL5</SupportedPlatforms>
        <Architecture>any</Architecture>
        <DocumentationLinks>http://www.cslab.ece.ntua.gr http://www.egi.eu<DocumentationLinks>
        <Date>21/6/2010</Date>
        <Version>3.2.15</Version>
        <ReleaseNotes>This is a new release that adds features X and Y</ReleaseNotes>
        <ChangeLog>Added features X and Y, fixed bug Z (http://bug.tracker.eu)</ChangeLog>
        <Method>apt</Method>
        <DocumentationURL>http://www.cslab.ece.ntua.gr</DocumentationURL>
        <Category>WN</Category>
        <ServicesAffected>gLite-WN</ServicesAffected>
        <Dependencies>manpages</Dependencies>
</Package>
</Release>

XSD Example

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xs:element name="Release">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="DistributionName"/>
        <xs:element ref="DistributionShortName"/>
        <xs:element ref="SoftwareProvider"/>
        <xs:element ref="SoftwareComponent"/>
        <xs:element ref="Contact"/>
        <xs:element ref="Description"/>
        <xs:element ref="Keywords"/>
        <xs:element ref="DocumentationLinks"/>
        <xs:element ref="Date"/>
        <xs:element ref="MajorVersion"/>
        <xs:element ref="MinorVersion"/>
        <xs:element ref="RevisionVersion"/>
        <xs:element ref="ReleaseNotes"/>
        <xs:element ref="ChangeLog"/>
        <xs:element ref="SynchProtocol"/>
        <xs:element ref="SynchURL"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DistributionName" type="xs:string"/>
  <xs:element name="DistributionShortName" type="xs:NCName"/>
  <xs:element name="SoftwareProvider" type="xs:NCName"/>
  <xs:element name="SoftwareComponent" type="xs:NCName"/>
  <xs:element name="Contact" type="xs:string"/>
  <xs:element name="Description" type="xs:string"/>
  <xs:element name="Keywords" type="xs:NCName"/>
  <xs:element name="DocumentationLinks" type="xs:anyURI"/>
  <xs:element name="Date" type="xs:string"/>
  <xs:element name="MajorVersion" type="xs:positiveInteger"/>
  <xs:element name="MinorVersion" type="xs:positiveInteger"/>
  <xs:element name="RevisionVersion" type="xs:positiveInteger"/>
  <xs:element name="ReleaseNotes" type="xs:string"/>
  <xs:element name="ChangeLog" type="xs:string"/>
  <xs:element name="SynchProtocol" type="xs:NCName"/>
  <xs:element name="SynchURL" type="xs:anyURI"/>
</xs:schema>

DTD Example

An example DTD governing these XML files follows:

<!DOCTYPE repository [
<!ELEMENT Release ( Name, SoftwareProvider, SoftwareComponent, Contact, Description, Keywords,
 DocumentationLinks, Date, Version, SynchProtocol, SynchURL, Package* ) >
  <!ELEMENT DistributionName ( #PCDATA) >
  <!ELEMENT DistributionShortName( #PCDATA) >
  <!ELEMENT SoftwareProvider ( #PCDATA) >
  <!ELEMENT SoftwareComponent ( #PCDATA) >
  <!ELEMENT Contact ( #PCDATA) >
  <!ELEMENT Description ( #PCDATA) >
  <!ELEMENT Keywords ( #PCDATA) >
  <!ELEMENT DocumentationLinks ( #PCDATA) >
  <!ELEMENT Date ( #PCDATA) >
  <!ELEMENT Version ( #PCDATA) >
  <!ATTLIST SynchProtocol reply ( rsync | http| ftp ) "rsync" >
  <!ELEMENT SynchURL ( #PCDATA) >

<!ELEMENT Package ( Name, Type, Creator, Contact, Description, SLDType, License, Keywords, 
SupportedPlatforms, Architecture, DocumentationLinks, Date, Version, ReleaseNotes, ChangeLog, 
Method, DocumentationURL, Category, ServicesAffected, Dependencies ) >
  <!ELEMENT Name ( #PCDATA) >
  <!ELEMENT Type ( #PCDATA) >
  <!ELEMENT Creator ( #PCDATA) >
  <!ELEMENT Contact ( #PCDATA) >
  <!ELEMENT Description ( #PCDATA) >
  <!ATTLIST SLDType reply ( supported| community | component) "community" >
  <!ELEMENT License ( #PCDATA) >
  <!ELEMENT Keywords ( #PCDATA) >
  <!ELEMENT SupportedPlatforms ( #PCDATA) >
  <!ELEMENT Architecture ( #PCDATA) >
  <!ELEMENT DocumentationLinks ( #PCDATA) >
  <!ELEMENT Date ( #PCDATA) >
  <!ELEMENT Version ( #PCDATA) >
  <!ELEMENT ReleaseNotes ( #PCDATA) >
  <!ELEMENT ChangeLog ( #PCDATA) >
  <!ELEMENT Method ( #PCDATA) >
  <!ELEMENT DocumentationURL ( #PCDATA) >
  <!ELEMENT Category ( #PCDATA) >
  <!ELEMENT ServicesAffected ( #PCDATA) >
  <!ELEMENT Dependencies ( #PCDATA) >
]>

--Kkoum 07:17, 28 September 2010 (UTC)