summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Lawrence <dlawrence@mozilla.com>2011-08-08 07:25:44 +0200
committerDavid Lawrence <dlawrence@mozilla.com>2011-08-08 07:25:44 +0200
commitc3a95ddecfea0ce531c125f6090082b7bf7b5bad (patch)
tree7194ad44deb216ed66d9f3b6cd1974f29554ed40
parent326354d6358d4ea13571155ef04c78503b5f8903 (diff)
downloadbugzilla-c3a95ddecfea0ce531c125f6090082b7bf7b5bad.tar.gz
bugzilla-c3a95ddecfea0ce531c125f6090082b7bf7b5bad.tar.xz
Bug 341809 - bugzilla.dtd does not include any custom fields (automate DTD creation))
r=mkanat, a=LpSolit
-rw-r--r--Bugzilla/Constants.pm19
-rw-r--r--bugzilla.dtd107
-rw-r--r--template/en/default/bug/show.xml.tmpl4
-rw-r--r--template/en/default/pages/bugzilla.dtd.tmpl178
4 files changed, 191 insertions, 117 deletions
diff --git a/Bugzilla/Constants.pm b/Bugzilla/Constants.pm
index 1d9d07a5b..9dd8b76fb 100644
--- a/Bugzilla/Constants.pm
+++ b/Bugzilla/Constants.pm
@@ -438,15 +438,16 @@ use constant LEGAL_CONTENT_TYPES => ('application', 'audio', 'image', 'message',
use constant contenttypes =>
{
- "html"=> "text/html" ,
- "rdf" => "application/rdf+xml" ,
- "atom"=> "application/atom+xml" ,
- "xml" => "application/xml" ,
- "js" => "application/x-javascript" ,
- "json"=> "application/json" ,
- "csv" => "text/csv" ,
- "png" => "image/png" ,
- "ics" => "text/calendar" ,
+ "html" => "text/html" ,
+ "rdf" => "application/rdf+xml" ,
+ "atom" => "application/atom+xml" ,
+ "xml" => "application/xml" ,
+ "dtd" => "application/xml-dtd" ,
+ "js" => "application/x-javascript" ,
+ "json" => "application/json" ,
+ "csv" => "text/csv" ,
+ "png" => "image/png" ,
+ "ics" => "text/calendar" ,
};
# Usage modes. Default USAGE_MODE_BROWSER. Use with Bugzilla->usage_mode.
diff --git a/bugzilla.dtd b/bugzilla.dtd
deleted file mode 100644
index 61d7969f6..000000000
--- a/bugzilla.dtd
+++ /dev/null
@@ -1,107 +0,0 @@
-<!ELEMENT bugzilla (bug+)>
-<!ATTLIST bugzilla
- version CDATA #REQUIRED
- urlbase CDATA #REQUIRED
- maintainer CDATA #REQUIRED
- exporter CDATA #IMPLIED
->
-<!ELEMENT bug (bug_id, (alias?, creation_ts, short_desc, delta_ts, reporter_accessible,
- cclist_accessible, classification_id, classification, product, component,
- version, rep_platform, op_sys, bug_status, resolution?, dup_id?, see_also*,
- bug_file_loc?, status_whiteboard?, keywords*, priority, bug_severity,
- target_milestone?, dependson*, blocked*, everconfirmed, reporter, assigned_to,
- cc*, (estimated_time, remaining_time, actual_time, deadline?)?, qa_contact?,
- votes?, token?, group*, flag*, long_desc*, attachment*)?)>
-<!ATTLIST bug
- error (NotFound | NotPermitted | InvalidBugId) #IMPLIED
->
-<!ELEMENT bug_id (#PCDATA)>
-<!ELEMENT alias (#PCDATA)>
-<!ELEMENT reporter_accessible (#PCDATA)>
-<!ELEMENT cclist_accessible (#PCDATA)>
-<!ELEMENT exporter (#PCDATA)>
-<!ELEMENT urlbase (#PCDATA)>
-<!ELEMENT bug_status (#PCDATA)>
-<!ELEMENT classification_id (#PCDATA)>
-<!ELEMENT classification (#PCDATA)>
-<!ELEMENT product (#PCDATA)>
-<!ELEMENT priority (#PCDATA)>
-<!ELEMENT version (#PCDATA)>
-<!ELEMENT rep_platform (#PCDATA)>
-<!ELEMENT assigned_to (#PCDATA)>
-<!ATTLIST assigned_to
- name CDATA #REQUIRED
->
-<!ELEMENT delta_ts (#PCDATA)>
-<!ELEMENT component (#PCDATA)>
-<!ELEMENT reporter (#PCDATA)>
-<!ATTLIST reporter
- name CDATA #REQUIRED
->
-<!ELEMENT target_milestone (#PCDATA)>
-<!ELEMENT bug_severity (#PCDATA)>
-<!ELEMENT creation_ts (#PCDATA)>
-<!ELEMENT qa_contact (#PCDATA)>
-<!ATTLIST qa_contact
- name CDATA #REQUIRED
->
-<!ELEMENT status_whiteboard (#PCDATA)>
-<!ELEMENT op_sys (#PCDATA)>
-<!ELEMENT resolution (#PCDATA)>
-<!ELEMENT dup_id (#PCDATA)>
-<!ELEMENT bug_file_loc (#PCDATA)>
-<!ELEMENT short_desc (#PCDATA)>
-<!ELEMENT keywords (#PCDATA)>
-<!ELEMENT dependson (#PCDATA)>
-<!ELEMENT blocked (#PCDATA)>
-<!ELEMENT everconfirmed (#PCDATA)>
-<!ELEMENT cc (#PCDATA)>
-<!ELEMENT see_also (#PCDATA)>
-<!ELEMENT votes (#PCDATA)>
-<!ELEMENT token (#PCDATA)>
-<!ELEMENT group (#PCDATA)>
-<!ATTLIST group
- id CDATA #REQUIRED
->
-<!ELEMENT estimated_time (#PCDATA)>
-<!ELEMENT remaining_time (#PCDATA)>
-<!ELEMENT actual_time (#PCDATA)>
-<!ELEMENT deadline (#PCDATA)>
-<!ELEMENT long_desc (commentid, attachid?, who, bug_when, work_time?, thetext)>
-<!ATTLIST long_desc
- isprivate (0|1) #REQUIRED
->
-<!ELEMENT commentid (#PCDATA)>
-<!ELEMENT who (#PCDATA)>
-<!ATTLIST who
- name CDATA #REQUIRED
->
-<!ELEMENT bug_when (#PCDATA)>
-<!ELEMENT work_time (#PCDATA)>
-<!ELEMENT thetext (#PCDATA)>
-<!ELEMENT attachment (attachid, date, delta_ts, desc, filename, type, size, attacher, token?, data?, flag*)>
-<!ATTLIST attachment
- isobsolete (0|1) #REQUIRED
- ispatch (0|1) #REQUIRED
- isprivate (0|1) #REQUIRED
->
-<!ELEMENT attacher (#PCDATA)>
-<!ELEMENT attachid (#PCDATA)>
-<!ELEMENT date (#PCDATA)>
-<!ELEMENT desc (#PCDATA)>
-<!ELEMENT filename (#PCDATA)>
-<!ELEMENT type (#PCDATA)>
-<!ELEMENT size (#PCDATA)>
-<!ELEMENT data (#PCDATA)>
-<!ATTLIST data
- encoding (base64) #IMPLIED
->
-<!ELEMENT flag EMPTY>
-<!ATTLIST flag
- name CDATA #REQUIRED
- id CDATA #REQUIRED
- type_id CDATA #REQUIRED
- status CDATA #REQUIRED
- setter CDATA #REQUIRED
- requestee CDATA #IMPLIED
->
diff --git a/template/en/default/bug/show.xml.tmpl b/template/en/default/bug/show.xml.tmpl
index dae207f26..c0f32d69e 100644
--- a/template/en/default/bug/show.xml.tmpl
+++ b/template/en/default/bug/show.xml.tmpl
@@ -20,8 +20,10 @@
#
#%]
[% PROCESS bug/time.html.tmpl %]
+[% USE Bugzilla %]
+[% cgi = Bugzilla.cgi %]
<?xml version="1.0" [% IF Param('utf8') %]encoding="UTF-8" [% END %]standalone="yes" ?>
-<!DOCTYPE bugzilla SYSTEM "[% urlbase FILTER html %]bugzilla.dtd">
+<!DOCTYPE bugzilla [% IF cgi.param('dtd') %][[% PROCESS pages/bugzilla.dtd.tmpl %]][% ELSE %]SYSTEM "[% urlbase FILTER xml %]page.cgi?id=bugzilla.dtd"[% END %]>
<bugzilla version="[% constants.BUGZILLA_VERSION %]"
urlbase="[% urlbase FILTER xml %]"
diff --git a/template/en/default/pages/bugzilla.dtd.tmpl b/template/en/default/pages/bugzilla.dtd.tmpl
new file mode 100644
index 000000000..a52b27436
--- /dev/null
+++ b/template/en/default/pages/bugzilla.dtd.tmpl
@@ -0,0 +1,178 @@
+[%# The contents of this file are subject to the Mozilla Public
+ # License Version 1.1 (the "License"); you may not use this file
+ # except in compliance with the License. You may obtain a copy of
+ # the License at http://www.mozilla.org/MPL/
+ #
+ # Software distributed under the License is distributed on an "AS
+ # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
+ # implied. See the License for the specific language governing
+ # rights and limitations under the License.
+ #
+ # The Original Code is the Bugzilla Bug Tracking System.
+ #
+ # The Initial Developer of the Original Code is Netscape Communications
+ # Corporation. Portions created by Netscape are
+ # Copyright (C) 1998 Netscape Communications Corporation. All
+ # Rights Reserved.
+ #
+ # Contributor(s): Dawn Endico <endico@mozilla.org>
+ # Dave Miller <justdave@syndicomm.com>
+ # Bradley Baetz <bbaetz@student.usyd.edu.au>
+ # Myk Mylez <myk@mozilla.org>
+ # Colin Ogilvie <mozilla@colinogilvie.co.uk>
+ # Joel Peshkin <bugreport@peshkin.net>
+ # Frédéric Buclin <LpSolit@gmail.com>
+ # Gervase Markham <gerv@gerv.net>
+ # Max Kanat-Alexander <mkanat@bugzilla.org>
+ # David Lawrence <dkl@mozilla.com>
+ #
+ #%]
+[% USE Bugzilla %]
+<!ELEMENT [% "bugzilla" %] (bug+)>
+<!ATTLIST [% "bugzilla" %]
+ version CDATA #REQUIRED
+ urlbase CDATA #REQUIRED
+ maintainer CDATA #REQUIRED
+ exporter CDATA #IMPLIED
+>
+<!ELEMENT [% "bug" %] (bug_id,
+ (alias?,
+ creation_ts,
+ short_desc,
+ delta_ts,
+ reporter_accessible,
+ cclist_accessible,
+ classification_id,
+ classification,
+ product,
+ component,
+ version,
+ rep_platform,
+ op_sys,
+ bug_status,
+ resolution?,
+ dup_id?,
+ see_also*,
+ bug_file_loc?,
+ status_whiteboard?,
+ keywords*,
+ priority,
+ bug_severity,
+ target_milestone?,
+ dependson*,
+ blocked*,
+ everconfirmed,
+ reporter,
+ assigned_to,
+ cc*,
+ (estimated_time,
+ remaining_time,
+ actual_time,
+ deadline?)?,
+ qa_contact?,
+[% FOREACH field = Bugzilla.active_custom_fields %]
+ [%+ field.name FILTER xml -%]
+ [%- IF field.type == constants.FIELD_TYPE_MULTI_SELECT %]*[% ELSE %]?[% END %],
+[% END %]
+ votes?,
+ token?,
+ group*,
+ flag*,
+ long_desc*,
+ attachment*)?)>
+<!ATTLIST [% "bug" %]
+ error (NotFound | NotPermitted | InvalidBugId) #IMPLIED
+>
+<!ELEMENT bug_id (#PCDATA)>
+<!ELEMENT alias (#PCDATA)>
+<!ELEMENT reporter_accessible (#PCDATA)>
+<!ELEMENT cclist_accessible (#PCDATA)>
+<!ELEMENT exporter (#PCDATA)>
+<!ELEMENT urlbase (#PCDATA)>
+<!ELEMENT bug_status (#PCDATA)>
+<!ELEMENT classification_id (#PCDATA)>
+<!ELEMENT classification (#PCDATA)>
+<!ELEMENT product (#PCDATA)>
+<!ELEMENT priority (#PCDATA)>
+<!ELEMENT version (#PCDATA)>
+<!ELEMENT rep_platform (#PCDATA)>
+<!ELEMENT assigned_to (#PCDATA)>
+<!ATTLIST assigned_to
+ name CDATA #REQUIRED
+>
+<!ELEMENT delta_ts (#PCDATA)>
+<!ELEMENT component (#PCDATA)>
+<!ELEMENT reporter (#PCDATA)>
+<!ATTLIST reporter
+ name CDATA #REQUIRED
+>
+<!ELEMENT target_milestone (#PCDATA)>
+<!ELEMENT bug_severity (#PCDATA)>
+<!ELEMENT creation_ts (#PCDATA)>
+<!ELEMENT qa_contact (#PCDATA)>
+<!ATTLIST qa_contact
+ name CDATA #REQUIRED
+>
+<!ELEMENT status_whiteboard (#PCDATA)>
+<!ELEMENT op_sys (#PCDATA)>
+<!ELEMENT resolution (#PCDATA)>
+<!ELEMENT dup_id (#PCDATA)>
+<!ELEMENT bug_file_loc (#PCDATA)>
+<!ELEMENT short_desc (#PCDATA)>
+<!ELEMENT keywords (#PCDATA)>
+<!ELEMENT dependson (#PCDATA)>
+<!ELEMENT blocked (#PCDATA)>
+<!ELEMENT everconfirmed (#PCDATA)>
+<!ELEMENT cc (#PCDATA)>
+<!ELEMENT see_also (#PCDATA)>
+<!ELEMENT votes (#PCDATA)>
+<!ELEMENT token (#PCDATA)>
+<!ELEMENT group (#PCDATA)>
+<!ATTLIST group
+ id CDATA #REQUIRED
+>
+<!ELEMENT estimated_time (#PCDATA)>
+<!ELEMENT remaining_time (#PCDATA)>
+<!ELEMENT actual_time (#PCDATA)>
+<!ELEMENT deadline (#PCDATA)>
+[% FOREACH field = Bugzilla.active_custom_fields %]
+<!ELEMENT [% field.name FILTER xml %] (#PCDATA)>
+[% END %]
+<!ELEMENT long_desc (commentid, attachid?, who, bug_when, work_time?, thetext)>
+<!ATTLIST long_desc
+ isprivate (0|1) #REQUIRED
+>
+<!ELEMENT commentid (#PCDATA)>
+<!ELEMENT who (#PCDATA)>
+<!ATTLIST who
+ name CDATA #REQUIRED
+>
+<!ELEMENT bug_when (#PCDATA)>
+<!ELEMENT work_time (#PCDATA)>
+<!ELEMENT thetext (#PCDATA)>
+<!ELEMENT attachment (attachid, date, delta_ts, desc, filename, type, size, attacher, token?, data?, flag*)>
+<!ATTLIST attachment
+ isobsolete (0|1) #REQUIRED
+ ispatch (0|1) #REQUIRED
+ isprivate (0|1) #REQUIRED
+>
+<!ELEMENT attacher (#PCDATA)>
+<!ELEMENT attachid (#PCDATA)>
+<!ELEMENT date (#PCDATA)>
+<!ELEMENT desc (#PCDATA)>
+<!ELEMENT filename (#PCDATA)>
+<!ELEMENT type (#PCDATA)>
+<!ELEMENT size (#PCDATA)>
+<!ELEMENT data (#PCDATA)>
+<!ATTLIST data
+ encoding (base64) #IMPLIED
+>
+<!ELEMENT flag EMPTY>
+<!ATTLIST flag
+ name CDATA #REQUIRED
+ id CDATA #REQUIRED
+ type_id CDATA #REQUIRED
+ status CDATA #REQUIRED
+ setter CDATA #REQUIRED
+ requestee CDATA #IMPLIED
+>