Internet DRAFT - draft-otis-newtrk-rfc-set

draft-otis-newtrk-rfc-set






newtrk                                                           D. Otis
Internet-Draft                                               Trend Micro
Expires: April 14, 2006                                        J. Leslie
                                                                 JLC.net
                                                        October 11, 2005


                XML structure for Set of RFC Descriptors
                      draft-otis-newtrk-rfc-set-02

Status of this Memo

   By submitting this Internet-Draft, each author represents that any
   applicable patent or other IPR claims of which he or she is aware
   have been or will be disclosed, and any of which he or she becomes
   aware will be disclosed, in accordance with Section 6 of BCP 79.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt.

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

   This Internet-Draft will expire on April 14, 2006.

Copyright Notice

   Copyright (C) The Internet Society (2005).

Abstract

   This document introduces a new document series called Set of RFC
   Documents (SRDs).  SRDs will be distinguished by names and serial
   numbers.  SRDs contain Extensible Markup Language (XML) which can
   automatically produce HTML and plaintext versions for human
   consumption

   With many RFC being updated, this creates difficulty when determining



Otis & Leslie            Expires April 14, 2006                 [Page 1]

Internet-Draft                     SRD                      October 2005


   which RFCs are necessary as references when implementing or using
   protocols.  Grouping RFC into sets that embody a specific endeavour
   would permit stable references for those interested in discovering
   related details.  The SRD name may also serve as a reference for
   topical information stored in a database that is made available.

Table of Contents

   1.   Introduction . . . . . . . . . . . . . . . . . . . . . . . .   3
   2.   SRD Identification and References  . . . . . . . . . . . . .   3
   3.   SRD Development  . . . . . . . . . . . . . . . . . . . . . .   3
   4.   XML Conversion Considerations  . . . . . . . . . . . . . . .   4
   5.   The srd element  . . . . . . . . . . . . . . . . . . . . . .   5
   6.   The srdref element . . . . . . . . . . . . . . . . . . . . .   6
   7.   The title element  . . . . . . . . . . . . . . . . . . . . .   6
   8.   The description element  . . . . . . . . . . . . . . . . . .   7
   9.   The srdDate element  . . . . . . . . . . . . . . . . . . . .   7
   10.  The core element . . . . . . . . . . . . . . . . . . . . . .   7
   11.  The extensions element . . . . . . . . . . . . . . . . . . .   7
   12.  The guidance element . . . . . . . . . . . . . . . . . . . .   8
   13.  The replaces element . . . . . . . . . . . . . . . . . . . .   8
   14.  The experimental element . . . . . . . . . . . . . . . . . .   8
   15.  The companion element  . . . . . . . . . . . . . . . . . . .   8
   16.  IANA Considerations  . . . . . . . . . . . . . . . . . . . .   9
   17.  Security Considerations  . . . . . . . . . . . . . . . . . .   9
   18.  References . . . . . . . . . . . . . . . . . . . . . . . . .   9
     18.1   Normative References . . . . . . . . . . . . . . . . . .   9
     18.2   Informative References . . . . . . . . . . . . . . . . .   9
        Authors' Addresses . . . . . . . . . . . . . . . . . . . . .  10
   A.   The SRD DTD  . . . . . . . . . . . . . . . . . . . . . . . .  10
   B.   Example SRD XSLT . . . . . . . . . . . . . . . . . . . . . .  12
   C.   Example HTML output  . . . . . . . . . . . . . . . . . . . .  18
        Intellectual Property and Copyright Statements . . . . . . .  19


















Otis & Leslie            Expires April 14, 2006                 [Page 2]

Internet-Draft                     SRD                      October 2005


