There are a number of formal languages used in I-Ds and several tools have been written to help process them.
Make sure that any use of formal languages conforms with the IESG statement on the use of formal languages.
ABNF is a general purpose formal grammar notation specified in STD 68 (RFC 5234).
When ABNF is used, your I-D must contain a normative reference to RFC 5234, the specification for ABNF.
All MIB modules must follow the "Guidelines for Authors and Reviewers of MIB documents" (RFC 4181). When using the tools below, please evaluate all diagnostic messages and if in doubt, feel free to check on the ietfmibs mailing list or with the OPS ADs.
MIB modules with the correct syntax will compile cleanly using smilint, e.g.:
smilint -m -s -l 6 -i namelength-32
rfcstrip extracts code components, YANG modules and SMIv2 (MIB) modules from RFCs and I-Ds, and extracts and unfolds artwork from RFCs and I-Ds in XML format.
The RFC editor ensures that all published YANG modules are formatted consistently using pyang as follows:
# ensure that the module fits into the line limits of an I-D pyang --ietf --max-line-length 69 FILE # format the module pyang -f yang --keep-comments --yang-line-length 69 FILE
Protocol specifications that use XML should always use well-formed XML at a minimum. Sample XML instances included in a specification have to be well-formed, and if the XML is supposed to be valid (according to the current W3C definition of validity), the samples must reference and be validated using an appropriate XML Schema, DTD, or another standard validation mechanism that is structurally and syntactically correct.
Other guidelines for the use of XML in IETF protocols can be found in RFC 3470. Internet-Drafts that include an XML Schema should include a normative reference to either the W3C XML Schema Definition Language 1.1 Part1 or Part 2.
XML allows syntax extensions using structures, such as the
<any> element information item in XML Schema. If your XML defines and extension mechanism then:
When programming languages are used in Internet-Drafts, you must include as a reference the formal definition of that coding language (e.g., C99).