XML2RFC

XML2RFC

文書型

実体参照

amp
& [XML]
lt
< [XML]
gt
> [XML]
quot
" [XML]
apos
' [XML]
<!ENTITY rfc.number "XXXX">
RFC 番号 [RFC2629]

内容
(XML,DOCTYPE,PI?,rfc)

処理命令 PI

<?rfc symrefs="yes"?> みたいにします。擬似属性は、 一つの擬似タグごとに一つしか使えません。 (実装はそう想定してます。)

擬似要素名 rfc は xml2rfc が使っているもので、 rfc-translation は [JA] が定義したものです。

擬似要素名擬似属性名内容既定値説明
rfcsymrefyn'no'参考文献参照で名前 [JA] を使う。偽なら番号 [1]
rfctocyn'no'目次を出力するか
rfcprivateTEXTRFC でない場合に series 名
rfc-translationshow-header-categoryyn'yes'頭に「分類」を出力するか
rfc-translationshow-rfc-copyrightynRFC 著作権を出力するか
rfc-translationshow-rfc-acknowledgement-editorynRFC 書記謝辞を出力するか
rfc-translationoutput-http-equivyn'no'Content-Style-Type:領域を (X)HTML の meta 要素で出力するか
  1. yn = 'yes' / 'no'

既定値欄空欄は、状況によって変化することを示す。

要素

[28] XML要素

MIME 型

[12] RFC 7749 は、 MIME型として application/rfc+xml を規定しています。

[11] RFC 2629 時代には、 MIME型の規定はありませんでした。

[8] 和訳を含む文書MIME型application/x-rfc-translation+xml です。

[9] application/x-rfc-translation+xml文書根要素RFC 2629rfc 要素でなければなりません。 それ以外は application/xml と同じように扱わなければなりません

[10] これにはナビゲーションにおける処理や素片識別子の解釈、 charset 引数の意味、 XML の版などを含みますが、それに限りません。

歴史

RFC 2629 “Writing I-Ds and RFCs using XML”

[25] XML を使って RFC を書く言語を定義しているのが RFC 2629

文書型宣言
<!DOCTYPE rfc SYSTEM "rfc2629.dtd">

xml2rfc 実装

RFC 2629 の著者の実装。処理命令を使って、 RFC 2629 に書いていない機能を入れてます。 http://xml.resource.org/ 参照。

拡張可能な RFC の翻訳マーク付け言語

[31] RFC 2629 を拡張して、 RFC の和訳をマーク付けしよーというものです。 仕様はまだ確定してません。

名前空間 URI
http://suika.fam.cx/~wakaba/lang/rfc/translation/

[29] 以下の説明では、名前空間接頭辞 "ja" をこの名前空間 URI と関連付けてあるものとします。

[30] 重要: DDNS サービス停止によりこの URL には Webブラウザーでアクセスできなくなりました。 名前空間URLは変更できないのでそのままです。

[33] wakaba/rfclang, https://github.com/wakaba/rfclang

[32] wakaba/rfc-ja-translations: RFC Japanese translations, https://github.com/wakaba/rfc-ja-translations

[35] 関連: RFCの和訳

データ型

<!ENTITY % NUMBER "CDATA">
1*DIGIT
<!ENTITY % NUMBERS "CDATA">
1#( NUMBER )
<!ENTITY % DAY "CDATA">
1*2DIGIT
<!ENTITY % MONTH "CDATA">
"January" / "February" / ... / "December"
<!ENTITY % YEAR "CDATA">
4DIGIT
<!ENTITY % URI "CDATA">
absoluteURI
<!ENTITY % ATEXT "CDATA">
<printable ASCII text (no line-terminators)>
<!ENTITY % CTEXT "#PCDATA">
<printable ASCII text (no line-terminators)>
<!ENTITY % TEXT "#PCDATA">
<character data>

rfc 要素

内容
(front,middle,back?)
内容
(front,ja:front?,middle,back?) [JA]
number
%NUMBER; #IMPLIED
obsoletes
%NUMBERS; ""
updates
%NUMBERS; ""
category
(std|bcp|info|exp|historic) "info"
seriesNo
%NUMBER; #IMPLIED
ipr
(full2026|noDerivativeWorks2026|none) #IMPLIED
docName
%ATEXT; #IMPLIED
ja
workgroup:%TEXT; "Network Working Group" -- 作業部会名 --