1.  Introduction

   It is becoming increasingly difficult to determine which RFCs are
   necessary as references when implementing or using protocols.  The
   STD series defined in [RFC1311] is a guide, but often fails to list
   all the necessary RFCs.  The Maturity Levels defined in [RFC2026] are
   increasingly confusing the picture by the need to update higher
   maturity documents with lower maturity revisions.  It is hoped that
   by providing a coherent organization using sets of documents, along
   with relevant inter-operational information contained within a
   separate database, an easier-to-use alternative can be introduced.
   If this SRD strategy proves untenable or unuseful, it can be dropped,
   as it makes no other changes to current procedures.

   This document proposes developing an Extensible Markup Language (XML)
   structure to define a set of RFCs related to a specific endeavour.
   The set SHOULD NOT encompass diverse applications which utilize a
   broad range of separable functions.  The intent of this document is
   to provide an optimal means for locating relevant information made
   increasingly difficult by a growing number or RFCs, updates, and
   corrections.  The eventual expectation might be that any RFC not
   found within some SRD is not relevant to any current endeavour.

2.  SRD Identification and References

   This document proposes a new document series called Set of RFC
   Documents ("SRD").  These documents contain Extensible Markup
   Language [W3C.REC-xml-20040204] structures used for generating
   outputs such as HTML, RSS, and plain-text outputs that link together
   the related RFCs.  The SRD documents would be managed under the
   direction of the IESG, which may also establish procedures for
   updating the relevant topical information stored in a database that
   might also include overview of the RFC Editor's Errata database.

   The SRD is identified by a combination of name and number in the form
   of {srd-name.serial-number}.  The name for each SRD is unique.  Any
   references to an SRD within an SRD MUST include the serial-number.
   The initial SRD document serial-number starts at 0.  As a general
   rule, when an HTML or database link excludes the serial, version, or
   iteration number, through the use of scripts, it will automatically
   reference the current document.  This auto-generated link is to
   simplify link maintenance and to stabilize the SRD structures.

3.  SRD Development

   This document also proposes a version of the SRDs be used in the
   initial development process, to allow an overview of Work-In-Progess,
   WIP, which may involve an extended work and approval time period.



Otis & Leslie            Expires April 14, 2006                 [Page 3]

Internet-Draft                     SRD                      October 2005


   The WIP SRD is identified by a prefix added which does not interfere
   with automatic linking.  The prefix used for an SRD, while it is
   being modified, would be:

       {'X'<iteration-number>'-'<group-identifier>'-'}

   The group-identifier is an alpha-numeric string that represents a
   group identifier or possibly the name of an individual.  If this
   document was modifying {foobar.1} by the working group 'newtrk', the
   first iteration would be:

       X0-newtrk-foobar.1

   When the document becomes accepted at some point, it would become
   {foobar.2}.  The group identifier permits simultaneous WIP SRD
   documents to be pending for approval.

   Normally, an SRD is not allowed to reference an Internet-Draft, but
   there would be an exception made for a WIP SRD.  The WIP SRD can not
   receive approval until all referenced Internet-Drafts have also been
   accepted and replaced as RFCs.

   During the introduction of SRDs, inclusion of a WIP SRD with an I-D
   submission is optional.  The IESG should provide for a person to
   review necessary changes to SRDs.  By default, this might be the
   appropriate Area Director.  At some point, inclusion of the WIP SRD
   could be mandated by the IESG.  The Area Director would then ensure
   the WIP version of all affected SRD documents accompany an Internet-
   Draft submitted to the Area Director for IESG action.  The WIP SRD
   and the Internet-Draft would be considered together through all
   review stages.  Of course, all referenced Internet-Draft acceptance
   MUST precede WIP SRD acceptance.

4.  XML Conversion Considerations

   XML and XSLT structures are used to create HTML, RSS, and Plain-Text
   outputs for establishing stable hyper-link references.  When there
   are empty or missing elements within the SRD document, those elements
   would be excluded from the HTML page as well.  The intent is to
   ensure a minimum amount of information is presented.  To selectively
   include the Errata Database links, the related pages would then need
   to be regenerated when Errata is subsequently established for an RFC.

   Writing an SRD document from scratch would follow a process similar
   to that described in [RFC2629] for use of the XML-to-RFC tool.  The
   SRD XML declaration begins with a reference to the DTD, XSLT
   [W3C.REC-xslt-19991116], processing options, and the "srd" element:




Otis & Leslie            Expires April 14, 2006                 [Page 4]

