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
(Created page with '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 th…')
 
Line 1: Line 1:
Schema definition
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 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.
Option 1: flat XML
This provides the software provider with a way to define the packages in a release, along with the release metadata. A full example follows:
In this case all updated packages are described sequentially, and all relevant release information is provided for all packages. Nestedness is determined by the UMD repo.


Example:
.
.
<pre>
<pre>
<package>
<Release>
    <Name>glite-WN-manpages</Name>
    <Type>Virtual</Type>
    <SoftwareProvider>EMI</SoftwareProvider>
    <SoftwareComponent>glite3.2</SoftwareComponent>
    <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>
<RepositoryURL>http://repository.egi.eu/</RepositoryURL>
<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>
    <SoftwareProvider>EMI</SoftwareProvider>
    <SoftwareComponent>glite3.2</SoftwareComponent>
    <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>
 
<ReleaseNotesURL>http://www.cslab.ece.ntua.gr</ReleaseNotesURL>
    <ChangeLogURL>http://www.cslab.ece.ntua.gr</ChangeLogURL>
 
<RsyncURL>ftp://www.cslab.ece.ntua.gr/</RsyncURL>
    <Method>apt</Method>
 
<DocumentationURL>http://www.cslab.ece.ntua.gr</DocumentationURL>
 
<Category>WN</Category>
    <ServicesAffected>gLite-WN</ServicesAffected>
 
<Dependencies>manpages</Dependencies>
</package>
</pre>
.
.
Option 2: nested XML
This provides the software provider with a way to define the packages in a release, along with the release metadata.
.
.
<pre>
<release>
     <Name>glite</Name>
     <Name>glite</Name>
     <SoftwareProvider>EMI</SoftwareProvider>
     <SoftwareProvider>EMI</SoftwareProvider>
Line 81: Line 17:
     <Version>3.2</Version>
     <Version>3.2</Version>


<package>
<Package>
         <Name>glite-WN-manpages</Name>
         <Name>glite-WN-manpages</Name>
         <Type>Virtual</Type
         <Type>Virtual</Type
Line 109: Line 45:
     <Dependencies>glite-WN-manpages-3.2.15 manpages</Dependencies>
     <Dependencies>glite-WN-manpages-3.2.15 manpages</Dependencies>


</package>
</Package>


<package>
<Package>
         <Name>glite-WN-manpages</Name>
         <Name>glite-WN-manpages</Name>
         <Type>Physical</Type>
         <Type>Physical</Type>
Line 139: Line 75:
<Dependencies>manpages</Dependencies>
<Dependencies>manpages</Dependencies>


</package>
</Package>
</release>
</Release>
</pre>
 
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:
<pre>
<Release>
    <Name>glite</Name>
    <SoftwareProvider>EMI</SoftwareProvider>
    <SoftwareComponent>glite3.2</SoftwareComponent>
    <Contact>eangelou@cslab.ntua.gr</Contact>
    <Description>Yet another glite release</Description>  <Keywords>gLite</Kewords>
    <DocumentationLinks>http://www.cslab.ece.ntua.gr http://www.egi.eu<DocumentationLinks>
    <Date>21/6/2010</Date>
    <Version>3.2</Version>
    <SynchProtocol>ftp</SynchProtocol>
    <SynchURL>ftp://repository.egi.eu/~eangelou/myfiles/</SynchURL>
</Release>
</pre>
 
An example DTD governing these XML files follows:
<pre>
<!DOCTYPE repository [
<!ELEMENT Release ( Name, SoftwareProvider, SoftwareComponent, Contact, Description, Keywords, DocumentationLinks, Date, Version, SynchProtocol, SynchURL, Package* ) >
  <!ELEMENT Name ( #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 ( http| ftp | rsync | sftp ) "http" >
  <!ELEMENT SynchURL ( #PCDATA) >
 
<!ELEMENT Package ( Name, Type, Creator, Contact, Description, SLDType, License, Keywords, SupportedPlatforms, Architecture, DocumentationLinks, Date, Version, ReleaseNotesURL, ChangeLogURL, RsyncURL, 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 ReleaseNotesURL ( #PCDATA) >
  <!ELEMENT ChangeLogURL ( #PCDATA) >
  <!ELEMENT RsyncURL ( #PCDATA) >
  <!ELEMENT Method ( #PCDATA) >
  <!ELEMENT DocumentationURL ( #PCDATA) >
  <!ELEMENT Category ( #PCDATA) >
  <!ELEMENT ServicesAffected ( #PCDATA) >
  <!ELEMENT Dependencies ( #PCDATA) >
]>
</pre>
</pre>

Revision as of 17:07, 20 September 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:

<Release>
    <Name>glite</Name>
    <SoftwareProvider>EMI</SoftwareProvider>
    <SoftwareComponent>glite3.2</SoftwareComponent>
    <Contact>eangelou@cslab.ntua.gr</Contact>
    <Description>Yet another glite release</Description>   

<Keywords>gLite</Kewords>

<DocumentationLinks>http://www.cslab.ece.ntua.gr http://www.egi.eu<DocumentationLinks>
    <Date>21/6/2010</Date>
    <Version>3.2</Version>

<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>

<RepositoryURL>http://repository.egi.eu/</RepositoryURL>

<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>

<ReleaseNotesURL>http://www.cslab.ece.ntua.gr</ReleaseNotesURL>
        <ChangeLogURL>http://www.cslab.ece.ntua.gr</ChangeLogURL>

<RsyncURL>ftp://www.cslab.ece.ntua.gr/</RsyncURL>
        <Method>apt</Method>

<DocumentationURL>http://www.cslab.ece.ntua.gr</DocumentationURL>

<Category>WN</Category>
        <ServicesAffected>gLite-WN</ServicesAffected>

<Dependencies>manpages</Dependencies>

</Package>
</Release>

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>
    <Name>glite</Name>
    <SoftwareProvider>EMI</SoftwareProvider>
    <SoftwareComponent>glite3.2</SoftwareComponent>
    <Contact>eangelou@cslab.ntua.gr</Contact>
    <Description>Yet another glite release</Description>   <Keywords>gLite</Kewords>
    <DocumentationLinks>http://www.cslab.ece.ntua.gr http://www.egi.eu<DocumentationLinks>
    <Date>21/6/2010</Date>
    <Version>3.2</Version>
    <SynchProtocol>ftp</SynchProtocol>
    <SynchURL>ftp://repository.egi.eu/~eangelou/myfiles/</SynchURL>
</Release>

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 Name ( #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 ( http| ftp | rsync | sftp ) "http" >
  <!ELEMENT SynchURL ( #PCDATA) >

<!ELEMENT Package ( Name, Type, Creator, Contact, Description, SLDType, License, Keywords, SupportedPlatforms, Architecture, DocumentationLinks, Date, Version, ReleaseNotesURL, ChangeLogURL, RsyncURL, 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 ReleaseNotesURL ( #PCDATA) >
  <!ELEMENT ChangeLogURL ( #PCDATA) >
  <!ELEMENT RsyncURL ( #PCDATA) >
  <!ELEMENT Method ( #PCDATA) >
  <!ELEMENT DocumentationURL ( #PCDATA) >
  <!ELEMENT Category ( #PCDATA) >
  <!ELEMENT ServicesAffected ( #PCDATA) >
  <!ELEMENT Dependencies ( #PCDATA) >
]>