<?xml version="1.0" encoding="UTF-8"?>
<grammar ns="" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
  <start>
    <!-- This RELAX NG schema was generated by Trang from multiple
         U.S. Senate LD-1/LD-2 lobbying disclosure XML documents. The
         comments were added manually by Drew Hess
         <dhess-src@bothan.net>.

         The Senate XML documents can be downloaded here:

         http://www.senate.gov/legislative/Public_Disclosure/database_download.htm

         There is more information on how to interpret these documents
         on the Watchdog.net wiki, here:

         http://watchdog.jottit.com/lobbying_database

         Many of the filing records in the Senate documents contain
         values which don't make sense or appear somewhat (or even
         mostly) unreliable. The comment which accompanies each
         attribute in this schema document provides a "Reliability"
         rating. This rating is my opinion, based on my experience
         writing a parser for these Senate documents and analyzing
         them, of how reliable the values of these attributes are in
         general. (Note that the reliability rating assumes that the
         filing organization is honest in its reporting.) -->

    <!-- There is only one top-level element, PublicFilings. It
         contains a list of one or more Filing elements. -->
    <element name="PublicFilings">
      <!-- Each Filing element corresponds to an LD-1 or LD-2 form
           submitted to the Senate. The elements and attributes that
           make up a Filing element correspond almost exactly to the
           fields on those forms. My guess is that the contents of
           those submitted forms are entered into an Excel
           spreadsheet, and these XML documents are just an XML
           "export" from Excel.

           Note that you can download the latest versions of these
           LD-1 and LD-2 forms here:

           http://lobbyingdisclosure.house.gov/mac/download.html?file=ld1_mac.pdf
           http://lobbyingdisclosure.house.gov/mac/download.html?file=ld2_mac.pdf

           Note that an older version of the LD-2 form only required
           semi-annual (as opposed to quarterly) submissions. -->
      <oneOrMore>
        <element name="Filing">
          <!-- The AffiliatedOrgsURL attribute is a bit out-of-place
               in the Filing element. It really belongs with the
               AffiliatedOrgs element (see below). At any rate, it's
               supposed to be the URL of the web site providing
               information on organizations affiliated with the client
               organization when the client is an association,
               coalation, etc. Unfortunately, it often contains email
               addresses; multiple URLs delimited by any spaces,
               commas or semicolons; physical addresses; free-form
               English text; or some combination of any or all of the
               above. As such, it's not a particularly useful field.

               This attribute is new as of 2008.

               Reliability: As an actual URL, mixed, but it's probably
               safe to scan the attribute value for URLs and use them,
               when found. -->
          <optional>
            <attribute name="AffiliatedOrgsURL">
              <data type="anyURI"/>
            </attribute>
          </optional>
          <!-- The Amount attribute is the dollar amount paid to the
               lobbying firm by the client during the period that the
               filing covers. The rules for reporting amounts and when
               they're required are quite complicated; see the wiki
               page for more details. Note that LD-1 registration
               forms do not include an Amount field, hence Filing
               elements that are of Type=REGISTRATION never have
               amounts. Occasionally other types of filings omit the
               Amount field, too. In these cases, we can only assume
               that the amount paid, if any, was less than the
               threshold amount required by law for reporting.

               Reliability: No way to know for sure without auditing
               the lobbying firm's books, but presumably very
               reliable, as this is arguably the most important value
               in any filing. It's also safe to assume that incorrect
               values will be corrected by subsequent amendment
               filings. -->
          <optional>
            <attribute name="Amount">
              <data type="integer"/>
            </attribute>
          </optional>
          <!-- Every Filing element has a unique UUID, captured in the
               ID attribute. These UUIDs are unique even across all
               XML documents, so they can be used as unique database
               keys to identify filing records. It's not apparent how
               they're generated.

               Reliability: Very good. There don't appear to be any
               duplicate IDs. -->
          <attribute name="ID"/>
          <!-- Every Filing covers a particular period of time,
               captured by the Period attribute. Prior to 2007,
               periods were semi-annual (yearly H1 or H2); starting
               with 2007 they're quarterly. Unfortunately, some
               filings have a Period=UNDETERMINED. It's not clear what
               to do with these filings.

               Note that this attribute is redundant: the period is
               also stated in the Filing Type attribute.

               Note also that filings of Type=REGISTRATION always have
               UNDETERMINED period. For the purposes of tracking the
               beginning of a client/registrant relationship, use the
               Filing element Year attribute.

               Reliability: Good, though as stated there are a handful
               of filings whose period is UNDETERMINED. -->
          <attribute name="Period"/>
          <!-- The Received attribute simply gives an ISO 8601
               extended date+time timestamp of when the filing form
               was received by the Senate record-keepers. Note that
               Filing elements in an XML document are *not* sorted by
               the time at which they were received, so this field is
               useful (assuming it's accurate!) for interpreting
               amendment filings (see the Type attribute).

               Reliability: No way to know for sure, but I haven't
               seen any obviously wrong values (e.g., dates from the
               future). -->
          <attribute name="Received">
            <data type="NMTOKEN"/>
          </attribute>
          <!-- Every Filing element has a Type attribute. The Type
               attribute tells us two things: what part of the year is
               covered by the Filing (first quarter, second half,
               etc.), and what type of filing this is: registration,
               registration amendment, non-activity filing,
               termination report, regular activity report, etc. Most
               of these types correspond to one or more checkboxes on
               the LD-1 and LD-2 forms, but occasionally there's an
               odd, undocumented type such as "MISC. DOC" or "YEAR-END
               TERMINATION LETTER". For a comprehensive list and
               analysis of filing types, see the wiki.

               A note on amendment types: unfortunately, there's no
               reference to the original filing in an amendment
               filing, so you need to come up with some hueristic for
               linking amendment records to the filings they
               amend. Also, amendment filings can themselves be
               amended. The order of amendments can be determined by
               looking at the Received attribute (assuming it's
               accurate!).

               Reliability: Good, though there are some filings with
               odd or undocumented types. -->
          <attribute name="Type"/>
          <!-- Every Filing element has a Year attribute that gives
               the year to which the filing applies. Combine this
               value with the Period or Type to determine the precise
               timeframe of the filing.

               Reliability: Very good. -->
          <attribute name="Year">
            <data type="integer"/>
          </attribute>
          <!-- Nearly all filings contain a Registrant element. The
               Registrant element describes the lobbying firm or
               organization that's filing the form.

               A Registrant may be an organization or a self-employed
               individual. The LD-1 and LD-2 forms have a check-box
               marking this distinction, but it's not included in the
               Registrant element, unfortunately.

               Occasionally there's a filing without a Registrant
               element. These filings are essentially useless. -->
          <optional>
            <element name="Registrant">
              <!-- The Address attribute is the physical address of
                   the Registrant. It's usually a street address
                   followed by a city, state and ZIP code, including
                   formatting characters such as newlines and carriage
                   returns. There are occasional international
                   addresses, as well, and every once in awhile a
                   value of UNDETERMINED.

                   Reliability: Mostly good, with a few UNDETERMINED
                   values. -->
              <optional>
                <attribute name="Address"/>
              </optional>
              <!-- GeneralDescription is a free-form text field
                   describing the lobbying firm. Sometimes it's
                   omitted entirely.

                   Reliability: Presumably very good, though the
                   descriptions are provided by the lobbying firm and
                   not an independent third party. -->
              <optional>
                <attribute name="GeneralDescription"/>
              </optional>
              <!-- RegistrantCountry is the country in which lobbying
                   firm's lobbying office is located. It's usually
                   USA, but there are some foreign offices.  There are
                   also a handful of filings whose RegistrantCountry
                   is UNDETERMINED.

                   Reliability: Mostly good, only a handful of
                   UNDETERMINED values. -->
              <attribute name="RegistrantCountry"/>
              <!-- RegistrantID is a Senate-assigned number that
                   uniquely identifies each registrant. It should be
                   useful for identifying registrants across address
                   changes, but I haven't verified that.

                   Reliability: Very good. -->
              <attribute name="RegistrantID">
                <data type="integer"/>
              </attribute>
              <!-- RegistrantName is the name of the lobbying
                   firm. 

                   Reliability: Very good. -->
              <attribute name="RegistrantName"/>
              <!-- RegistrantPPBCountry is the country in which the
                   lobbying firm's primary place of business is
                   located. It sometimes has a different value than
                   the RegistrantCountry attribute: for example,
                   British Airways is located in the U.K. but it may
                   have a lobbying office in the U.S. Sometimes it's
                   UNDETERMINED. -

                   Reliability: Mostly good, only a few records with
                   UNDETERMINED values. -->
              <attribute name="RegistrantPPBCountry"/>
            </element>
          </optional>
          <!-- Nearly all filings contain a Client element. It
               describes the lobbying firm's client. Lobbyists are
               required to file a registration form and quarterly
               update for each of their clients.

               Occasionally there's a filing without a Client
               element. Filings of Type=REGISTRATION or REGISTRATION
               AMENDMENT which lack a Client element are probably
               initial registrations for registrants or updates to
               registrant information (address changes, individual
               lobbyist status changes, etc.).

               Note that if the Client and Registrant are the same
               organization, then the organization is reporting
               lobbying by in-house lobbyists. -->
          <optional>
            <element name="Client">
              <!-- ClientCountry is the client's home country.

                   Reliability: Mostly good (some UNDETERMINED
                   values). -->
              <attribute name="ClientCountry"/>
              <!-- ClientID is a Senate-assigned number that
                   identifies each client, but only with respect to
                   the Registrant; i.e., the client ID can only be
                   used to identify clients associated with a
                   particular Registrant, not across all filings. As
                   such, it's not particularly useful, though it could
                   possibly be used to track address changes.

                   Reliability: Mostly good (some UNDETERMINED
                   values). -->
              <attribute name="ClientID">
                <data type="integer"/>
              </attribute>
              <!-- ClientName is self-explanatory.

                   Reliability: Very good. -->
              <attribute name="ClientName"/>
              <!-- ClientPPBCountry is the country in which the
                   client's primary place of business is located. It
                   sometimes has a different value than the
                   ClientCountry attribute: for example, BAE Systems'
                   primary place of business is the U.K., but it has
                   an office in the U.S. from which it employs its
                   lobbyists.

                   Reliability: Mostly good (some UNDETERMINED
                   values). -->
              <attribute name="ClientPPBCountry"/>
              <!-- ClientPPBState is the U.S. state in which the
                   client's primary place of business is located.  It
                   sometimes has a different value than the
                   ClientState attribute.

                   Clients whose ClientCountry and ClientPPBCountry
                   are outside the U.S. give their PPB state as the
                   blank string "".

                   ClientPPBState is sometimes blank ("") or
                   UNDETERMINED.
                   
                   The District of Columbia is often given as a state.
                   
                   Note that U.S. territories such as Puerto Rico are
                   sometimes given as countries and sometimes as
                   states.

                   Reliability: mostly good, if you keep in mind the
                   caveats given above. -->
              <attribute name="ClientPPBState"/>
              <!-- ClientState is the U.S. state from which the client
                   is hiring the lobbying firm. It's sometimes
                   different than the ClientPPBState.

                   See the notes for ClientPPBState for more
                   details.

                   Reliability: Probably the same as for
                   ClientPPBCountry. -->
              <attribute name="ClientState"/>
              <!-- ClientStatus is always an integer with value 0, 1
                   or 2. The key for these values is given on the
                   document download page (see above for the
                   URL). They are:

                   0 - Active
                   1 - Terminated
                   2 - Administratively terminated

                   Presumably "active" means still employing the
                   lobbying firm at the time of filing, and the two
                   "terminated" codes mean that the client has stopped
                   employing lobbying firm at the time of
                   filing. Unfortunately, in practice these fields
                   appear to be somewhat meaningless: ClientStatus is
                   sometimes "active" in a termination filing,
                   sometimes "terminated" in a quarterly update,
                   etc. Technically, termination status should only
                   appear in a termination filing, but that's not
                   always the case. Often, in fact, a client with
                   "terminated" status in one filing period appears
                   again with the same registrant in a later filing
                   period. It's not clear whether these discrepancies
                   are because of clerical error, a database schema
                   problem, or something else; but the bottom line is
                   that this attribute doesn't appear to be
                   particularly useful. Don't trust that a
                   client/registrant relationship is over until you
                   see the termination filing.

                   Reliability: Suspect. Client status often appears
                   to have no meaningful correlation to their filing
                   types and to subsequent filings. I recommend you
                   don't use this value and instead rely on the Filing
                   Type to determine whether a client is still working
                   with a particular registrant. -->
              <attribute name="ClientStatus">
                <data type="integer"/>
              </attribute>
              <!-- ContactFullName is the name of the person listed as
                   the contact for a particular filing. The LD-1 and
                   LD-2 contact forms specify that this is a
                   registrant contact, not a client contact, so this
                   attribute should really be in the Registrant
                   element.

                   Usually this field is specified as FIRST MI. LAST,
                   but sometimes it's FIRST LAST, and others
                   FI. MI. LAST. In a few instances, it's omitted
                   entirely.

                   Reliability: Very good. It doesn't always appear,
                   but when it does, it's probably safe to assume that
                   it's accurate. -->
              <optional>
                <attribute name="ContactFullname"/>
              </optional>
              <!-- GeneralDescription is an optional (sometimes blank
                   ("")) full-text description of the client.

                   Reliability: Presumably good, though the
                   descriptions are provided by the lobbying firm and
                   not an independent third party. -->
              <optional>
                <attribute name="GeneralDescription"/>
              </optional>
              <!-- IsStateOrLocalGov is a boolean attribute which
                   simply indicates whether the client is a U.S. state
                   or local government organization.

                   Reliability: Useless. There is not a single filing
                   record as of Q3 2008 whose IsStateOrLocalGov
                   attribute is 1, and there are definitely some state
                   and local government clients. -->
              <optional>
                <attribute name="IsStateOrLocalGov">
                  <data type="integer"/>
                </attribute>
              </optional>
            </element>
          </optional>
          <!-- Lobbyists is a container element: it contains a list of
               one or more Lobbyist elements. -->
          <optional>
            <element name="Lobbyists">
              <!-- The Lobbyist element contains information on an
                   indivdual lobbyist who is, will be, or is no longer
                   lobbying for the client.

                   Note that many lobbyist elements look extremely
                   suspect. Often a lobbyist is listed multiple times
                   in the same filing, with different statuses or a
                   slightly different name spelling. When the same
                   lobbyist appears twice with "active" and
                   "terminated" statuses, this may indicate that the
                   lobbyist was active during the filing period but is
                   no longer assigned to the client. (The LD-2
                   quarterly update form contains a section to
                   indicate that lobbyists will no longer be working
                   on behalf on the client.)  In any case, be wary of
                   the accuracy of Lobbyist elements in Senate
                   documents.

                   Note that the House lobbying disclosure document
                   schema has a much nicer representation for
                   individual lobbyist data than the Senate
                   schema. Rather than lumping all of the lobbyist
                   information into a single list, the House schema
                   separates the lobbyist lists into different
                   elements depending on whether they were active,
                   terminated, etc. -->
              <oneOrMore>
                <element name="Lobbyist">
                  <!-- The name of the lobbyist.

                       Reliability: Unknown. Given the obvious
                       problems with other Lobbyist element attributes
                       I'm suspicious of all Lobbyist attribute
                       values, including this one. In any case, be
                       careful of alternate spellings of a given
                       lobbyist's name, especially when listed more
                       than once in the same filing record. -->
                  <attribute name="LobbyistName"/>
              <!-- LobbyistStatus is always an integer with value 0, 1
                   or (very rarely) 3. The key for these values is
                   given on the document download page (see above for
                   the URL). They are:

                   0 - Active
                   1 - Terminated
                   3 - Undetermined

                   "Active" means that the lobbyist was actively
                   lobbying for the client during the filing
                   period. "Terminated" means that the lobbyist is no
                   longer lobbying on behalf of the client, effective
                   sometime during (and after) the filing period. An
                   individual lobbyist is often listed twice in the
                   same filing but with both active and terminated
                   status. Presumably, this means that the lobbyist
                   did some lobbying during the filing period for the
                   client but won't be doing any lobbying in the
                   future... until they're listed as "active" again,
                   at any rate.

                   Reliability: Suspect. The same lobbyist often
                   appears multiple times in the same filing with
                   different status. My recommendation is that you
                   ignore this attribute. -->
                  <attribute name="LobbyistStatus">
                    <data type="integer"/>
                  </attribute>
                  <!-- The lobbying disclosure legislation requires
                       lobbying firms to indicate which lobbyists have
                       served as a "covered government official"
                       within 20 years of first acting as a lobbyist
                       for the client, in order to track "revolving
                       door" policies. The value of the
                       LobbyisteIndicator (sic) attribute is supposed
                       to state whether the lobbyist has held such a
                       covered position, and the value of the
                       OfficialPosition attribute (see below) states
                       the name of that official position.

                       The value of this attribute is always 0, 1 or
                       2, and the key is listed on the Senate document
                       download page, but don't bother to read it:
                       this attribute is effectively
                       useless. Lobbyists whose indicator value
                       indicates that they've held a covered position
                       often have a stated OfficialPosition of "N/A"
                       or an empty string (""). Others have an
                       indicator value which states that they've not
                       been in a covered position, but then they have
                       an OfficialPosition value that gives a
                       government position. Less frequently, but still
                       prevalent, are Lobbyist elements whose
                       indicator says they're covered but are missing
                       the OfficialPosition attribute entirely.

                       Reliability: appears to be unreliable and not
                       particularly useful, since what you probably
                       care about is the official position that was
                       held. My advice is to look for that attribute
                       and use its value if you want to know whether a
                       lobbyist has held a covered position. -->
                  <attribute name="LobbyisteIndicator">
                    <data type="integer"/>
                  </attribute>
                  <!-- OfficialPosition is the name of a lobbyist's
                       "covered government position," if any. See the
                       discussion above about the LobbyisteIndicator
                       attribute for caveats.

                       Reliability: Unknown. Lobbyists often appear
                       multiple times in the different records (or
                       even the same record) as both having and not
                       having an official position. (More analysis
                       needed to see if there's a workaround or
                       heuristic for determining the actual value.)
                       -->
                  <optional>
                    <attribute name="OfficialPosition"/>
                  </optional>
                </element>
              </oneOrMore>
            </element>
          </optional>
          <!-- GovernmentEntities is a container element: it contains
               a list of one or more GovernmentEntity elements. -->
          <optional>
            <element name="GovernmentEntities">
              <!-- GovernmentEntity elements are straightforward: they
                   name a government agency or office that was
                   contacted by the lobbyist(s) during the filing
                   period. -->
              <oneOrMore>
                <!-- The LD-2 filing form has a drop-down list of
                     agencies to choose from, so there are a finite
                     number of values for this attribute.

                     Note that GovernmentEntity elements only appear
                     in non-registration filings, as the LD-1
                     registration form doesn't have a place to list
                     them.

                     Also note that the drop-down list has a coarse
                     granularity. For example, the filer cannot choose
                     an individual Senator or House Rep, only SENATE
                     or HOUSE OF REPRESENTATIVES. It's therefore
                     impossible to use the value of this attribute to
                     determine which individual politicians were
                     lobbied. (But see Issue element, SpecificIssue
                     attribute.)

                     Reliability: Very good, because the choices come
                     from a drop-down list.  -->
                <element name="GovernmentEntity">
                  <attribute name="GovEntityName"/>
                </element>
              </oneOrMore>
            </element>
          </optional>
          <optional>
          <!-- ForeignEntities is a container element: it contains a
               list of one or more (foreign) Entity elements. -->
            <element name="ForeignEntities">
              <!-- (Foreign) Entity elements describe any foreign
                   special interests who influence
                   lobbying. Registrants are required to diclose any
                   "foreign entities" that have a > 20% ownership
                   stake in the client, control or direct the client,
                   or have affiliations with the client and have a
                   direct interest in the outcome of the lobbying
                   activity. These entities may be foreign governments
                   or private organizations.

                   These relationships must be disclosed at
                   registration time (on the LD-1 form), and must be
                   updated on regular reports (LD-2 form) if the
                   relationships change. -->
              <oneOrMore>
                <element name="Entity">
                  <!-- The optional ForeignEntityContribution
                       attribute is a dollar amount contributed by the
                       foreign entity to the lobbying activities of
                       the client. Presumably this is only needed when
                       the client is not wholly owned by the foreign
                       entity.

                       This attribute is fairly rare. It usually shows
                       up in registration filings, and only rarely in
                       update filings, where its value is often 0. The
                       reason might be that the LD-2 form only asks
                       the filer to note "additional" foreign entiies,
                       or foreign entities no longer associated with
                       the client. There is no field on the LD-2 form
                       that asks for the amount that was contributed
                       by previously-reported foreign entities during
                       that filing period. It seems odd that the
                       registration form, which is normally a one-time
                       filing and doesn't ask for client contribution
                       amounts, would ask for foreign entity
                       contribution amounts, while the quarterly
                       update form doesn't ask for foreign entity
                       contribution amounts. Still, this is a
                       systematic problem and not a reason to doubt
                       the accuracy of the database itself.

                       Reliability: Presumably very good, as far as it
                       goes. -->
                  <optional>
                    <attribute name="ForeignEntityContribution">
                      <data type="integer"/>
                    </attribute>
                  </optional>
                  <!-- ForeignEntityCountry is the country from which
                       the foreign entity is participating in the
                       lobbying activity.

                       Reliability: Mostly good (sometimes
                       UNDETERMINED or <SELECT ONE>, perhaps
                       indicating a clerical or data-entry error). -->
                  <attribute name="ForeignEntityCountry"/>
                  <!-- ForeignEntityName is the name of the foreign
                       entity.

                       Reliability: Mostly good, though there are some
                       records where it's "N/A". These records usually
                       have UNDETERMINED values for the other Entity
                       attributes. -->
                  <attribute name="ForeignEntityName"/>
                  <!-- ForeignEntityOwnershipPercentage is an integer
                       in the range [0, 100]. It's optional and rarely
                       appears. It is the ownership stake of the
                       foreign entity in the client.

                       Reliability: presumably very good. (It's always
                       an integer between 0 and 100, in any case.) -->
                  <optional>
                    <attribute name="ForeignEntityOwnershipPercentage">
                      <data type="integer"/>
                    </attribute>
                  </optional>
                  <!-- ForeignEntityPPBcountry (sic) is the foreign
                       entity's primary place of business.

                       Reliability: See ForeignEntityCountry. -->
                  <attribute name="ForeignEntityPPBcountry"/>
                  <!-- ForeignEntityStatus is another of the arguably
                       useless "status" codes. It's always 0, 1 or
                       3. Here's the key:

                       0 - Active
                       1 - Terminated
                       3 - Undetermined

                       This attribute appears in every Entity element,
                       but its value is almost always 3.  It's
                       possible that a code of 3 means that the
                       foreign entity information is being updated but
                       is still an active owner/director/associate of
                       the client, but I haven't verified that.

                       Reliability: Unknown. The usual value is 3
                       (undetermined), which doesn't tell us much. -->
                  <attribute name="ForeignEntityStatus">
                    <data type="integer"/>
                  </attribute>
                </element>
              </oneOrMore>
            </element>
          </optional>
          <!-- AffiliatedOrgs is a container element: it contains a
               list of one or more (affiliated) Org elements. -->
          <optional>
            <element name="AffiliatedOrgs">
              <!-- An (Affiliated) Org element describes an entity
                   other than the client who contributes more than
                   $5000 per quarter to the lobbying activities of the
                   client, or who plans or directs the registrant's
                   lobbying activities. Commonly, Org elements show up
                   when the client or registrant is a consortium or
                   association of organizations from a particular
                   industry.

                   Unlike the foreign entity reporting requirements,
                   the registrant is not required to report the amount
                   contributed by affiliated organizations. -->
              <oneOrMore>
                <element name="Org">
                  <!-- AffiliatedOrgCountry is the country from which
                       the organization is coordinating the
                       lobbying.

                       Reliability: Mostly good (occasionally
                       UNDETERMINED). -->
                  <attribute name="AffiliatedOrgCountry"/>
                  <!-- AffiliatedOrgName is the name of the organization.

                       Reliability: Mostly good (there are a few whose
                       name is "N/A", but these may be clerical
                       errors). -->
                  <attribute name="AffiliatedOrgName"/>
                  <!-- AffiliatedOrgPPBCountry is the organization's
                       primary place of business.

                       Reliability: See AffiliatedOrgCountry. -->
                  <attribute name="AffiliatedOrgPPBCcountry"/>
                </element>
              </oneOrMore>
            </element>
          </optional>
          <!-- Issues is a container element: it contains a list of
               one or more Issue elements. -->
          <optional>
            <element name="Issues">
              <!-- Issue elements describe the issues that were
                   lobbied during the filing period (or are planned to
                   be lobbied at registration time). They're optional,
                   but appear fairly frequently in recent filings. -->
              <oneOrMore>
                <element name="Issue">
                  <!-- The Code attribute appears in every Issue
                       element. It's selected in the LD-1 and LD-2
                       forms from a drop-down menu of pre-selected
                       codes, e.g., HEALTH ISSUES.

                       Reliability: Very good, because the choices come
                       from a drop-down list.  -->
                  <attribute name="Code"/>
                  <!-- SpecificIssue is a free-form text attribute
                       with which the registrant can provide details
                       on the issue being lobbied. This attribute is
                       optional, but it's fairly common in recent
                       filings.

                       The contents of this attribute are usually very
                       informative. It often mentions specific
                       legislation codes (e.g., H.R. 2829) and the
                       lobbyist's position on specific parts of that
                       legislation, or on government policy in
                       general. Individual members of Congress are
                       also occasionally mentioned in these
                       attributes, if their offices were contacted as
                       a result of the lobbying activities. (This sort
                       of information can often make up for the vague
                       GovernmentEntity elements.)

                       Treat the values of SpecificIssue attributes as
                       free-form text, complete with formatting
                       characters such as newlines, carriage returns
                       and the like.

                       Reliability: Very good. -->
                  <optional>
                    <attribute name="SpecificIssue"/>
                  </optional>
                </element>
              </oneOrMore>
            </element>
          </optional>
        </element>
      </oneOrMore>
    </element>
  </start>
</grammar>
