Subject: [TOOLS-DEVELOPMENT] Preview release of Text Submission Converter, id2xml

From: Megan Ferguson <[email-masked]>
Date: Thu, 2 Nov 2017 07:18:14 -0700

Hi Henrik,

Input file: draft-ietf-nfsv4-xattrs-06
Version: 1.3.0 (we still need to update to 1.3.1)
Issue: Table markup in xml
Files available:
https://www.rfc-editor.org/rfc/v3test/draft-ietf-nfsv4-xattrs-06.original
https://www.rfc-editor.org/rfc/v3test/draft-ietf-nfsv4-xattrs-06.txt
https://www.rfc-editor.org/rfc/v3test/draft-ietf-nfsv4-xattrs-06.xml

Note:  I didn’t include a diff as the text output is the same as the .original version.  

Section 8.4.5. includes a table that is marked up in xml a bit differently than we expected.  

The text output is the same when using the current version of xml2rfc, but instead of creating 
a continuous comma-separated list in <c> tags, it has generated <c> tags for each line.  We are 
concerned about how this table would be handled by v3 as well as other formats (html for example).  
To try to work around, we added blank lines above and below and tried separating the entries 
using +— lines between them (to no avail).  Is there another way to make this table work (other 
than copying the figure in as <artwork>)?

Thank you.

RFC Editor/mf

---

From: Henrik Levkowetz <[email-masked]>
Date: Thu, 2 Nov 2017 16:07:31 +0100

Hi Megan,

> Note: I didn’t include a diff as the text output is the same as the

Ack, right.

> The text output is the same when using the current version of
> xml2rfc, but instead of creating a continuous comma-separated list in
> <c> tags, it has generated <c> tags for each line.

Hmm, right.

> We are concerned
> about how this table would be handled by v3 as well as other formats
> (html for example). To try to work around, we added blank lines above
> and below and tried separating the entries using +— lines between
> them (to no avail). Is there another way to make this table work
> (other than copying the figure in as <artwork>)?

