diff options
Diffstat (limited to 'metadata/dtd')
-rw-r--r-- | metadata/dtd/book.dtd | 25 | ||||
-rw-r--r-- | metadata/dtd/common.dtd | 137 | ||||
-rw-r--r-- | metadata/dtd/funnychars.dtd | 84 | ||||
-rw-r--r-- | metadata/dtd/gleps.dtd | 8 | ||||
-rw-r--r-- | metadata/dtd/glsa.dtd | 330 | ||||
-rw-r--r-- | metadata/dtd/guide.dtd | 42 | ||||
-rw-r--r-- | metadata/dtd/metadata.dtd | 91 | ||||
-rw-r--r-- | metadata/dtd/metadoc.dtd | 43 | ||||
-rw-r--r-- | metadata/dtd/mirrors.dtd | 89 | ||||
-rw-r--r-- | metadata/dtd/project.dtd | 56 | ||||
-rw-r--r-- | metadata/dtd/projects.dtd | 26 | ||||
-rw-r--r-- | metadata/dtd/repositories.dtd | 65 | ||||
-rw-r--r-- | metadata/dtd/userinfo.dtd | 23 |
13 files changed, 1019 insertions, 0 deletions
diff --git a/metadata/dtd/book.dtd b/metadata/dtd/book.dtd new file mode 100644 index 000000000000..e5e09b7efcc8 --- /dev/null +++ b/metadata/dtd/book.dtd @@ -0,0 +1,25 @@ +<!ENTITY % common SYSTEM "common.dtd"> + +%common; + +<!ELEMENT book (title, values?, author+, abstract, license?, version, date, part+)> +<!ATTLIST book link CDATA #IMPLIED + disclaimer (articles|oldbook|draft|obsolete) #IMPLIED + redirect CDATA #IMPLIED + lang CDATA #IMPLIED> + +<!ELEMENT part (title, abstract, chapter+)> +<!ATTLIST part id CDATA #IMPLIED> + +<!ELEMENT chapter (title, abstract?, include)> +<!ATTLIST chapter id CDATA #IMPLIED> + +<!ELEMENT sections (abstract?, version, date, section+)> + +<!ELEMENT section (include | (title, (body+ | subsection+)) )> + +<!ELEMENT subsection (include | (title?, body+))> +<!ATTLIST subsection id CDATA #IMPLIED + test CDATA #IMPLIED> + +<!ELEMENT body (include | (%block.class;)+)> diff --git a/metadata/dtd/common.dtd b/metadata/dtd/common.dtd new file mode 100644 index 000000000000..e9ebb517f415 --- /dev/null +++ b/metadata/dtd/common.dtd @@ -0,0 +1,137 @@ +<!-- Import funny characters --> + +<!ENTITY % funnychars SYSTEM "funnychars.dtd"> + +%funnychars; + +<!ENTITY % inline.class "sup|sub|b|brite|c|e|path|img|br|mail|uri|keyval"> +<!ENTITY % pre.class "comment|i|keyword|ident|const|stmt|var|keyval|uri"> +<!ENTITY % lists.class "ul|ol|dl"> +<!ENTITY % ti.class "%inline.class;|%lists.class;|fig"> +<!ENTITY % block.class "figure|fig|note|impo|warn|pre|p|table|%lists.class;"> + +<!ELEMENT title (#PCDATA)> + +<!ELEMENT values (key+)> + +<!ELEMENT key (#PCDATA)> +<!ATTLIST key id CDATA #IMPLIED> + +<!ELEMENT author (#PCDATA|mail)*> +<!ATTLIST author title CDATA #IMPLIED> + +<!ELEMENT mail (#PCDATA)> +<!ATTLIST mail link CDATA #IMPLIED> + +<!ELEMENT uri (#PCDATA|img)*> +<!ATTLIST uri link CDATA #IMPLIED> + +<!ELEMENT date (#PCDATA)> + +<!ELEMENT abstract (#PCDATA)> + +<!ELEMENT summary (#PCDATA)> + +<!ELEMENT license EMPTY> +<!ATTLIST license version CDATA #IMPLIED> + +<!ELEMENT version (#PCDATA)> + +<!ELEMENT figure EMPTY> +<!ATTLIST figure caption CDATA #IMPLIED + short CDATA #IMPLIED + link CDATA #REQUIRED> + +<!ELEMENT fig EMPTY> +<!ATTLIST fig short CDATA #IMPLIED + linkto CDATA #IMPLIED + link CDATA #REQUIRED> + +<!ELEMENT img EMPTY> +<!ATTLIST img src CDATA #REQUIRED> + +<!ELEMENT br EMPTY> + +<!ELEMENT note (#PCDATA|%inline.class;)*> +<!ATTLIST note test CDATA #IMPLIED> + +<!ELEMENT impo (#PCDATA|%inline.class;)*> +<!ATTLIST impo test CDATA #IMPLIED> + +<!ELEMENT warn (#PCDATA|%inline.class;)*> +<!ATTLIST warn test CDATA #IMPLIED> + +<!ELEMENT pre (#PCDATA|%pre.class;)*> +<!ATTLIST pre caption CDATA #REQUIRED + test CDATA #IMPLIED> + +<!ELEMENT comment (#PCDATA|%pre.class;|b)*> +<!ELEMENT i (#PCDATA|%pre.class;)*> +<!ELEMENT keyword (#PCDATA|%pre.class;)*> +<!ELEMENT ident (#PCDATA|%pre.class;)*> +<!ELEMENT const (#PCDATA|%pre.class;)*> +<!ELEMENT stmt (#PCDATA|%pre.class;)*> +<!ELEMENT var (#PCDATA|%pre.class;)*> + +<!ELEMENT glepindex EMPTY> +<!ATTLIST glepindex status CDATA #IMPLIED + index CDATA "/proj/en/glep/gleps.xml"> + +<!ATTLIST body test CDATA #IMPLIED> + +<!ELEMENT p (#PCDATA|%inline.class;)*> +<!ATTLIST p by CDATA #IMPLIED + test CDATA #IMPLIED> + +<!ELEMENT table (tcolumn*, tr+)> +<!ATTLIST table test CDATA #IMPLIED> + +<!ELEMENT tcolumn EMPTY> +<!ATTLIST tcolumn width CDATA #REQUIRED> + +<!ELEMENT tr (th|ti)+> +<!ATTLIST tr id CDATA #IMPLIED + test CDATA #IMPLIED> + +<!ELEMENT th (#PCDATA|%inline.class;)*> +<!ATTLIST th colspan CDATA #IMPLIED + rowspan CDATA #IMPLIED + align (left|center|right) "left"> + +<!ELEMENT ti (#PCDATA|%ti.class;)*> +<!ATTLIST ti colspan CDATA #IMPLIED + rowspan CDATA #IMPLIED + align (left|center|right) "left"> + +<!ELEMENT dl (dt|dd)+> + +<!ELEMENT dt (#PCDATA|%inline.class;)*> + +<!ELEMENT dd (#PCDATA|%inline.class;|ul|ol)*> + +<!ELEMENT ul (li+)> +<!ATTLIST ul test CDATA #IMPLIED> + +<!ELEMENT ol (li+)> +<!ATTLIST ol test CDATA #IMPLIED> + +<!ELEMENT li (#PCDATA|%inline.class;|ul|ol)*> +<!ATTLIST li test CDATA #IMPLIED> + +<!ELEMENT sup (#PCDATA|%inline.class;)*> +<!ELEMENT sub (#PCDATA|%inline.class;)*> +<!ELEMENT b (#PCDATA|%inline.class;)*> +<!ELEMENT brite (#PCDATA|%inline.class;)*> +<!ELEMENT c (#PCDATA|%inline.class;)*> +<!ELEMENT e (#PCDATA|%inline.class;)*> +<!ELEMENT path (#PCDATA|%inline.class;)*> + +<!ELEMENT keyval EMPTY> +<!ATTLIST keyval id CDATA #REQUIRED> + +<!ATTLIST section id CDATA #IMPLIED + test CDATA #IMPLIED> + +<!ELEMENT included ( version, date, (chapter|section|body)+ )> +<!ELEMENT include EMPTY> +<!ATTLIST include href CDATA #REQUIRED> diff --git a/metadata/dtd/funnychars.dtd b/metadata/dtd/funnychars.dtd new file mode 100644 index 000000000000..00231a262175 --- /dev/null +++ b/metadata/dtd/funnychars.dtd @@ -0,0 +1,84 @@ +<!ENTITY half "½"> <!-- VULGAR FRACTION ONE HALF --> +<!ENTITY frac12 "½"> <!-- VULGAR FRACTION ONE HALF --> +<!ENTITY frac14 "¼"> <!-- VULGAR FRACTION ONE QUARTER --> +<!ENTITY frac34 "¾"> <!-- VULGAR FRACTION THREE QUARTERS --> +<!ENTITY frac18 "⅛"> <!-- --> +<!ENTITY frac38 "⅜"> <!-- --> +<!ENTITY frac58 "⅝"> <!-- --> +<!ENTITY frac78 "⅞"> <!-- --> +<!ENTITY sup1 "¹"> <!-- SUPERSCRIPT ONE --> +<!ENTITY sup2 "²"> <!-- SUPERSCRIPT TWO --> +<!ENTITY sup3 "³"> <!-- SUPERSCRIPT THREE --> +<!ENTITY plus "+"> <!-- PLUS SIGN --> +<!ENTITY plusmn "±"> <!-- PLUS-MINUS SIGN --> +<!ENTITY lt "&#60;"> <!-- LESS-THAN SIGN --> +<!ENTITY equals "="> <!-- EQUALS SIGN --> +<!ENTITY gt ">"> <!-- GREATER-THAN SIGN --> +<!ENTITY divide "÷"> <!-- DIVISION SIGN --> +<!ENTITY times "×"> <!-- MULTIPLICATION SIGN --> +<!ENTITY curren "¤"> <!-- CURRENCY SIGN --> +<!ENTITY pound "£"> <!-- POUND SIGN --> +<!ENTITY dollar "$"> <!-- DOLLAR SIGN --> +<!ENTITY cent "¢"> <!-- CENT SIGN --> +<!ENTITY yen "¥"> <!-- YEN SIGN --> +<!ENTITY num "#"> <!-- NUMBER SIGN --> +<!ENTITY percnt "%"> <!-- PERCENT SIGN --> +<!ENTITY amp "&#38;"> <!-- AMPERSAND --> +<!ENTITY ast "∗"> <!-- ASTERISK OPERATOR --> +<!ENTITY commat "@"> <!-- COMMERCIAL AT --> +<!ENTITY lsqb "["> <!-- LEFT SQUARE BRACKET --> +<!ENTITY bsol "\"> <!-- REVERSE SOLIDUS --> +<!ENTITY rsqb "]"> <!-- RIGHT SQUARE BRACKET --> +<!ENTITY lcub "{"> <!-- LEFT CURLY BRACKET --> +<!ENTITY horbar "―"> <!-- HORIZONTAL BAR --> +<!ENTITY verbar "|"> <!-- VERTICAL LINE --> +<!ENTITY rcub "}"> <!-- RIGHT CURLY BRACKET --> +<!ENTITY micro "µ"> <!-- MICRO SIGN --> +<!ENTITY ohm "Ω"> <!-- OHM SIGN --> +<!ENTITY deg "°"> <!-- DEGREE SIGN --> +<!ENTITY ordm "º"> <!-- MASCULINE ORDINAL INDICATOR --> +<!ENTITY ordf "ª"> <!-- FEMININE ORDINAL INDICATOR --> +<!ENTITY sect "§"> <!-- SECTION SIGN --> +<!ENTITY para "¶"> <!-- PILCROW SIGN --> +<!ENTITY middot "·"> <!-- MIDDLE DOT --> +<!ENTITY larr "←"> <!-- LEFTWARDS DOUBLE ARROW --> +<!ENTITY rarr "→"> <!-- RIGHTWARDS DOUBLE ARROW --> +<!ENTITY uarr "↑"> <!-- UPWARDS ARROW --> +<!ENTITY darr "↓"> <!-- DOWNWARDS ARROW --> +<!ENTITY copy "©"> <!-- COPYRIGHT SIGN --> +<!ENTITY reg "®"> <!-- REG TRADE MARK SIGN --> +<!ENTITY trade "™"> <!-- TRADE MARK SIGN --> +<!ENTITY brvbar "¦"> <!-- BROKEN BAR --> +<!ENTITY not "¬"> <!-- NOT SIGN --> +<!ENTITY sung "♩"> <!-- --> +<!ENTITY excl "!"> <!-- EXCLAMATION MARK --> +<!ENTITY iexcl "¡"> <!-- INVERTED EXCLAMATION MARK --> +<!ENTITY quot """> <!-- QUOTATION MARK --> +<!ENTITY apos "'"> <!-- APOSTROPHE --> +<!ENTITY lpar "("> <!-- LEFT PARENTHESIS --> +<!ENTITY rpar ")"> <!-- RIGHT PARENTHESIS --> +<!ENTITY comma ","> <!-- COMMA --> +<!ENTITY lowbar "_"> <!-- LOW LINE --> +<!ENTITY hyphen ""> <!-- --> +<!ENTITY period "."> <!-- FULL STOP --> +<!ENTITY sol "/"> <!-- SOLIDUS --> +<!ENTITY colon ":"> <!-- COLON --> +<!ENTITY semi ";"> <!-- SEMICOLON --> +<!ENTITY quest "?"> <!-- QUESTION MARK --> +<!ENTITY iquest "¿"> <!-- INVERTED QUESTION MARK --> +<!ENTITY laquo "«"> <!-- LEFT-POINTING DOUBLE ANGLE QUOTATION MARK --> +<!ENTITY raquo "»"> <!-- RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK --> +<!ENTITY lsquo "‘"> <!-- --> +<!ENTITY rsquo "’"> <!-- RIGHT SINGLE QUOTATION MARK --> +<!ENTITY ldquo "“"> <!-- --> +<!ENTITY rdquo "”"> <!-- RIGHT DOUBLE QUOTATION MARK --> +<!ENTITY nbsp " "> <!-- NO-BREAK SPACE --> +<!ENTITY shy "­"> <!-- SOFT HYPHEN --> +<!ENTITY acirc "â"> <!-- CIRCONFLEXEd a --> +<!ENTITY euml "ë"> <!-- UMLAUTED e --> +<!ENTITY eacute "é"> <!-- ACUTEd e --> +<!ENTITY icirc "î"> <!-- CIRCONFLEXEd i --> +<!ENTITY ucirc "û"> <!-- CIRCONFLEXEd u --> +<!ENTITY ugrave "ù"> <!-- GRAVEd u --> +<!ENTITY ndash "–"> +<!ENTITY mdash "—"> diff --git a/metadata/dtd/gleps.dtd b/metadata/dtd/gleps.dtd new file mode 100644 index 000000000000..524f58a0b696 --- /dev/null +++ b/metadata/dtd/gleps.dtd @@ -0,0 +1,8 @@ +<!ELEMENT gleps (glep+)> +<!ELEMENT glep (#PCDATA|uri)*> +<!ATTLIST glep id CDATA #REQUIRED + file CDATA #REQUIRED + type (S|I) "S" + status (D|d|A|F|R|W|M) "D"> +<!ELEMENT uri (#PCDATA)> +<!ATTLIST uri link CDATA #REQUIRED> diff --git a/metadata/dtd/glsa.dtd b/metadata/dtd/glsa.dtd new file mode 100644 index 000000000000..b6459d119c52 --- /dev/null +++ b/metadata/dtd/glsa.dtd @@ -0,0 +1,330 @@ +<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/dtd/glsa.dtd,v 1.17 2008/04/04 17:04:39 neysx Exp $ --> +<!ELEMENT glsa (title,synopsis,product,announced,revised,bug*,access?,affected,background?,description,impact,workaround,resolution,references,license?,metadata*)> +<!ATTLIST glsa id CDATA #REQUIRED> + +<!-- + Element: title + Description: Provides a 4-5 word description about the advisory + Example: <title>Buffer overflow vulnerability found in openssl-0.9.5</title> +--> +<!ELEMENT title (#PCDATA)> + +<!-- + Element: synopsis + Description: Small, to-the-point description about the GLSA + + Example: <synopsis> + rsync has an exploitable buffer overflow that can lead to + remote compromise + </synopsis> +--> +<!ELEMENT synopsis (#PCDATA)> + +<!-- + Element: product + Description: Defines what type of security announcement this is. + + Valid types are: + - ebuild A Portage-provided ebuild has a security + issue + - informational This GLSA is purely informational, no Gentoo + system is affected + - infrastructure The security issue involves the Gentoo + infrastructure + + The text contains one keyword that defines the issue. + Note: All type values but 'ebuild' are considered deprecated. + + Example: <product type="ebuild">openssl</product> + Example: <product type="infrastructure">rsync mirror</product> +--> +<!ELEMENT product (#PCDATA)> +<!ATTLIST product type (ebuild|infrastructure|informational) #REQUIRED> + +<!-- + Element: announced + Description: Date when the advisory is publicised + The format must be "YYYY-mm-dd" + + Example: <announced>2003-11-20</announced> +--> +<!ELEMENT announced (#PCDATA)> + +<!-- + Element: revised + Description: Last revision date of the GLSA + Attribute: @count: number of revisions + + Example: <revised count="02">2003-11-20</revised> +--> +<!ELEMENT revised (#PCDATA)> +<!ATTLIST revised count CDATA "01"> + +<!-- + Element: bug + Description: Number of the bug on bugs.gentoo.org, if any + Occurrence: The bug element can occur 0, 1 or more times + + Example: <bug>34200</bug> +--> +<!ELEMENT bug (#PCDATA)> + +<!-- + Element: access + Description: Type of access necessary to exploit the security issue + This element should only be used when product@type = 'ebuild' + Occurrence: The access element can occur 0 or 1 time + + Example: <access>Remote</access> +--> +<!ELEMENT access (#PCDATA)> + +<!-- + Element: affected + Description: Describe what the affected subjects are. + + If product@type = 'ebuild', the child elements are 'package' + If product@type = 'portage', the child elements are 'package' + If product@type = 'infrastructure', the child elements are + 'service' + +--> +<!ELEMENT affected (package*|service*)> + +<!-- + Element: package + Description: Provide all necessary information regarded the affected + packages. It also contains information about the affected + architectures, if automatic updates can be done and the update + + The "update" attribute contains the path to the non-vulnerable + version of the package + + The "auto" attribute contains either "yes" or "no" and tells + Portage that the package can be updated automatically (to be + implemented) without further user interaction + + The "arch" attribute contains either the architecture (as used + by ACCEPT_KEYWORDS) or the "*" value (in case all + architectures are affected) + + Occurrence: The package element can occur 0, 1 or more times + Example: <package name="dev-libs/openssl" auto="yes" arch="*"> + <vulnerable range="lt">0.9.6k</vulnerable> + <unaffected range="gt">0.9.6k</unaffected> + </package> +--> +<!ELEMENT package (vulnerable|unaffected)*> +<!ATTLIST package name CDATA #REQUIRED + auto (yes|no) #REQUIRED + arch CDATA #REQUIRED> + +<!-- + Element: vulnerable + Description: Version of the vulnerable package. Can be a range too +--> +<!ELEMENT vulnerable (#PCDATA)> +<!ATTLIST vulnerable range (le|lt|eq|gt|ge|rlt|rle|rgt|rge) #REQUIRED + slot CDATA "*"> + +<!-- + Element: unaffected + Description: Version of the fixed (or unaffected) package. In case the + package is superseded by another package, you need to + define that package using the "name" attribute. + + The r* range information is revision-specific. For instance, + rge foo-1.2.3-r4 == >=foo-1.2.3-r4 && <foo-1.2.4 + + Example: + <unaffected range="gt" name="foobar">2.0.0</unaffected> +--> +<!ELEMENT unaffected (#PCDATA)> +<!ATTLIST unaffected range (le|lt|eq|gt|ge|rlt|rle|rgt|rge) #REQUIRED + slot CDATA "*" + name CDATA #IMPLIED> + +<!-- + Element: service + Description: Provide information about the Gentoo services that are + affected by the security advisory. Portage must be able + to parse this information to make decisions (for instance, + ignore an rsync server or a certain distfiles mirror). + + The type attribute can be one of "rsync", "web", "mirror". + + The fixed attribute (denoting if the problem has been solved) + can be one of "yes" or "no". If not used, the default value is + "no". + + Occurrence: The service element can occur 0, 1 or more times + Example: <service type="rsync">rsync://rsync.someserver.tld/gentoo-portage</service> +--> +<!ELEMENT service (#PCDATA)> +<!ATTLIST service type (rsync|web|mirror) #REQUIRED + fixed (yes|no) #IMPLIED> + +<!-- + Element: uri + Description: Link to the organisation involved in releasing the advisory + Occurrence: The uri element can occur 0, 1 or more times + + Example: <uri link="http://www.cert.org">CERT</uri> +--> +<!ELEMENT uri (#PCDATA)> +<!ATTLIST uri link CDATA #IMPLIED> + +<!-- + Element: mail + Description: Mail address of the people involved in releasing the advisory + Occurrence: The mail element can occur 0, 1 or more times + + Example: <mail link="some@person.com">Some Person</mail> +--> +<!ELEMENT mail (#PCDATA)> +<!ATTLIST mail link CDATA #REQUIRED> + +<!-- + Element: p + Description: Plain text + Occurrence: The "p" element can occur 0, 1 or more times and can contain + links or addresses + + Example: <p>Please update your system</p> +--> +<!ELEMENT p (#PCDATA|mail|uri|b|i|br)*> + +<!-- + Element: code + Description: The code element contains text that should preserve whitespace + and is therefore useful for code listings or commands + + Example: <code>emerge sync</code> +--> +<!ELEMENT code (#PCDATA)> + +<!-- + Element: background + Description: Provides a background of the affected package(s)/service(s) + The background element contains only "<p>"s in which the text + is placed + +--> +<!ELEMENT background (p|ul|ol)*> + +<!-- + Element: description + Description: Provides a description about the security issue + The description element contains only "<p>"s. +--> +<!ELEMENT description (p|ul|ol|code)*> + +<!-- + Element: impact + Description: Provides information about the impact that the security issue + can have + + The "impact" element contains only "<p>"s. + + The type element gives a short term, such as + "Denial of Service", "Buffer Overflow", ... + +--> +<!ELEMENT impact (p|ul|ol)*> +<!ATTLIST impact type CDATA #REQUIRED> + +<!-- + Element: workaround + Description: Provides information about how the security issue can be + (temporarily) resolved through a work-around + + The "workaround" element contains only "<p>"s and "<code>"s. +--> +<!ELEMENT workaround (p|code|ul|ol)*> + +<!-- + Element: resolution + Description: Provides information about how the security issue can be + resolved. + + The "resolution" element contains only "<p>"s and "<code>"s. +--> +<!ELEMENT resolution (p|code|ul|ol)*> + +<!-- + Element: references + Description: Provides links to resources / references available online. + + The "reference" element contains only "<uri>"s. +--> +<!ELEMENT references (uri*)> + +<!-- + Element: ul + Description: Add an unnumbered listing; can only contain <li>'s +--> +<!ELEMENT ul (li*)> + +<!-- + Element: ol + Description: Add a numbered listing; can only contain <li>'s +--> +<!ELEMENT ol (li*)> + +<!-- + Element: li + Description: Element of a listing + + Example: <ul> + <li>This is element one</li> + <li>This is a second element</li> + </ul> +--> +<!ELEMENT li (#PCDATA)> + +<!-- + Element: b + Description: Bold text + + Example: <b>this is bold</b> +--> +<!ELEMENT b (#PCDATA)> + +<!-- + Element: i + Description: Input text (blue) + + Example: The user has to type in <i>ls</i> to see. +--> +<!ELEMENT i (#PCDATA)> + +<!-- + Element: br + Description: hard line break + + Example: And then: <br/> + KABLAM! +--> +<!ELEMENT br (#PCDATA)> + +<!-- + Element: license + Description: Add license information + + Example: <license/> +--> +<!ELEMENT license (EMPTY)> + +<!-- + Element: metadata + Description: Metadata information for GLSAMaker + + Example: <metadata tag="approved">Level 1</metadata> + + On request of plasmaroo, metadata can contain all elements again. +--> +<!ELEMENT metadata (#PCDATA|metadata)*> +<!ATTLIST metadata tag CDATA #REQUIRED + revision CDATA #IMPLIED + author CDATA #IMPLIED + timestamp CDATA #IMPLIED> diff --git a/metadata/dtd/guide.dtd b/metadata/dtd/guide.dtd new file mode 100644 index 000000000000..4b98657be6b9 --- /dev/null +++ b/metadata/dtd/guide.dtd @@ -0,0 +1,42 @@ +<!ENTITY % common SYSTEM "common.dtd"> + +%common; + +<!ELEMENT mainpage (title, author+, abstract?, license?, version, date?, (devmap? | newsitems? | (mirrorlist|chapter)+))> +<!ATTLIST mainpage + redirect CDATA #IMPLIED + lang CDATA #IMPLIED> + +<!ELEMENT newsitems EMPTY> + +<!ELEMENT devmap EMPTY> + +<!ELEMENT guide (title, subtitle?, values?, author+, abstract, summary?, license?, version, date, faqindex?, chapter+)> +<!ATTLIST guide type CDATA #IMPLIED + disclaimer (articles|oldbook|draft|obsolete) #IMPLIED + redirect CDATA #IMPLIED + lang CDATA #IMPLIED> + +<!ELEMENT news (poster, date, title, summary?, body)> +<!ATTLIST news gentoo (yes|no) "no" + category (gentoo|main|linux|moo|plans|birthday) #REQUIRED> + +<!ELEMENT subtitle (#PCDATA)> + +<!ELEMENT poster (#PCDATA)> + +<!ELEMENT faqindex (title, section?)> + +<!ELEMENT chapter (include | (title, section+))> +<!ATTLIST chapter id CDATA #IMPLIED> + +<!ELEMENT section (include | (title?, body+))> + +<!ELEMENT body (mirrorlist | include | (%block.class;|glsa-latest|glsaindex|glepindex)+)> + +<!ELEMENT glsaindex EMPTY> +<!ELEMENT glsa-latest EMPTY> + +<!ELEMENT mirrorlist EMPTY> +<!ATTLIST mirrorlist select (full|partial) 'full'> +<!ATTLIST mirrorlist src CDATA '/main/en/mirrors3.xml'> diff --git a/metadata/dtd/metadata.dtd b/metadata/dtd/metadata.dtd new file mode 100644 index 000000000000..d7ef81c7f750 --- /dev/null +++ b/metadata/dtd/metadata.dtd @@ -0,0 +1,91 @@ +<!-- Metadata for a category --> +<!ELEMENT catmetadata ( (longdescription)* )> +<!ATTLIST catmetadata pkgname CDATA ""> + +<!-- Metadata for a package --> +<!ELEMENT pkgmetadata ( (maintainer|longdescription|slots|use|upstream)* )> +<!ATTLIST pkgmetadata pkgname CDATA ""> + + <!-- One tag for each maintainer of a package, multiple allowed--> + <!ELEMENT maintainer ( email, (description| name)* )> + <!-- type attribute determines whether the maintainer is a person or a project. + Unknown is added to handle <maintainer/>s in <upstream/>s. Using it (or no + explicit type) for Gentoo maintainers is prohibited. --> + <!ATTLIST maintainer type (person|project|unknown) "unknown"> + + <!-- A long description of the package in freetext--> + <!ELEMENT longdescription (#PCDATA|pkg|cat)* > + + <!-- A description of the packages SLOTs --> + <!ELEMENT slots ((slot)*,subslots?) > + <!-- A particular SLOT --> + <!ELEMENT slot (#PCDATA)* > + <!-- name attribute holds the name of the SLOT, for sub-SLOTS + use the subslots element. A slot name of '*' can be used to + indicate a single description applying to all the slots in which + case no other <slot/> elements may be present. --> + <!ATTLIST slot name CDATA #REQUIRED > + <!-- The meaning of sub-SLOTs for the whole package --> + <!ELEMENT subslots (#PCDATA)* > + + <!-- description of what this USE flag does for this package --> + <!ELEMENT use (flag)* > + <!ELEMENT flag (#PCDATA|pkg|cat)* > + <!-- name attribute holds the name of the USE flag --> + <!ATTLIST flag name CDATA #REQUIRED > + + <!-- upstream metadata information (maintainers, upstream docs,..) --> + <!ELEMENT upstream (maintainer|changelog|doc|bugs-to|remote-id)* > + <!-- Due to the limitation of DTD this will also allow a status + attribute for the package maintainer element. Please note that + the usage of the status attribute is nevertheless _only_ allowed + in the upstream maintainer element. --> + <!ATTLIST maintainer status (active|inactive|unknown) "unknown" > + <!-- URL where the upstream changelog can be found --> + <!ELEMENT changelog (#PCDATA)> + <!-- URL where the location of the upstream documentation can be found --> + <!ELEMENT doc (#PCDATA)> + <!ATTLIST doc lang CDATA "en" > + <!-- location where to report bugs + (may also be an email address prefixed with mailto:) --> + <!ELEMENT bugs-to (#PCDATA)> + <!-- specify a type of package identification tracker --> + <!ELEMENT remote-id (#PCDATA)> + <!ATTLIST remote-id type (bitbucket|cpan|cpan-module|cpe|cran|ctan|freecode|freshmeat|gentoo|github|gitlab|gitorious|google-code|launchpad|pear|pecl|pypi|rubyforge|rubygems|sourceforge|sourceforge-jp|vim) #REQUIRED> + + <!-- category/package information for cross-linking in descriptions + and useflag descriptions --> + <!ELEMENT pkg (#PCDATA) > + <!ELEMENT cat (#PCDATA) > + +<!-- Common attributes --> + +<!-- the lang attribute, specifies the language of this tag in the + form of a ISO 639-1 language code. This is only useful for + descriptions of various kinds. If a tag with this attribute is + included there must be a description in the default language "en" --> + <!ATTLIST description lang CDATA "en" > + <!ATTLIST longdescription lang CDATA "en" > + <!ATTLIST slots lang CDATA "en" > + <!ATTLIST use lang CDATA "en" > + +<!-- The restrict attribute, this attribute specifies restrictions on + the applicability of tags on versions. The format of this attribute is + equal to the format of DEPEND lines in ebuilds. Only package + dependency specifications conforming to EAPI=0 syntax are allowed. + The dependency specification may only contain references to the + package itself and no other package. + + For required tags, there must be either an unrestricted version, or a + version that is default restricted. --> + <!ATTLIST maintainer restrict CDATA #IMPLIED > + <!ATTLIST longdescription restrict CDATA #IMPLIED > + <!ATTLIST flag restrict CDATA #IMPLIED > + +<!-- standard parts --> +<!-- an email address --> +<!ELEMENT email (#PCDATA) > +<!-- the name of a person (maintainer, contributor) --> +<!ELEMENT name (#PCDATA) > +<!-- A description of a maintainer or change --> +<!ELEMENT description (#PCDATA) > diff --git a/metadata/dtd/metadoc.dtd b/metadata/dtd/metadoc.dtd new file mode 100644 index 000000000000..20e73b2677b4 --- /dev/null +++ b/metadata/dtd/metadoc.dtd @@ -0,0 +1,43 @@ +<!ENTITY % common SYSTEM "common.dtd"> + +%common; + +<!ELEMENT metadoc (version,members,categories,files,docs)> +<!ATTLIST metadoc lang CDATA #REQUIRED + parent CDATA #IMPLIED> +<!ELEMENT members (lead*,member*)> +<!ELEMENT lead (#PCDATA)*> <!-- <lead>nickname</lead> --> +<!ELEMENT member (#PCDATA)*> +<!ATTLIST member mail CDATA #IMPLIED + fullname CDATA #IMPLIED> +<!ELEMENT categories (cat)*> +<!ELEMENT cat (#PCDATA)*> +<!ATTLIST cat id CDATA #REQUIRED + parent CDATA #IMPLIED> +<!ELEMENT files (file)*> +<!ELEMENT file (#PCDATA)*> +<!ATTLIST file id ID #REQUIRED> +<!ELEMENT docs (doc)*> +<!ELEMENT doc (memberof*,bookref?,bugs?)> +<!ATTLIST doc fileid CDATA #REQUIRED> +<!ELEMENT memberof (#PCDATA)*> +<!ELEMENT bookref EMPTY> +<!ATTLIST bookref vpart CDATA #IMPLIED + vchap CDATA #IMPLIED> +<!ELEMENT bugs (bug*)> +<!ELEMENT bug (#PCDATA)*> +<!ATTLIST bug stopper (yes|no) #IMPLIED + arch CDATA #IMPLIED> + +<!ELEMENT dynamic (version?, title, intro?, (listing|catid*|overview))> +<!ATTLIST dynamic metadoc CDATA #REQUIRED> +<!ELEMENT intro (section)*> <!-- Section stuff copy/pasted from guide.dtd --> +<!ELEMENT listing (list)*> +<!ELEMENT list (#PCDATA)*> +<!ELEMENT catid (#PCDATA)*> +<!ELEMENT overview EMPTY> + + +<!ELEMENT section (include | (title?, body+))> + +<!ELEMENT body (include | (%block.class;)+)> diff --git a/metadata/dtd/mirrors.dtd b/metadata/dtd/mirrors.dtd new file mode 100644 index 000000000000..d855815851f4 --- /dev/null +++ b/metadata/dtd/mirrors.dtd @@ -0,0 +1,89 @@ +<!-- $Header: /var/cvsroot/gentoo/xml/htdocs/dtd/mirrors.dtd,v 1.3 2009/12/03 09:43:39 robbat2 Exp $ --> +<!-- This file is used for keeping the new mirrors.xml file --> + +<!-- + element: mirrors + description: A set of mirrorgroups followed by a list of countries with their code + example: <mirrors> + <mirrorgroup country="US" region="North America"> + ... + </mirrorgroup> + ... + <countries> + <country code="CA">Canada</country> + ... + </countries> + </mirrors> +--> + +<!ELEMENT mirrors (mirrorgroup*, countries)> + +<!-- + element: mirrorgroup + description: Group mirrors by region and country. + The country code must exist in //countries/country + example: <mirrorgroup region="South America" country="BZ"> + <mirror> + ... + </mirror> + ... + </mirrorgroup +--> + +<!ELEMENT mirrorgroup (mirror*)> +<!ATTLIST mirrorgroup region CDATA #REQUIRED + country IDREF #REQUIRED> +<!-- + element: mirror + description: One per mirror; name the mirror and provide one or more uris + optionally: provide GPS coordinates, a city and a bug id. + example: <mirror city="Corvallis" + coordinates="44.5646,-123.2620" + gentoo-bug="12345"> + <name>OSU Open Source Lab</name> + <uri protocol="http">http://gentoo.osuosl.org/</uri> + <uri protocol="ftp">ftp://gentoo.osuosl.org/</uri> + </mirror> +--> +<!ELEMENT mirror (name, uri+)> +<!ATTLIST mirror + city CDATA #IMPLIED + coordinates CDATA #IMPLIED + gentoo-bug CDATA #IMPLIED> + +<!-- + element: name + description: Name of the mirror + note: Do not include a country and protocol pair, "(USA/http)" as they will + be built by the XSL. + example: <name>OSU Open Source Lab</name> +--> +<!ELEMENT name (#PCDATA)> + +<!-- + element: uri + description: A Uniform Resource Locator for a given mirror + example: <uri protocol='http' ipv4='y' ipv6='y'>http://gentoo.osuosl.org/</uri> +--> +<!ELEMENT uri (#PCDATA)> +<!ATTLIST uri ipv4 (Y|y|N|n) "y" + ipv6 (Y|y|N|n) "n" + partial (Y|y|N|n) "n" + protocol (http|ftp|rsync) "http"> + +<!-- + element: countries + description: A list of countries with their code and name + example: <countries> + <country code="CA">Canada</country> + <countries> +--> +<!ELEMENT countries (country*)> + +<!-- + element: country + description: A country with its code + example: <country code="CA">Canada</country> +--> +<!ELEMENT country (#PCDATA)> +<!ATTLIST country code ID #REQUIRED> diff --git a/metadata/dtd/project.dtd b/metadata/dtd/project.dtd new file mode 100644 index 000000000000..adb0a9ba378c --- /dev/null +++ b/metadata/dtd/project.dtd @@ -0,0 +1,56 @@ +<!ENTITY % common SYSTEM "common.dtd"> + +%common; + +<!ENTITY % body.class "%block.class;|glepindex"> +<!ELEMENT body (%body.class;)*> + +<!ELEMENT project (name, longname?, date?, author*, description, longdescription, goals?, recruitment?, (dev | resource | subproject | plannedproject |extraproject | extrachapter | herd | task | author)* )> +<!ATTLIST project disclaimer (draft|obsolete) #IMPLIED + redirect CDATA #IMPLIED> +<!ELEMENT name (#PCDATA)> +<!ELEMENT longname (#PCDATA)> +<!ELEMENT description (#PCDATA)> +<!ELEMENT longdescription (%body.class;)* > +<!ELEMENT goals (%body.class;)* > +<!ELEMENT recruitment (job+) > +<!ELEMENT job (summary, details, requirements, contact+) > +<!ELEMENT details (#PCDATA|%inline.class;)*> +<!ELEMENT requirements (#PCDATA|%inline.class;)*> +<!ELEMENT contact (#PCDATA)> +<!ELEMENT dev (#PCDATA)> +<!ATTLIST dev role CDATA "member" + description CDATA #IMPLIED> +<!ELEMENT resource (#PCDATA)> +<!ATTLIST resource link CDATA #IMPLIED> +<!ELEMENT subproject EMPTY> +<!ATTLIST subproject ref CDATA #REQUIRED + inheritmembers ( yes | no ) "no" + inheritresources ( yes | no ) "no" > +<!ELEMENT extraproject (#PCDATA|%inline.class;)*> +<!ATTLIST extraproject name CDATA #REQUIRED + lead CDATA #IMPLIED + link CDATA #IMPLIED > +<!ELEMENT plannedproject (#PCDATA|%inline.class;)*> +<!ATTLIST plannedproject name CDATA #REQUIRED > +<!ELEMENT extrachapter (title, section+)> +<!ELEMENT section (title?, body+)> + +<!ATTLIST extrachapter position ( top|bottom|subproject|goals|resources|devs|recruitment|tasks ) "bottom"> +<!ELEMENT herd EMPTY> +<!ATTLIST herd name CDATA #REQUIRED> + +<!-- TASK tags declaration --> +<!ELEMENT task ( name, description, longdescription?, startdate, enddate?, (reference | milestone | dev |depends )* )> +<!ATTLIST task id ID #IMPLIED + lead CDATA #REQUIRED + finished (yes | no) "no"> +<!ELEMENT startdate (#PCDATA)> +<!ELEMENT enddate (#PCDATA)> +<!ELEMENT reference (#PCDATA | bug | mail | uri)* > +<!ELEMENT bug (#PCDATA)> +<!ATTLIST bug no CDATA #REQUIRED> +<!ELEMENT milestone (enddate, description)> +<!ATTLIST milestone finished (yes| no) "no"> +<!ELEMENT depends (#PCDATA)> +<!ATTLIST depends ref IDREF #REQUIRED> diff --git a/metadata/dtd/projects.dtd b/metadata/dtd/projects.dtd new file mode 100644 index 000000000000..6ce0544bcfbe --- /dev/null +++ b/metadata/dtd/projects.dtd @@ -0,0 +1,26 @@ +<!ELEMENT projects (project)*> +<!-- A project (identified by email address) --> +<!ELEMENT project (email,name,url,description,subproject*,member*)> +<!-- Contact e-mail address of a project or a project member --> +<!ELEMENT email (#PCDATA)> +<!-- Name of a project or a project member --> +<!ELEMENT name (#PCDATA)> +<!-- URL of the project homepage --> +<!ELEMENT url (#PCDATA)> +<!-- Description of the project --> +<!ELEMENT description (#PCDATA)> +<!-- Project member --> +<!ELEMENT member (email,name,role)> +<!-- is-lead="1" indicates that the member is the project's lead --> +<!ATTLIST member + is-lead (0|1) "0"> +<!-- Project member role --> +<!ELEMENT role (#PCDATA)> +<!-- Subproject of a project --> +<!ELEMENT subproject (#PCDATA)> +<!-- inherit-members="1" indicates that the project inherits members + from the subproject --> +<!-- ref="" references the subproject by the contact e-mail address --> +<!ATTLIST subproject + inherit-members (0|1) "0" + ref CDATA #REQUIRED> diff --git a/metadata/dtd/repositories.dtd b/metadata/dtd/repositories.dtd new file mode 100644 index 000000000000..882a77df1eac --- /dev/null +++ b/metadata/dtd/repositories.dtd @@ -0,0 +1,65 @@ +<!-- $Header --> +<!-- Used by [gentoo]/xml/htdocs/proj/en/overlays/repositories.xml --> +<!-- +The source copy and history of this file is available from +http://git.overlays.gentoo.org/gitweb/?p=proj/repositories-xml-format.git +--> +<!-- + Gentoo repositories.xml DTD 1.0 + + Modelling by + Robert Buchholz <rbu@gentoo.org> + Sebastian Pipping <sebastian@pipping.org> + Mounir Lamouri <volkmar@gentoo.org> + Tiziano Müller <dev-zero@gentoo.org> + + Copyright 1999-2015 Gentoo Foundation + Distributed under the terms of the GNU General Public License v2 or later +--> +<!ELEMENT repositories (repo)*> +<!ATTLIST repositories + xmlns CDATA #FIXED '' + version CDATA #FIXED '1.0'> + +<!ELEMENT repo (name,(description)+,(longdescription)*,(homepage)?,(owner)+,(source)+,(feed)*)> +<!ATTLIST repo + xmlns CDATA #FIXED '' + priority CDATA #IMPLIED + quality (core|stable|testing|experimental|graveyard) #REQUIRED + status (official|unofficial) #REQUIRED> + +<!ELEMENT name (#PCDATA)> +<!ATTLIST name + xmlns CDATA #FIXED ''> + +<!ELEMENT description (#PCDATA)> +<!ATTLIST description + xmlns CDATA #FIXED '' + lang CDATA #IMPLIED> + +<!ELEMENT longdescription (#PCDATA)> +<!ATTLIST longdescription + xmlns CDATA #FIXED '' + lang CDATA #IMPLIED> + +<!ELEMENT homepage (#PCDATA)> +<!ATTLIST homepage + xmlns CDATA #FIXED ''> + +<!ELEMENT owner (email,(name)?)> +<!ATTLIST owner + xmlns CDATA #FIXED '' + type (project|person) #IMPLIED> + +<!ELEMENT source (#PCDATA)> +<!ATTLIST source + xmlns CDATA #FIXED '' + type (bzr|cvs|darcs|git|mercurial|rsync|svn|tar) #REQUIRED> + +<!ELEMENT feed (#PCDATA)> +<!ATTLIST feed + xmlns CDATA #FIXED ''> + +<!ELEMENT email (#PCDATA)> +<!ATTLIST email + xmlns CDATA #FIXED ''> diff --git a/metadata/dtd/userinfo.dtd b/metadata/dtd/userinfo.dtd new file mode 100644 index 000000000000..8058c7d79295 --- /dev/null +++ b/metadata/dtd/userinfo.dtd @@ -0,0 +1,23 @@ +<!ELEMENT userlist (user+)> +<!ELEMENT user (realname, pgpkey+, alias*, email+, joined*, retired*, status?, roles?, location?) > + <!ATTLIST user username ID #REQUIRED> + <!ELEMENT realname (firstname,familyname)> + <!ATTLIST realname fullname CDATA #IMPLIED> + <!ELEMENT firstname (#PCDATA) > + <!ELEMENT familyname (#PCDATA) > + <!ATTLIST familyname sort CDATA #IMPLIED> + <!ELEMENT pgpkey (#PCDATA)> + <!ELEMENT alias (#PCDATA)> + <!ELEMENT email (#PCDATA)> + + <!-- all dates should be YYYY-MM-DD - eg '2006-11-22' --> + <!ELEMENT joined (#PCDATA)> + <!ELEMENT retired (#PCDATA)> + + <!ELEMENT status (#PCDATA)> + <!ELEMENT roles (#PCDATA)> + <!-- Location is the string displayed on the webpage --> + <!ELEMENT location (#PCDATA)> + <!-- signed decimal numbers. degrees north/east. --> + <!ATTLIST location latitude CDATA #IMPLIED + longitude CDATA #IMPLIED> |