Internet-Draft                     SRD                      October 2005


       <?xml version='1.0' encoding="UTF-8"?>
       <!DOCTYPE srd  SYSTEM "rfcxxxx.dtd" >
       <?xml-stylesheet type='text/xsl'href='rfcxxxx.xslt' ?>
       <?srd sortrefs="yes" ?>
       <?srd strict="yes" ?>
       <srd ... >
         ...
       </srd>

   The lines preceding the <srd ...> should be the same for all SRDs and
   nothing should follow the ending "</srd>" tag.  Make sure that all
   elements are properly matched and nested.

5.  The srd element

   The "set" attribute included within the "<srd ...>" tag at the
   beginning of the document determines the name and serial number of
   the SRD output.  If a "wip" attribute is included, this produces a
   WIP SRD that may include references to Internet-Drafts.  When this
   "wip" attribute is removed and the serial number is advanced, a final
   SRD document is then produced.  Although SRD serial numbers start at
   the value of 0, approved SRDs serial numbers will be 1 or greater.

   Example of srd attributes declaring both base document and the group
   making changes:

       <srd set="foobar.2" wip="0-newtrk">

   The "set" attribute MUST be present and indicates both the set name
   and version.  The "wip" attribute is optional, and specifies both the
   WIP iteration and the name of the group or person making a change.

   The srd information includes a sequence of elements being the title,
   description, srdDate, core, extensions, guidance, replaces,
   experimental, and companion.  The topical information database may
   provide a reference to an accountable entity for the SRD, where this
   is not included within the srd itself.














Otis & Leslie            Expires April 14, 2006                 [Page 5]

Internet-Draft                     SRD                      October 2005


   Example of srd content:

       <title>Example SRD Title</title>
       <description>XML structure for example SRDs.</description>
       <srdDate>2005-07-16</srdDate>
       <core>
           <srdref dt="RFC" dd="9876"/>
           <srdref dt="RFC" dd="9875"/>
       </core>
       <extensions>
           <srdref dt="RFC" dd="9912"/>
       </extensions>
       <guidance>
           <srdref dt="RFC" dd="9915"/>
       </guidance>
       <replaces>
           <srdref dt="RFC" dd="9811"/>
       </replaces>
       <experimental>
           <srdref dt="RFC" dd="9837"/>
       </experimental>
       <companion>
           <srdref dt="SRD" dd="example.1"/>
       </companion>


6.  The srdref element

   The srdref element is empty, but includes reference attributes that
   take the form:

       <srdref dt="Document Type" dd="Document Designator"/>

   The Document Types are RFC, I-D, and SRD for RFCs, Internet-drafts
   and SRDs respectively.

7.  The title element

       <title>
           Title describes the entire RFC set.
       </title>

   The title element represents the title for the entire SRD set.  This
   supplements the simple label defined by the "set=" attribute which is
   used as the set reference.  This element MUST be present.






Otis & Leslie            Expires April 14, 2006                 [Page 6]

Internet-Draft                     SRD                      October 2005


8.  The description element

        <description>
            Description more fully describes the entire RFC set.
        </description>

   The description should be no more than a few sentences describing the
   SRD.  This element MUST be present.

9.  The srdDate element

       <srdDate>
           YYYY-MM-DD
       </srdDate>

   The srdDate element provides the date when the SRD was published.
   The format for the date is specified as a complete date as specified
   in Date and Time Formats [W3C.NOTE-datetime-19980827].  The 'YYYY'
   represents the year.  The 'MM' represents the numeric month.  The
   'DD' represents the numeric day.  This element MUST be present.

10.  The core element

       <core>
           <srdref dt="RFC" dd="9876"/>
           <srdref dt="RFC" dd="9875"/>
       </core>

   The core element contains srdref elements that reference RFCs or I-Ds
   that encompass the definitions related to a specific endeavour.  This
   element MUST be present and MUST include srdref elements.  For WIP
   SRDs, a reference to an Internet-Draft would take the form:

       <srdref dt="I-D" dd="housley-binarytime"/>


