bug-texinfo
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

DTD version confusion


From: Thien-Thi Nguyen
Subject: DTD version confusion
Date: Sun, 01 Mar 2015 15:16:06 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

Looks like Texinfo 5.0 shipped w/ texinfo.dtd 5.0 -- that's
fine.  Even Texinfo 5.1, / DTD 5.0 is acceptable as the DTD did
not have any substantial (non-comment) changes.  The problem,
then, arises for Texinfo 5.2 / DTD 5.0, as DTD 5.2 shows some
substantial changes:
diff -ubw /home/ttn/build/ixin/dtd/5.1.dtd /home/ttn/build/ixin/dtd/5.2.dtd
--- /home/ttn/build/ixin/dtd/5.1.dtd    2015-03-01 13:01:14.000000000 +0100
+++ /home/ttn/build/ixin/dtd/5.2.dtd    2015-03-01 13:01:45.000000000 +0100
@@ -1,8 +1,8 @@
-<!-- $Id: texinfo.dtd,v 1.1 2013/03/12 23:12:28 karl Exp $
+<!-- $Id: texinfo.dtd,v 1.1 2013/09/26 23:19:23 karl Exp $
   Document Type Definition for Texinfo XML output (the '-'-xml option).
 
   Copyright 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-  2011, 2012 Free Software Foundation, Inc.
+  2011, 2012, 2013 Free Software Foundation, Inc.
 
   Copying and distribution of this file, with or without modification,
   are permitted in any medium without royalty provided the copyright
@@ -151,7 +151,8 @@
 <!ENTITY % Inline.reference "xref | ref | pxref | inforef | email | uref | 
url">
 <!ENTITY % Inline.misc "click | clicksequence | logo | punct | spacecmd | today
                         | linebreak | accent | dotless | ctrl | inlineraw 
-                        | inlinefmt | infoenclose">
+                        | inlinefmt | inlinefmtifelse | inlineifclear 
+                        | inlineifset | infoenclose | noeos | formfeed ">
 
 <!-- on lines -->
 <!ENTITY % Inline.linetext "%Inline.emphasize; | %Inline.misc; | %Inline.fonts;
@@ -1038,6 +1039,7 @@
 <!ATTLIST errormsg
           %spacesattr;>
 
+<!-- inline conditionals -->
 <!ELEMENT inlineraw (inlinerawformat, inlinerawcontent)>
 <!ATTLIST inlineraw
           %spacesattr;>
@@ -1054,6 +1056,34 @@
 <!ATTLIST inlinefmtcontent
           %spacesattr;>
 
+<!ELEMENT inlineifclear (inlineifclearformat, inlineifclearcontent)>
+<!ATTLIST inlineifclear
+          %spacesattr;>
+<!ELEMENT inlineifclearformat (#PCDATA)>
+<!ELEMENT inlineifclearcontent (#PCDATA | %Inline.phrase;)*>
+<!ATTLIST inlineifclearcontent
+          %spacesattr;>
+
+<!ELEMENT inlineifset (inlineifsetformat, inlineifsetcontent)>
+<!ATTLIST inlineifset
+          %spacesattr;>
+<!ELEMENT inlineifsetformat (#PCDATA)>
+<!ELEMENT inlineifsetcontent (#PCDATA | %Inline.phrase;)*>
+<!ATTLIST inlineifsetcontent
+          %spacesattr;>
+
+<!ELEMENT inlinefmtifelse (inlinefmtifelseformat, inlinefmtifelsecontentif?, 
inlinefmtifelsecontentelse?)>
+<!ATTLIST inlinefmtifelse
+          %spacesattr;>
+<!ELEMENT inlinefmtifelseformat (#PCDATA)>
+<!ELEMENT inlinefmtifelsecontentif (#PCDATA | %Inline.phrase;)*>
+<!ATTLIST inlinefmtifelsecontentif
+          %spacesattr;>
+<!ELEMENT inlinefmtifelsecontentelse (#PCDATA | %Inline.phrase;)*>
+<!ATTLIST inlinefmtifelsecontentelse
+          %spacesattr;>
+
+
 <!-- command defined by definfoenclose -->
 <!ELEMENT infoenclose  (#PCDATA | %Inline.phrase;)*>
 <!ATTLIST infoenclose
@@ -1220,6 +1250,7 @@
 <!ELEMENT logo      (#PCDATA)>
 <!ELEMENT linebreak EMPTY>
 <!ELEMENT noeos EMPTY>
+<!ELEMENT formfeed EMPTY>
 
 <!ENTITY tex        "<logo>TeX</logo>">
 <!ENTITY latex      "<logo>LaTeX</logo>">
@@ -1252,6 +1283,8 @@
 <!ENTITY rsaquo     "&#x203a;">
 <!ENTITY textmdash      "&#x2014;">
 <!ENTITY textndash      "&#x2013;">
+<!ENTITY formfeed       "<formfeed/>">
+<!ENTITY attrformfeed   "\f">
 <!ENTITY period     "<punct end-of-sentence='no'>.</punct>">
 <!ENTITY eosperiod  "<punct end-of-sentence='yes'>.</punct>">
 <!ENTITY quest      "<punct end-of-sentence='no'>?</punct>">

Diff finished.  Sun Mar  1 13:02:42 2015
Here is the relevant excerpt from configure.ac which assigns the
variable that holds the eventual DTD version number:

 # version for the dtd.  It is manually set to the next version number 
 # rather than $PACKAGE_VERSION as soon as the DTD is modified.  There 
 # are 3 reasons for that:
 # 1. to avoid using a DTD from internet that wouldn't be in sync;
 # 2. to avoid unnnecessary changes in XML output file headers, in
 #    test results for instance.  Otherwise after a release the 
 #    devel version and the pretest versions would be used;
 # 3. it may be kept as is in case there were no change in the DTD
 #    between releases.  This is highly improbable, but who knows.
 # TEXINFO_DTD_VERSION=$PACKAGE_VERSION
 TEXINFO_DTD_VERSION=5.0
 AC_SUBST([TEXINFO_DTD_VERSION])

Obviously 3. has been proven invalid; there were indeed changes.

For 2., probably we can fix the testing infrastructure to paper
over that kind of difference.  Perhaps we can even reify such
fixes by publishing official changes to tp/maintain/catalog.xml
and relying on the inherent redirection "technology" (i don't
know for sure; i dread digging too deep into all things XML).

For 1., well, that's the exact situation we are in now: makeinfo
5.2 produces XML that calls for DTD 5.0.  I don't know (yet --
still poking around) if that is acceptable, but it certainly is
confusing, especially after noting that DTD 5.2, ignored as it
is, is anyway online in its canonical location (www.gnu.org).

So, for next release, i think there needs to be first, a more
rational (or realistic) policy on how ‘TEXINFO_DTD_VERSION’ is
to be updated, and second, that policy should be applied and the
change (in policy and deed) noted in NEWS as a bugfix.

Personally, i think synching it w/ ‘PACKAGE_VERSION’ is TRT, but
i am new to Texinfo hacking so maybe i'm missing something.

-- 
Thien-Thi Nguyen
   GPG key: 4C807502
   (if you're human and you know it)
      read my lisp: (responsep (questions 'technical)
                               (not (via 'mailing-list)))
                     => nil

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]