front 要素

   <!ELEMENT front       (title,author+,date,area*,workgroup*,keyword*,
                          abstract?,note*)>
   <!ELEMENT title       (%CTEXT;)>
   <!ATTLIST title
             abbrev      %ATEXT;            #IMPLIED>
   <!ELEMENT author      (organization,address?)>
   <!ATTLIST author
             initials    %ATEXT;            #IMPLIED
             surname     %ATEXT;            #IMPLIED
             fullname    %ATEXT;            #IMPLIED>
   <!ELEMENT organization
                         (%CTEXT;)>
   <!ATTLIST organization
             abbrev      %ATEXT;            #IMPLIED>
   <!ELEMENT address     (postal?,phone?,facsimile?,email?,uri?)>
   <!-- at most one of each the city, region, code, and country
        elements may be present -->
   <!ELEMENT postal      (street+,(city|region|code|country)*)>
   <!ELEMENT street      (%CTEXT;)>
   <!ELEMENT city        (%CTEXT;)>
   <!ELEMENT region      (%CTEXT;)>
   <!ELEMENT code        (%CTEXT;)>
   <!ELEMENT country     (%CTEXT;)>
   <!ELEMENT phone       (%CTEXT;)>
   <!ELEMENT facsimile   (%CTEXT;)>
   <!ELEMENT email       (%CTEXT;)>
   <!ELEMENT uri         (%CTEXT;)>
   <!ELEMENT date        EMPTY>
   <!ATTLIST date
             day         %DAY;              #IMPLIED
             month       %MONTH;            #REQUIRED
             year        %YEAR;             #REQUIRED>
   <!-- meta-data... -->
   <!ELEMENT area        (%CTEXT;)>
   <!ELEMENT workgroup   (%CTEXT;)>
   <!ELEMENT keyword     (%CTEXT;)>
   <!ELEMENT abstract    (t)+>
   <!ELEMENT note        (t)+>
   <!ATTLIST note
             title       %ATEXT;            #REQUIRED>
   <!--
     The body
     -->
   <!ELEMENT middle      (section)+>
   <!ELEMENT section     (t|figure|section)*>
   <!ATTLIST section
             anchor      ID                 #IMPLIED
             title       %ATEXT;            #REQUIRED>
   <!ELEMENT t           (%TEXT;|list|figure|xref|eref|iref|vspace)*>
   <!ATTLIST t
             hangText    %ATEXT;            #IMPLIED>
   <!-- the value of the style attribute is inherited from the closest
        parent -->
   <!ELEMENT list        (t+)>
   <!ATTLIST list
             style       (numbers|symbols|hanging|empty)
                                            "empty">
   <!ELEMENT xref        (%CTEXT;)>
   <!ATTLIST xref
             target      IDREF              #REQUIRED
             pageno      (true|false)       "false">
   <!ELEMENT eref        (%CTEXT;)>
   <!ATTLIST eref
             target      %URI;              #REQUIRED>
   <!ELEMENT iref        EMPTY>
   <!ATTLIST iref
             item        %ATEXT;            #REQUIRED
             subitem     %ATEXT;            "">
   <!ELEMENT vspace      EMPTY>
   <!ATTLIST vspace
             blankLines  %NUMBER;           "0">
   <!ELEMENT figure      (preamble?,artwork,postamble?)>
   <!ATTLIST figure
             anchor      ID                 #IMPLIED
             title       %ATEXT;            "">
   <!ELEMENT preamble    (%TEXT;|xref|eref|iref)*>
   <!ELEMENT artwork     (%TEXT;)*>
   <!ATTLIST artwork
             xml:space   (default|preserve) "preserve">
   <!ELEMENT postamble   (%TEXT;|xref|eref|iref)*>
   <!--
     Back matter
     -->
   <!-- sections, if present, are appendices -->
   <!ELEMENT back        (references?,section*)>
   <!ELEMENT references  (reference+)>
   <!ELEMENT reference   (front,seriesInfo*)>
   <!ATTLIST reference
             anchor      ID                 #IMPLIED
             target      %URI;              #IMPLIED>
   <!ELEMENT seriesInfo  EMPTY>
   <!ATTLIST seriesInfo
             name        %ATEXT;            #REQUIRED
             value       %ATEXT;            #REQUIRED>

RFC の改訂

[13] Writing I-Ds and RFCs using XML (revised) (2007-01-18 01:37:56 +09:00 版) http://xml.resource.org/authoring/draft-mrose-writing-rfcs.html

[14] Transforming RFC2629-formatted XML through XSLT (2007-07-23 05:30:42 +09:00 版) http://greenbytes.de/tech/webdav/rfc2629xslt/rfc2629xslt.html

[15] Transforming RFC2629-formatted XML through XSLT ( 版) http://greenbytes.de/tech/webdav/rfc2629xslt/rfc2629xslt.html#extensions

[16] pfield 要素RFC 5241 で定義されています。

[17] RFC 7749 - The "xml2rfc" Version 2 Vocabulary ( 版) https://tools.ietf.org/html/rfc7749

メモ

[18] http://xml.resource.org/

[19] Index of /authoring/bibxml http://xml.resource.org/authoring/bibxml/

[2] Index of /public/rfc/xml http://xml.resource.org/public/rfc/xml/ RFC2629 方式で書かれた RFCs

[3] xml2rfc http://xml.resource.org/

[4] rfc 処理指令の擬似属性一覧 : The README file: xml2rfc v1.21 http://xml.resource.org/authoring/README.html#rfc.section.4.1.1

[5] 2629bis : Writing I-Ds and RFCs using XML (revised) http://xml.resource.org/authoring/draft-mrose-writing-rfcs.html

[6] >>2 妥当どころか整形式でさえないのが幾つかあるよん。せめてチェックくらいせんかい。。。

[7] RFC 2629 Markup language in modularized DTD : IW:SuikaCVS:"markup/rfc/dtd/"

[20] RFC 7990 - RFC Format Framework () https://tools.ietf.org/html/rfc7990

[21] RFC 7991 - The "xml2rfc" Version 3 Vocabulary () https://tools.ietf.org/html/rfc7991

[22] RFC 7998 - "xml2rfc" Version 3 Preparation Tool Description () https://tools.ietf.org/html/rfc7998

[23] cabo/kramdown-rfc2629: An RFC2629 (XML2RFC) backend for Thomas Leitner's kramdown markdown parser () https://github.com/cabo/kramdown-rfc2629

[24] rfc-format/draft-iab-xml2rfc-v3-bis: -bis document for the RFC format xml2rfc v3 draft ( ()) https://github.com/rfc-format/draft-iab-xml2rfc-v3-bis

[34] RFCマーク付け言語//新マーク付け言語