11.  The extensions element

       <extensions>
           <srdref dt="RFC" dd="9912"/>
       </extensions>

   The extensions element contains srdref elements that reference RFCs
   or I-Ds that encompass the definitions of optional enhancements to
   the basic definitions.  Extension RFCs do not describe a separate
   endeavour, but are not an essential component of the endeavour
   encompassed by the SRD.  This element should not be present unless
   srdref elements are included.



Otis & Leslie            Expires April 14, 2006                 [Page 7]

Internet-Draft                     SRD                      October 2005


12.  The guidance element

       <guidance>
           <srdref dt="RFC" dd="9815"/>
       </guidance>

   The guidance element contains srdref elements that reference RFCs or
   I-Ds that encompass the definitions of advice related to the
   deployment of the RFCs within the set.  This element should not be
   present unless srdref elements are included.

13.  The replaces element

      <replaces>
          <srdref dt="RFC" dd="9811"/>
      </replaces>

   The replaces element contains srdref elements that reference RFCs,
   I-Ds, or SRDs that encompass the definitions that have been updated
   or obsoleted and are no longer directly relevant except as a
   reference to the prior definitions.  This element should not be
   present unless srdref elements are included.

14.  The experimental element

       <experimental>
           <srdref dt="RFC" dd="9811"/>
       </experimental>

   The experimental element contains srdref elements that reference RFCs
   or I-Ds that encompass the definitions which are deemed experimental
   and relate to either core or extension RFCs.  This element should not
   be present unless srdref elements are included.

15.  The companion element

       <companion>
           <srdref dt="SRD" dd="srd-example.1"/>
       </companion>

   The companion element contains srdref elements that reference SRDs
   that encompass closely related endeavours, but which are not needed
   by other elements of the SRD.  The intent of the companion element is
   to assist those attempting to locate definitions for a comprehensive
   application which typically includes these closely related
   endeavours.  This element should not be present unless srdref
   elements are included.




Otis & Leslie            Expires April 14, 2006                 [Page 8]

Internet-Draft                     SRD                      October 2005


16.  IANA Considerations

   There are no IANA considerations in this draft.

17.  Security Considerations

   This document specifies an administrative procedure for the IETF and
   hence does not raise any new issues about the security of the
   Internet.  However, the availability of the type of document
   described here may provide a convenient mechanism and repository of
   vulnerabilities and other issues that are discovered after RFCs are
   issued, but that do not justify updating (or for which resources are
   not available to update) the relevant RFC.  Having an obvious place
   to look for those notifications and discussions for relevant
   documents might enhance overall security somewhat.

18.  References

18.1  Normative References

   [RFC2629]  Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
              June 1999.

   [W3C.NOTE-datetime-19980827]
              Wolf, M. and C. Wicksteed, "Date and Time Formats", W3C
              NOTE NOTE-datetime-19980827, August 1998.

   [W3C.REC-xml-20040204]
              Yergeau, F., Paoli, J., Sperberg-McQueen, C., Bray, T.,
              and E. Maler, "Extensible Markup Language (XML) 1.0 (Third
              Edition)", W3C REC REC-xml-20040204, February 2004.

   [W3C.REC-xslt-19991116]
              Clark, J., "XSL Transformations (XSLT) Version 1.0", W3C
              REC REC-xslt-19991116, November 1999.

18.2  Informative References

   [RFC1311]  Postel, J., "Introduction to the STD Notes", RFC 1311,
              March 1992.

   [RFC2026]  Bradner, S., "The Internet Standards Process -- Revision
              3", BCP 9, RFC 2026, October 1996.








Otis & Leslie            Expires April 14, 2006                 [Page 9]

Internet-Draft                     SRD                      October 2005


Authors' Addresses

   Douglas Otis
   Trend Micro
   1737 North First Street, Suite 680
   San Jose, CA  95112
   USA

   Phone: +1.408.453.6277
   Email: doug_otis@trendmicro.com


   John Leslie
   JLC.net
   10 Souhegan Street
   Milford, NH  03055
   USA

   Phone: +1.603.673.6132
   Email: john@jlc.net

