[%# 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
          isurl (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
>