I see the problem.  I'm not sure there's a way for the converter to know
for sure whether the lines should be part of one single cell, or should
be separate cells (the way it's done now).

Handling this as <artwork/> would not be good.  It's possible that the
only really good handling would be to manually remove all the extra
<c> and </c> tags from the xml.

I'll see if I can tweak id2xml somehow, though.

Best regards,

	Henrik

---

From: Megan Ferguson <[email-masked]>
Date: Thu, 2 Nov 2017 08:45:39 -0700

> I'll see if I can tweak id2xml somehow, though.

This seems like it could be a time-consuming manual change.  Thanks for taking a look!

-Megan

---

From: Julian Reschke <[email-masked]>
Date: Thu, 2 Nov 2017 17:18:29 +0100

> This seems like it could be a time-consuming manual change.  Thanks for taking a look!

I understand the pain point, but I also have to point out that it might 
be counter productive to sink too much time into the conversion tool, 
when people are waiting for the *actual* V3 tooling to surface...

Best regards, Julian

---

From: Henrik Levkowetz <[email-masked]>
Date: Thu, 2 Nov 2017 18:43:14 +0100

Hi Megan,

> This seems like it could be a time-consuming manual change.  Thanks for taking a look!

Yes.  I think I can make this work with the insertion of border lines
between the line groups.  I have a tentative implementation which now
converts this:

   +----------------------+--------------------------------------------+
   | Operation            | Errors                                     |
   +----------------------+--------------------------------------------+
   | GETXATTR             | NFS4ERR_ACCESS, NFS4ERR_BADXDR,            |
   |                      | NFS4ERR_DEADSESSION, NFS4ERR_DELAY,        |
   |                      | NFS4ERR_FHEXPIRED, NFS4ERR_INVAL,          |
   |                      | NFS4ERR_IO, NFS4ERR_MOVED,                 |
   |                      | NFS4ERR_NAMETOOLONG, NFS4ERR_NOFILEHANDLE, |
   |                      | NFS4ERR_NOTSUPP, NFS4ERR_OP_NOT_IN_SESSION,|
   |                      | NFS4ERR_PERM, NFS4ERR_REP_TOO_BIG,         |
   |                      | NFS4ERR_REP_TOO_BIG_TO_CACHE,              |
   |                      | NFS4ERR_REQ_TOO_BIG,                       |
   |                      | NFS4ERR_RETRY_UNCACHED_REP,                |
   |                      | NFS4ERR_SERVERFAULT, NFS4ERR_STALE,        |
   |                      | NFS4ERR_TOO_MANY_OPS, NFS4ERR_WRONG_TYPE   |
   +----------------------+--------------------------------------------+
   | SETXATTR             | NFS4ERR_ACCESS, NFS4ERR_BADCHAR,           |
   |                      | NFS4ERR_BADXDR, NFS4ERR_DEADSESSION,       |
   |                      | NFS4ERR_DELAY, NFS4ERR_DQUOT,              |
   |                      | NFS4ERR_EXIST, NFS4ERR_FHEXPIRED,          |
   |                      | NFS4ERR_INVAL, NFS4ERR_IO, NFS4ERR_MOVED,  |
   |                      | NFS4ERR_NAMETOOLONG, NFS4ERR_NOFILEHANDLE, |
   |                      | NFS4ERR_NOSPC, NFS4ERR_OP_NOT_IN_SESSION,  |
   |                      | NFS4ERR_PERM, NFS4ERR_REP_TOO_BIG,         |
   |                      | NFS4ERR_REP_TOO_BIG_TO_CACHE,              |

Naik & Eshel            Expires January 31, 2018               [Page 19]
^L
Internet Draft        Extended Attributes in NFSv4         July 30, 2017

   |                      | NFS4ERR_REQ_TOO_BIG,                       |
   |                      | NFS4ERR_RETRY_UNCACHED_REP, NFS4ERR_ROFS,  |
   |                      | NFS4ERR_SERVERFAULT, NFS4ERR_STALE,        |
   |                      | NFS4ERR_TOO_MANY_OPS, NFS4ERR_WRONG_TYPE   |
   +----------------------+--------------------------------------------+
   | LISTXATTRS           | NFS4ERR_ACCESS, NFS4ERR_DEADSESSION,       |
   |                      | NFS4ERR_DELAY, NFS4ERR_INVAL, NFS4ERR_IO,  |
   |                      | NFS4ERR_MOVED, NFS4ERR_NAMETOOLONG,        |
   |                      | NFS4ERR_NOFILEHANDLE, NFS4ERR_NOTSUPP,     |
   |                      | NFS4ERR_OP_NOT_IN_SESSION,                 |
   |                      | NFS4ERR_PERM, NFS4ERR_REP_TOO_BIG,         |
   |                      | NFS4ERR_REP_TOO_BIG_TO_CACHE,              |
   |                      | NFS4ERR_REQ_TOO_BIG,                       |
   |                      | NFS4ERR_RETRY_UNCACHED_REP,                |
   |                      | NFS4ERR_SERVERFAULT, NFS4ERR_STALE,        |
   |                      | NFS4ERR_TOO_MANY_OPS, NFS4ERR_WRONG_TYPE   |
   +----------------------+--------------------------------------------+
   | REMOVEXATTR          | NFS4ERR_ACCESS, NFS4ERR_BADCHAR,           |
   |                      | NFS4ERR_BADXDR, NFS4ERR_DEADSESSION,       |
   |                      | NFS4ERR_DELAY, NFS4ERR_DQUOT,              |
   |                      | NFS4ERR_EXIST, NFS4ERR_INVAL, NFS4ERR_IO,  |
   |                      | NFS4ERR_LOCKED, NFS4ERR_MOVED,             |
   |                      | NFS4ERR_NAMETOOLONG, NFS4ERR_NOFILEHANDLE, |
   |                      | NFS4ERR_NOSPC, NFS4ERR_OLD_STATEID,        |
   |                      | NFS4ERR_OPENMODE,                          |
   |                      | NFS4ERR_OP_NOT_IN_SESSION, NFS4ERR_PERM,   |
   |                      | NFS4ERR_RETRY_UNCACHED_REP, NFS4ERR_ROFS,  |
   |                      | NFS4ERR_SERVERFAULT, NFS4ERR_STALE,        |
   |                      | NFS4ERR_TOO_MANY_OPS, NFS4ERR_WRONG_TYPE   |
   +----------------------+--------------------------------------------+

to xml which produces this:

   +-------------+-----------------------------------------------------+
   | Operation   | Errors                                              |
   +-------------+-----------------------------------------------------+
   | GETXATTR    | NFS4ERR_ACCESS, NFS4ERR_BADXDR,                     |
   |             | NFS4ERR_DEADSESSION, NFS4ERR_DELAY,                 |
   |             | NFS4ERR_FHEXPIRED, NFS4ERR_INVAL, NFS4ERR_IO,       |
   |             | NFS4ERR_MOVED, NFS4ERR_NAMETOOLONG,                 |
   |             | NFS4ERR_NOFILEHANDLE, NFS4ERR_NOTSUPP,              |
   |             | NFS4ERR_OP_NOT_IN_SESSION, NFS4ERR_PERM,            |
   |             | NFS4ERR_REP_TOO_BIG, NFS4ERR_REP_TOO_BIG_TO_CACHE,  |
   |             | NFS4ERR_REQ_TOO_BIG, NFS4ERR_RETRY_UNCACHED_REP,    |
   |             | NFS4ERR_SERVERFAULT, NFS4ERR_STALE,                 |
   |             | NFS4ERR_TOO_MANY_OPS, NFS4ERR_WRONG_TYPE            |
   +-------------+-----------------------------------------------------+
   | SETXATTR    | NFS4ERR_ACCESS, NFS4ERR_BADCHAR, NFS4ERR_BADXDR,    |
   |             | NFS4ERR_DEADSESSION, NFS4ERR_DELAY, NFS4ERR_DQUOT,  |
   |             | NFS4ERR_EXIST, NFS4ERR_FHEXPIRED, NFS4ERR_INVAL,    |
   |             | NFS4ERR_IO, NFS4ERR_MOVED, NFS4ERR_NAMETOOLONG,     |
   |             | NFS4ERR_NOFILEHANDLE, NFS4ERR_NOSPC,                |
   |             | NFS4ERR_OP_NOT_IN_SESSION, NFS4ERR_PERM,            |
   |             | NFS4ERR_REP_TOO_BIG, NFS4ERR_REP_TOO_BIG_TO_CACHE,  |
   |             | NFS4ERR_REQ_TOO_BIG, NFS4ERR_RETRY_UNCACHED_REP,    |
   |             | NFS4ERR_ROFS, NFS4ERR_SERVERFAULT, NFS4ERR_STALE,   |
   |             | NFS4ERR_TOO_MANY_OPS, NFS4ERR_WRONG_TYPE            |
   +-------------+-----------------------------------------------------+
   | LISTXATTRS  | NFS4ERR_ACCESS, NFS4ERR_DEADSESSION, NFS4ERR_DELAY, |
   |             | NFS4ERR_INVAL, NFS4ERR_IO, NFS4ERR_MOVED,           |
   |             | NFS4ERR_NAMETOOLONG, NFS4ERR_NOFILEHANDLE,          |
   |             | NFS4ERR_NOTSUPP, NFS4ERR_OP_NOT_IN_SESSION,         |
   |             | NFS4ERR_PERM, NFS4ERR_REP_TOO_BIG,                  |
   |             | NFS4ERR_REP_TOO_BIG_TO_CACHE, NFS4ERR_REQ_TOO_BIG,  |
   |             | NFS4ERR_RETRY_UNCACHED_REP, NFS4ERR_SERVERFAULT,    |
   |             | NFS4ERR_STALE, NFS4ERR_TOO_MANY_OPS,                |
   |             | NFS4ERR_WRONG_TYPE                                  |
   +-------------+-----------------------------------------------------+
   | REMOVEXATTR | NFS4ERR_ACCESS, NFS4ERR_BADCHAR, NFS4ERR_BADXDR,    |
   |             | NFS4ERR_DEADSESSION, NFS4ERR_DELAY, NFS4ERR_DQUOT,  |
   |             | NFS4ERR_EXIST, NFS4ERR_INVAL, NFS4ERR_IO,           |
   |             | NFS4ERR_LOCKED, NFS4ERR_MOVED, NFS4ERR_NAMETOOLONG, |
   |             | NFS4ERR_NOFILEHANDLE, NFS4ERR_NOSPC,                |
   |             | NFS4ERR_OLD_STATEID, NFS4ERR_OPENMODE,              |
   |             | NFS4ERR_OP_NOT_IN_SESSION, NFS4ERR_PERM,            |
   |             | NFS4ERR_RETRY_UNCACHED_REP, NFS4ERR_ROFS,           |
   |             | NFS4ERR_SERVERFAULT, NFS4ERR_STALE,                 |
   |             | NFS4ERR_TOO_MANY_OPS, NFS4ERR_WRONG_TYPE            |
   +-------------+-----------------------------------------------------+

which seems reasonable.

If you don't want the added borders, you only need to change style='all'
to style='full' in the texttable element.

I expect this will be part of the next release.

Best regards,

	Henrik