Appendix A.  The SRD DTD

   <!-- DTD for SRD document series, draft-otis-newtrk-rfc-set-02  -->

   <!-- Copyright (C) The Internet Society (2005). This document is
        subject to the rights, licenses and restrictions contained
        in BCP 78.
     -->

   <!--
       DTD data types:

       entity        description
       ======        ===============================================
       DATE          numeric hyphen-separated YYYY-MM-DD
       ATEXT         attribute line of text (no line-terminators)
       TEXT          displayed character data
     -->

   <!ENTITY % DATE       "#PCDATA">
   <!ENTITY % ATEXT      "CDATA">
   <!ENTITY % TEXT       "#PCDATA">

   <!--
     The "set" attribute for the "srd" element is
     "srd-document.serial-number" where the serial-number is advanced
     when accepted, where the "wip" attribute is then removed. The "set"



Otis & Leslie            Expires April 14, 2006                [Page 10]

Internet-Draft                     SRD                      October 2005


     attribute should only reference an approved SRD document or have a
     zero serial-number.  The "wip" attribute is provided by the author
     in the form "<iteration-number>-<group-identifier>" where the 'X'
     wip prefix and the '-' wip suffix is added by the scripts.
     -->

   <!ELEMENT srd        (title,description,srdDate,core,extensions?,
                         guidance?,replaces?,experimental?,companion?)>
   <!ATTLIST srd
             set          %ATEXT;            #REQUIRED
             wip          %ATEXT;            ""
   >

   <!ELEMENT title        (%TEXT;)>
   <!ELEMENT description  (%TEXT;)>
   <!ELEMENT srdDate      (%DATE;)>
   <!ELEMENT srdref       EMPTY>
   <!ATTLIST srdref
             dt            %ATEXT;            #REQUIRED
             dd            %ATEXT;            #REQUIRED
   >

   <!ELEMENT core         (srdref)+>
   <!ELEMENT extensions   (srdref)+>
   <!ELEMENT guidance     (srdref)+>
   <!ELEMENT replaces     (srdref)+>
   <!ELEMENT experimental (srdref)+>
   <!ELEMENT companion    (srdref)+>























Otis & Leslie            Expires April 14, 2006                [Page 11]

Internet-Draft                     SRD                      October 2005


Appendix B.  Example SRD XSLT

   <!-- draft-otis-newtrk-rfc-set-02
      srd XSLT transformation to HTML
     -->
   <!-- Copyright (C) The Internet Society (2005).
      This document is subject to the rights, licenses and
      restrictions contained in BCP 78.
     -->
   <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
     version="1.0">
     <xsl:output method="html"/>
     <!--style similar to rfc2629.xslt by Julian F. Reschke  -->
     <xsl:template name="srd-style">
       body {color: #000000; font-family: helvetica, arial,
             sans-serif; font-size: 12pt;}
       h1 {color: #333333; font-size: 14pt; line-height: 21pt;
           font-family: helvetica, arial, sans-serif;
           page-break-after: avoid;}
       h2 {color: #000000; font-size: 12pt; line-height: 15pt;
           font-family: helvetica, arial, sans-serif;
           page-break-after: avoid;}
       p {margin-left: 2em; margin-right: 2em;}
       .error {font-size: 14pt; background-color: red;}
       .title {color: #990000; font-size: 18pt; line-height: 18pt;
               font-weight: bold; text-align: left;}
       .filename {color: #333333; font-weight: bold; font-size: 12pt;
                  line-height: 21pt; text-align: left;}
     </xsl:template>
     <!-- url prefix for references -->
     <xsl:param name="url-prefix-rfc"
       select="'http://www.ietf.org/rfc/rfc'"/>
     <xsl:param name="url-prefix-i-d"
       select="'http://www.ietf.org/internet-drafts/draft-'"/>
     <xsl:param name="url-prefix-srd"
       select="'http://www.ietf.org/srd/srd-'"/>
     <xsl:param name="url-prefix-errata"
       select="'http://www.rfc-editor.org/cgi-bin/errata.pl#rfc'"/>
     <!-- path for xml references -->
     <xsl:param name="xml-refs-rfc"
       select="'references/rfc/reference.RFC.'"/>
     <xsl:param name="xml-refs-i-d"
       select="'references/i-d/reference.I-D.'"/>
     <xsl:param name="xml-refs-srd"
       select="'references/srd/reference.SRD.'"/>
     <!-- page title -->
     <xsl:param name="srd-title" select="normalize-space(/srd/title)"/>
     <!-- set name elements -->



