Re: [xml2rfc] Novice bad user on device, or Catch-22?

"David R. Oran" <daveoran@orandom.net> Tue, 21 January 2020 05:51 UTC

Return-Path: <daveoran@orandom.net>
X-Original-To: xml2rfc@ietfa.amsl.com
Delivered-To: xml2rfc@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A044012006E for <xml2rfc@ietfa.amsl.com>; Mon, 20 Jan 2020 21:51:16 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id LwzspfyzadeM for <xml2rfc@ietfa.amsl.com>; Mon, 20 Jan 2020 21:51:13 -0800 (PST)
Received: from spark.crystalorb.net (spark.crystalorb.net [IPv6:2607:fca8:1530::c]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 61DBA120052 for <xml2rfc@ietf.org>; Mon, 20 Jan 2020 21:51:13 -0800 (PST)
Received: from [192.168.15.102] ([IPv6:2601:184:407f:80ce:349f:2df:2bdc:d2ac]) (authenticated bits=0) by spark.crystalorb.net (8.14.4/8.14.4/Debian-4+deb7u1) with ESMTP id 00L5p7lO025032 (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256 verify=NO); Mon, 20 Jan 2020 21:51:09 -0800
From: "David R. Oran" <daveoran@orandom.net>
To: Henrik Levkowetz <henrik@levkowetz.com>
Cc: xml2rfc@ietf.org
Date: Tue, 21 Jan 2020 00:51:01 -0500
X-Mailer: MailMate (1.13.1r5676)
Message-ID: <A6C1B0DF-EAE0-46DC-9539-F56A3192E336@orandom.net>
In-Reply-To: <647a593e-8104-0a59-bd0b-fb377f49201e@levkowetz.com>
References: <87E86D51-F37A-4800-BC14-6AA7E5E7EA4A@orandom.net> <751dd301-a89b-13b2-27b4-16beaced5de3@levkowetz.com> <DA4F22F5-5A43-4671-B69B-EDF61F976623@orandom.net> <61971d80-1c1e-bdf7-a986-0cfe9de157e6@levkowetz.com> <6C8FDE4E-88F8-4862-A9CC-3D1E9B0DCD4C@orandom.net> <fe468ed5-3d9b-88b2-8403-f8482bb1f55b@levkowetz.com> <647a593e-8104-0a59-bd0b-fb377f49201e@levkowetz.com>
MIME-Version: 1.0
Content-Type: multipart/signed; boundary="=_MailMate_1887897D-3C6E-44B0-B22F-C9BE523CB48B_="; micalg="pgp-sha1"; protocol="application/pgp-signature"
Archived-At: <https://mailarchive.ietf.org/arch/msg/xml2rfc/3O0WP5AwDzUJCOaCEitiH7kBEPo>
Subject: Re: [xml2rfc] Novice bad user on device, or Catch-22?
X-BeenThere: xml2rfc@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <xml2rfc.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/xml2rfc>, <mailto:xml2rfc-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/xml2rfc/>
List-Post: <mailto:xml2rfc@ietf.org>
List-Help: <mailto:xml2rfc-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/xml2rfc>, <mailto:xml2rfc-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 21 Jan 2020 05:51:17 -0000

Thanks a ton for the help. I puzzled around some more in the FAQ and RFC7991, getting rid of suspicious V2-ish stuff that used to be adorning all my draft source files and replacing the essentials with the right V3 constructs. However, among those was not the xmlns:ni, which I had copied from one of the examples in draft-hoffman-rfcexamples. Once that was gone the crash disappeared.

One unsolicited piece of advice is that in addition to the FAQ and RFC7991 itself, some templates in native V3 for people to start from would have saved me the pain you see in this thread. The example in Paul Hoffman’s draft (which I found googling “xml2rfc v3 examples” of course) was generated using the converter and wound up being extremely misleading for a “native” V3 source file.

Best, DaveO.

P.S. I did get another crash when I put my own <date> element in the <front> element as per “<date month='January' year='2020' /> When I let the converter insert the date in the output itself, no problem.


	xml2rfc draft-oran-icnrg-reflexive-forwarding.xml
	draft-oran-icnrg-reflexive-forwarding.xml(63): Warning: The document date (2020-01-01) is more than 3 days away from today's date
	Traceback (most recent call last):
	  File "/usr/local/bin/xml2rfc", line 8, in <module>
	    sys.exit(main())
	  File "/usr/local/lib/python2.7/site-packages/xml2rfc/run.py", line 620, in main
	    xmlrfc.tree = prep.prep()
	  File "/usr/local/lib/python2.7/site-packages/xml2rfc/writers/preptool.py", line 342, in prep
	    func(e, e.getparent())
	  File "/usr/local/lib/python2.7/site-packages/xml2rfc/writers/preptool.py", line 1123, in boilerplate_insert_status_of_memo
	    exp = datetime.date(year=year, month=month, day=day) + datetime.timedelta(days=185)
	TypeError: an integer is required


On 20 Jan 2020, at 18:20, Henrik Levkowetz wrote:

> Hi again David,
>
> The issue is triggered by the code trying to insert the XInclude namespace
> if it isn't defined, but your file defines the 'xi' namespace prefix not
> as the XInclude namespace (http://www.w3.org/2001/XInclude), but as something
> that's very close to it:  (https://www.w3.org/2001/XInclude).  The code
> then tries to insert xmlns:xi="http://www.w3.org/2001/XInclude" which fails.
>
> The code should handle this better.  It's clearly a bug.  Menawhile, if you
> change the https:// to http:// in the xmlns:xi attribute value, you should
> be able to get further.
>
> Once you've fixed that, you'll find that using XInclude doesn't permit
> any inaccuracies in the specification of the href, so you'll have to add
> https:// to the <xi:include/> entries around line 140.  The v2 processor
> is much more forgiving about this, but the XInclude specification doesn't
> permit a processor to be lenient in the manner xml2rfc is for v2 input.
>
> Then you'll find that <tbody> isn't optional in v3 the way it is in html,
> and other issues that should be easier to sort out.
>
>
> Best,
>
> 	Henrik
>
> On 2020-01-20 23:59, Henrik Levkowetz wrote:
>> Hi David,
>>
>> On 2020-01-20 23:25, David R. Oran wrote:
>>> Thanks much. See below.
>>
>> Ack.  Will reply further once I've looked at the xml.  One point inline
>> now:
>>
>>> On 20 Jan 2020, at 16:25, Henrik Levkowetz wrote:
>>>
>>>> Hi David,
>>>>
>>>> On 2020-01-20 22:03, David R. Oran wrote:
>>>>> On 20 Jan 2020, at 15:10, Henrik Levkowetz wrote:
>>>>>
>>>>>> Hi David,
>>>>>>
>>>>>> You should simply remove "<!DOCTYPE rfc SYSTEM 'rfc2629.dtd'>" if your
>>>>>> <rfc/> element contains the "version='3'" attribute.
>>>>>>
>>>>> If I do that xml2rfc crashes (both the one on my machine and the web tool:
>>>>
>>>> Oh, wow.  Ok, I'll fix that in the next release.  Could you send the full
>>>> xml file, please?  It's not obvious from your snippet where the superfluous
>>>> other definition of xmlns:xi is.
>>>>
>>> attached.
>>>
>>>> Now, you say that instead of trying the converter, you stared out right
>>>> away with v3 syntax, but neither the DOCTYPE above, nor the <?rfc ... ?>
>>>> PIs visible in your snippet are appropriate for a v3 document.  Did you
>>>> grab a v2 template to start with?  I think really going to lead you into
>>>> a number of problems if you start with a v2 template and declare it to be
>>>> v3.
>>>>
>>> No, I started from scratch…but cut a pasted a few things from an
>>> earlier draft after checking (I thought correctly) that I was
>>> following the strict V3 definitions. Possibly not…
>>>
>>> For yucks, I got rid of all that and started right off with the <rfc>
>>> element and xml2rfc still crashes.
>>>
>>>> Using the v2v3 converter on a v2 document, even on a v2 template, on the
>>>> other hand, should give you a proper v3 starting point, without the issues
>>>> you've run into so far.
>>
>>> I believe that. But the output of the converter on
>>> draft-hoffman-rfcexamples-latest left the DOCTYPE declaration in
>>> there…
>>
>> I think you'll find that the DOCTYPE doesn't mention a dtd in that case,
>> just a file which (if available) provides entity definitions.
>>
>> More in a moment.
>>
>>
>> Best regards,
>>
>> 	Henrik
>>
>>>
>>>>
>>>>
>>>> Regards,
>>>>
>>>> 	Henrik
>>>>
>>>>>
>>>>> xml2rfc draft-oran-icnrg-reflexive-forwarding.xml
>>>>> Traceback (most recent call last):
>>>>>   File "/usr/local/bin/xml2rfc", line 8, in <module>
>>>>>     sys.exit(main())
>>>>>   File "/usr/local/lib/python2.7/site-packages/xml2rfc/run.py", line 612, in main
>>>>>     xmlrfc = parser.parse(remove_comments=False, quiet=True, add_xmlns=True)
>>>>>   File "/usr/local/lib/python2.7/site-packages/xml2rfc/parser.py", line 548, in parse
>>>>>     for action, element in context:
>>>>>   File "src/lxml/iterparse.pxi", line 208, in lxml.etree.iterparse.__next__ (src/lxml/lxml.etree.c:148588)
>>>>>   File "<string>", line 22
>>>>> lxml.etree.XMLSyntaxError: Attribute xmlns:xi redefined, line 22, column 59
>>>>>
>>>>>> Regards,
>>>>>>
>>>>>> 	Henrik
>>>>>>
>>>>>> On 2020-01-20 21:00, David R. Oran wrote:
>>>>>>> I have a new Internet Draft to write, so I decided to bite the bullet
>>>>>>> and do it in V3. Rather than write in V2 and try the converter, I
>>>>>>> started out right away with V3 syntax. I didn’t get very far. I tried
>>>>>>> both the most recent xml2rfc by installing it on my machine, and the web
>>>>>>> tool and got identical errors.
>>>>>>>
>>>>>>> If I follow the described syntax in RFC7991, the RFC Editor FAQ in
>>>>>>> https://ftp.ripe.net/rfc/v3test/FAQ-2019-02.html and the example in
>>>>>>> draft-hoffman-rfcexamples-latest as below:
>>>>>>>
>>>>>>> 	<?xml version="1.0" encoding="US-ASCII"?>
>>>>>>> 	<!DOCTYPE rfc SYSTEM 'rfc2629.dtd'>
>>>>>>>
>>>>>>> 	<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
>>>>>>> 	<?rfc strict="yes" ?>
>>>>>>> 	<?rfc toc="yes"?>
>>>>>>> 	<?rfc tocdepth="4"?>
>>>>>>> 	<?rfc symrefs="yes" ?>
>>>>>>> 	<?rfc sortrefs="yes" ?>
>>>>>>> 	<?rfc compact="yes" ?>
>>>>>>> 	<?rfc subcompact="no" ?>
>>>>>>> 	<rfc
>>>>>>> 		version=‘3’
>>>>>>> 		ipr='trust200902'
>>>>>>> 		category='exp'
>>>>>>> 		submissionType='IRTF'
>>>>>>> 		docName='draft-oran-icnrg-reflexive-forwarding-00'
>>>>>>> 		xml:lang='en' xmlns:xi="https://www.w3.org/2001/XInclude">
>>>>>>>
>>>>>>> 	<front>
>>>>>>> 		<seriesInfo name='Internet-Draft'
>>>>>>> value='draft-oran-icnrg-reflexive-forwarding-00'/>
>>>>>>> 	    <title abbrev='ICN Reflexive Forwarding'>Reflexive Forwarding for
>>>>>>> CCNx and NDN Protocols
>>>>>>> 	    </title>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> I get
>>>>>>>
>>>>>>> 	% xml2rfc draft-oran-icnrg-reflexive-forwarding.xml
>>>>>>> 	Incompatible schema information: found "rfc2629.dtd" in <DOCTYPE> of a
>>>>>>> version 3 file.
>>>>>>>
>>>>>>> If I leave off the “version=‘3’, as below
>>>>>>>
>>>>>>> 	<?xml version="1.0" encoding="US-ASCII"?>
>>>>>>> 	<!DOCTYPE rfc SYSTEM 'rfc2629.dtd'>
>>>>>>> 	<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
>>>>>>> 	<?rfc strict="yes" ?>
>>>>>>> 	<?rfc toc="yes"?>
>>>>>>> 	<?rfc tocdepth="4"?>
>>>>>>> 	<?rfc symrefs="yes" ?>
>>>>>>> 	<?rfc sortrefs="yes" ?>
>>>>>>> 	<?rfc compact="yes" ?>
>>>>>>> 	<?rfc subcompact="no" ?>
>>>>>>>
>>>>>>> 	<rfc
>>>>>>> 		ipr='trust200902'
>>>>>>> 		category='exp'
>>>>>>> 		submissionType='IRTF'
>>>>>>> 		docName='draft-oran-icnrg-reflexive-forwarding-00'
>>>>>>> 		xml:lang='en' xmlns:xi="https://www.w3.org/2001/XInclude">
>>>>>>>
>>>>>>> 	<front>
>>>>>>> 		<seriesInfo name='Internet-Draft'
>>>>>>> value='draft-oran-icnrg-reflexive-forwarding-00'/>
>>>>>>> 	    <title abbrev='ICN Reflexive Forwarding'>Reflexive Forwarding for
>>>>>>> CCNx and NDN Protocols
>>>>>>> 	    </title>
>>>>>>>
>>>>>>> I get:
>>>>>>>
>>>>>>> 		xml2rfc draft-oran-icnrg-reflexive-forwarding.xml
>>>>>>> 		Error: Unable to validate the XML document:
>>>>>>> draft-oran-icnrg-reflexive-forwarding.xml
>>>>>>> 		 <string>: Line 23: No declaration for attribute xmlns:xi of element
>>>>>>> rfc
>>>>>>> 		 <string>: Line 25: Element front content does not follow the DTD,
>>>>>>> expecting (title , author+ , date , area* , workgroup* , keyword* ,
>>>>>>> abstract? , note*), got (seriesInfo title author author date area
>>>>>>> workgroup keyword keyword abstract )
>>>>>>> 		 <string>: Line 81: Element section content does not follow the DTD,
>>>>>>> expecting ((t | figure | texttable | iref)* , section*), got (name t )
>>>>>>> 		 <string>: Line 81: Element section does not carry attribute title
>>>>>>> 		 <string>: Line 81: No declaration for element name
>>>>>>> 		 <string>: Line 85: Element section content does not follow the DTD,
>>>>>>> expecting ((t | figure | texttable | iref)* , section*), got (name t )
>>>>>>> 		 <string>: Line 85: Element section does not carry attribute title
>>>>>>> 		 <string>: Line 85: No declaration for element name
>>>>>>> 		 <string>: Line 94: Element section content does not follow the DTD,
>>>>>>> expecting ((t | figure | texttable | iref)* , section*), got (name t
>>>>>>> section section )
>>>>>>> 		 <string>: Line 94: Element section does not carry attribute title
>>>>>>> 		 <string>: Line 94: No declaration for element name
>>>>>>> 		 <string>: Line 97: Element section content does not follow the DTD,
>>>>>>> expecting ((t | figure | texttable | iref)* , section*), got (name t
>>>>>>> table )
>>>>>>> 		 <string>: Line 97: Element section does not carry attribute title
>>>>>>> 		 <string>: Line 97: No declaration for element name
>>>>>>> 		 <string>: Line 98: No declaration for attribute keepWithNext of
>>>>>>> element t
>>>>>>> 		 <string>: Line 99: No declaration for element table
>>>>>>> 		 <string>: Line 99: No declaration for attribute title of element
>>>>>>> table
>>>>>>>
>>>>>>> Clue bat please?
>>>>>>>
>>>>>>> DaveO
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> xml2rfc mailing list
>>>>>>> xml2rfc@ietf.org
>>>>>>> https://www.ietf.org/mailman/listinfo/xml2rfc
>>>>>>>
>>>>>
>>>>> DaveO
>>>>>
>>>
>>> DaveO
>>>
>>

DaveO