Otis & Leslie            Expires April 14, 2006                [Page 12]

Internet-Draft                     SRD                      October 2005


     <xsl:param name="srd-set" select="normalize-space(/srd/@set)"/>
     <xsl:param name="srd-wip" select="normalize-space(/srd/@wip)"/>
     <!-- set wip name -->
     <xsl:param name="srd-wip-name" select="concat('X', $srd-wip,
       '-', $srd-set)"/>
     <xsl:param name="srd-date" select="normalize-space(/srd/srdDate)"/>
     <!-- PI delimiters -->
     <xsl:variable name="pi-delim">"'</xsl:variable>
     <!-- p i for sorting <?srd sortrefs ="yes" ?> -->
     <xsl:param name="sort-refs" select="substring-after(
       translate(/processing-instruction('srd')
       [contains(.,'sortrefs=')],
       concat($pi-delim,' '), ''), 'sortrefs=')"/>
     <!-- p i for strict <?srd strict ="yes" ?> -->
     <xsl:param name="srd-strict" select="substring-after(
       translate(/processing-instruction('srd')[contains(.,'strict=')],
       concat($pi-delim,' '), ''), 'strict=')"/>
     <!-- Template for root element -->
     <xsl:template match="srd">
       <html lang="en">
         <head>
           <title>
             <xsl:value-of select="$srd-title"/>
           </title>
           <style type="text/css" title="srd style">
             <xsl:call-template name="srd-style"/>
           </style>
         </head>
         <body>
           <h1 class="title">
             <xsl:if test="$srd-wip=''">
               <xsl:value-of select="$srd-title"
                 /><br/>SRD:[<xsl:value-of
                 select="concat($srd-set,'] ',$srd-date)"/>
             </xsl:if>
             <xsl:if test="$srd-wip!=''">
               <xsl:value-of select="$srd-title"
                 /><br/>SRD:[<xsl:value-of
                 select="concat($srd-wip-name,'] ',$srd-date)"
               />
             </xsl:if>
           </h1>
           <h2>
             <xsl:value-of select="normalize-space(/srd/description)"/>
           </h2>
           <xsl:if test="$sort-refs='yes'">
             <!-- sorted references -->
             <xsl:call-template name="core"/>



Otis & Leslie            Expires April 14, 2006                [Page 13]

Internet-Draft                     SRD                      October 2005


             <xsl:for-each select="/srd/core/srdref">
               <xsl:sort select="@dt" data-type="text"
                 order="descending"/>
               <xsl:sort select="@dd" data-type="text"
                 order="ascending"/>
               <xsl:call-template name="srdref"/>
             </xsl:for-each>
             <xsl:if test="/srd/extensions">
               <xsl:call-template name="extensions"/>
               <xsl:for-each select="/srd/extensions/srdref">
                 <xsl:sort select="@dt" data-type="text"
                   order="descending"/>
                 <xsl:sort select="@dd" data-type="text"
                   order="ascending"/>
                 <xsl:call-template name="srdref"/>
               </xsl:for-each>
             </xsl:if>
             <xsl:if test="/srd/guidance">
               <xsl:call-template name="guidance"/>
               <xsl:for-each select="/srd/guidance/srdref">
                 <xsl:sort select="@dt" data-type="text"
                   order="descending"/>
                 <xsl:sort select="@dd" data-type="text"
                   order="ascending"/>
                 <xsl:call-template name="srdref"/>
               </xsl:for-each>
             </xsl:if>
             <xsl:if test="/srd/replaces">
               <xsl:call-template name="replaces"/>
               <xsl:for-each select="/srd/replaces/srdref">
                 <xsl:sort select="@dt" data-type="text"
                   order="descending"/>
                 <xsl:sort select="@dd" data-type="text"
                   order="ascending"/>
                 <xsl:call-template name="srdref"/>
               </xsl:for-each>
             </xsl:if>
             <xsl:if test="/srd/experimental">
               <xsl:call-template name="experimental"/>
               <xsl:for-each select="/srd/experimental/srdref">
                 <xsl:sort select="@dt" data-type="text"
                   order="descending"/>
                 <xsl:sort select="@dd" data-type="text"
                   order="ascending"/>
                 <xsl:call-template name="srdref"/>
               </xsl:for-each>
             </xsl:if>
             <xsl:if test="/srd/companion">



Otis & Leslie            Expires April 14, 2006                [Page 14]

Internet-Draft                     SRD                      October 2005


               <xsl:call-template name="companion"/>
               <xsl:for-each select="/srd/companion/srdref">
                 <xsl:sort select="@dt" data-type="text"
                   order="descending"/>
                 <xsl:sort select="@dd" data-type="text"
                   order="ascending"/>
                 <xsl:call-template name="srdref"/>
               </xsl:for-each>
             </xsl:if>
           </xsl:if>
           <xsl:if test="$sort-refs!='yes'">
             <!-- unsorted references -->
             <xsl:call-template name="core"/>
             <xsl:for-each select="/srd/core/srdref">
               <xsl:call-template name="srdref"/>
             </xsl:for-each>
             <xsl:if test="/srd/extensions">
               <xsl:call-template name="extensions"/>
               <xsl:for-each select="/srd/extensions/srdref">
                 <xsl:call-template name="srdref"/>
               </xsl:for-each>
             </xsl:if>
             <xsl:if test="/srd/guidance">
               <xsl:call-template name="guidance"/>
               <xsl:for-each select="/srd/guidance/srdref">
                 <xsl:call-template name="srdref"/>
               </xsl:for-each>
             </xsl:if>
             <xsl:if test="/srd/replaces">
               <xsl:call-template name="replaces"/>
               <xsl:for-each select="/srd/replaces/srdref">
                 <xsl:call-template name="srdref"/>
               </xsl:for-each>
             </xsl:if>
             <xsl:if test="/srd/experimental">
               <xsl:call-template name="experimental"/>
               <xsl:for-each select="/srd/experimental/srdref">
                 <xsl:call-template name="srdref"/>
               </xsl:for-each>
             </xsl:if>
             <xsl:if test="/srd/companion">
               <xsl:call-template name="companion"/>
               <xsl:for-each select="/srd/companion/srdref">
                 <xsl:call-template name="srdref"/>
               </xsl:for-each>
             </xsl:if>
           </xsl:if>
         </body>



Otis & Leslie            Expires April 14, 2006                [Page 15]

Internet-Draft                     SRD                      October 2005


       </html>
     </xsl:template>
     <xsl:template name="core">
       <h2>Core</h2>
     </xsl:template>
     <xsl:template name="extensions">
       <h2>Extensions</h2>
     </xsl:template>
     <xsl:template name="guidance">
       <h2>Guidance</h2>
     </xsl:template>
     <xsl:template name="replaces">
       <h2>Replaces</h2>
     </xsl:template>
     <xsl:template name="experimental">
       <h2>Experimental</h2>
     </xsl:template>
     <xsl:template name="companion">
       <h2>Companion</h2>
     </xsl:template>
     <xsl:template name="srdref">
       <xsl:variable name="d-type" select="normalize-space(@dt)"/>
       <xsl:variable name="d-des" select="normalize-space(@dd)"/>
       <xsl:variable name="rfc-ref" select="concat($xml-refs-rfc,
         @dd, '.xml')"/>
       <xsl:variable name="i-d-ref" select="concat($xml-refs-i-d,
         @dd, '.xml')"/>
       <xsl:variable name="srd-ref" select="concat($xml-refs-srd,
         @dd, '.xml')"/>
       <xsl:choose>
         <xsl:when test="$d-type='RFC'">
           <a class="filename" href="{concat($url-prefix-rfc,
             $d-des,'.txt')}">[<xsl:value-of select="$d-type"
               /><xsl:value-of select="$d-des"/>]</a>
           <xsl:text> </xsl:text>
           <a class="filename" href="{concat($url-prefix-errata,
             $d-des)}">errata</a>
           <xsl:text> </xsl:text>
           <xsl:if test="document($rfc-ref)//front/title and
             document($rfc-ref)//format/@target">
             <a class="filename"
               href="{document($rfc-ref)//format/@target}">
               <xsl:value-of select="document($rfc-ref)//front/title"/>
             </a>
           </xsl:if>
         </xsl:when>
         <xsl:when test="$d-type='SRD'">
           <a class="filename" href="{concat($url-prefix-srd,



Otis & Leslie            Expires April 14, 2006                [Page 16]

Internet-Draft                     SRD                      October 2005


             $d-des,'.html')}">[<xsl:value-of select="$d-type"
               /><xsl:value-of select="$d-des"/>]</a>
           <xsl:text> </xsl:text>
           <xsl:if test="document($srd-ref)//front/title and
             document($srd-ref)//format/@target">
             <a class="filename"
               href="{document($srd-ref)//format/@target}">
               <xsl:value-of select="document($srd-ref)//front/title"/>
             </a>
           </xsl:if>
         </xsl:when>
         <xsl:when test="$d-type='I-D' and $srd-wip!=''">
           <xsl:value-of select="concat('[draft-',$d-des, ']')"/>
           <xsl:text> </xsl:text>
           <xsl:if test="document($i-d-ref)//front/title and
             document($i-d-ref)//format/@target">
             <a class="filename"
               href="{document($i-d-ref)//format/@target}">
               <xsl:value-of select="document($i-d-ref)//front/title"/>
             </a>
           </xsl:if>
         </xsl:when>
         <xsl:when test="$d-type='I-D' and $srd-wip='' and
           $srd-strict!='yes'">
           <xsl:value-of select="concat('[draft-',$d-des, ']')"/>
           <xsl:text> </xsl:text>
           <xsl:if test="document($i-d-ref)//front/title and
             document($i-d-ref)//format/@target">
             <a class="filename"
               href="{document($i-d-ref)//format/@target}">
               <xsl:value-of select="document($i-d-ref)//front/title"/>
             </a>
           </xsl:if>
         </xsl:when>
         <xsl:otherwise>
           <p class="error">Invalid Document Type [<xsl:value-of
               select="@dt"/>]<xsl:value-of select="@dd"/></p>
         </xsl:otherwise>
       </xsl:choose>
       <br/>
     </xsl:template>
   </xsl:stylesheet>









Otis & Leslie            Expires April 14, 2006                [Page 17]

Internet-Draft                     SRD                      October 2005


Appendix C.  Example HTML output

   Example SRD Title SRD:[example.1] 2005-07-16
   XML structure for example SRDs.

   Core
   [RFC9875] errata Overview Core Example for SRD testing
   [RFC9876] errata Primary Core Example for SRD testing

   Extensions
   [RFC9912] errata Extension Example for SRD testing

   Guidance
   [RFC9915] errata The Guidance Example for SRD testing

   Replaces
   [RFC9811] errata The replace Example for SRD testing

   Experimental
   [RFC9837] errata The Experimental Example for SRD testing

   Companion
   [SRDexample.1] The SRD Example for SRD testing




























Otis & Leslie            Expires April 14, 2006                [Page 18]

Internet-Draft                     SRD                      October 2005


Intellectual Property Statement

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at
   ietf-ipr@ietf.org.


Disclaimer of Validity

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


Copyright Statement

   Copyright (C) The Internet Society (2005).  This document is subject
   to the rights, licenses and restrictions contained in BCP 78, and
   except as set forth therein, the authors retain all their rights.


Acknowledgment

   Funding for the RFC Editor function is currently provided by the
   Internet Society.




Otis & Leslie            Expires April 14, 2006                [Page 19]