Subject: [Xml-sg-cmt] Changing the DOCTYPE in unprepped RFCs

From: "John R Levine" <[email-masked]>
Date: 6 Nov 2021 22:07:50 -0400

As promised last month, I went through all of the unprepped RFCs and 
changed

<!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent">

to

<!DOCTYPE rfc [
  <!ENTITY nbsp  "&#160;">
  <!ENTITY zwsp  "&#8203;">
  <!ENTITY nbhy  "&#8209;">
  <!ENTITY wj   "&#8288;">
]>

In two cases, it added an entity for &br;

The good news is that I made a fixed version of every unprepped RFC, ran 
the original and the fixed version through the preptool, and in every case 
the results were identical other than the time stamp.  The whole process 
took a little over an hour on my Macbook.

A few unprepped file had no DOCTYPE, so there was nothing to change:

rfc8735.notprepped.xml
rfc8789.notprepped.xml
rfc8999.notprepped.xml
rfc9000.notprepped.xml
rfc9001.notprepped.xml
rfc9002.notprepped.xml
rfc9103.notprepped.xml
rfc9115.notprepped.xml

Five recent ones had explicit entity definitions, so nothing to change there, 
either:

rfc9117.notprepped.xml
rfc9118.notprepped.xml
rfc9119.notprepped.xml
rfc9125.notprepped.xml
rfc9126.notprepped.xml

The prepped versions of the files were not the same as the published ones. 
In the most recent RFCs the difference was just Simplified vs Revised 
license.  In older ones, there were a lot of diffs due to defaults we've 
added.  Below is a diff that shows the differences in RFC8650, skipping
all of the <t> with added indent="0".

My script can also take the docName attribute out of the <rfc> element and 
turning it into a <link rel="convertedFrom" href="blah"/> element. That 
worked fine, but I see that xml2rfc has instead been adding a
<link rel="prev" ... > element.  That seems wrong to me, since RFC 7991 is quite 
clear that it should be convertedFrom.

Another switch turned &br; into <br/>, which seemed to work fine in the 
two RFCs where it occurs.

If we redo the XML, I think we should fix the links, don't feel strongly 
about the &br;

I don't think we should reissue anything until we deal with <postal>
and anything else that needs changing and tell the community about it.

I did this with a small python script to fix the elements and a shell 
wrapper that goes through all the unprepped files, fixes, preps, and 
compares and says whether the result is the same or if not what is 
different.

Regards,
John Levine, [email-masked], Taughannock Networks, Trumansburg NY
Please consider the environment before reading this e-mail. https://jl.ly

$ diff published RFC8650 vs newly prepped
2c2
< <rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" consensus="true" docName="draft-ietf-netconf-restconf-notif-15" indexInclude="true" ipr="trust200902" number="8650" prepTime="2021-11-06T17:06:31" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" xml:lang="en">
---
> <rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" consensus="true" docName="draft-ietf-netconf-restconf-notif-15" indexInclude="true" ipr="trust200902" number="8650" prepTime="2019-11-17T01:57:02" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" xml:lang="en">
80c80
<             document must include Revised BSD License text as described in
---
>             document must include Simplified BSD License text as described in
82c82
<             warranty as described in the Revised BSD License.
---
>             warranty as described in the Simplified BSD License.
97c97
<             <t pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-dynamic-subscriptions">Dynamic Subscriptions</xref></t>
---
>             <t keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-dynamic-subscriptions">Dynamic Subscriptions</xref></t>
103c103
<                 <t pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-discovery">Discovery</xref></t>
---
>                 <t keepWithNext="true" pn="section-toc.1-1.3.2.2.1"><xref derivedContent="3.2" format="counter" sectionFormat="of" target="section-3.2"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-discovery">Discovery</xref></t>
106c106
<                 <t pn="section-toc.1-1.3.2.3.1"><xref derivedContent="3.3" format="counter" sectionFormat="of" target="section-3.3"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-restconf-rpcs-and-http-stat">RESTCONF RPCs and HTTP Status Codes</xref></t>
---
>                 <t keepWithNext="true" pn="section-toc.1-1.3.2.3.1"><xref derivedContent="3.3" format="counter" sectionFormat="of" target="section-3.3"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-restconf-rpcs-and-http-stat">RESTCONF RPCs and HTTP Status Codes</xref></t>
109c109
<                 <t pn="section-toc.1-1.3.2.4.1"><xref derivedContent="3.4" format="counter" sectionFormat="of" target="section-3.4"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-call-flow-for-server-sent-e">Call Flow for Server-Sent Events</xref></t>
---
>                 <t keepWithNext="true" pn="section-toc.1-1.3.2.4.1"><xref derivedContent="3.4" format="counter" sectionFormat="of" target="section-3.4"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-call-flow-for-server-sent-e">Call Flow for Server-Sent Events</xref></t>
114c114
<             <t pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-qos-treatment">QoS Treatment</xref></t>
---
>             <t keepWithNext="true" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-qos-treatment">QoS Treatment</xref></t>
117c117
<             <t pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-notification-messages">Notification Messages</xref></t>
---
>             <t keepWithNext="true" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-notification-messages">Notification Messages</xref></t>
120c120
<             <t pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-yang-tree">YANG Tree</xref></t>
---
>             <t keepWithNext="true" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-yang-tree">YANG Tree</xref></t>
123c123
<             <t pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-yang-module">YANG Module</xref></t>
---
>             <t keepWithNext="true" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-yang-module">YANG Module</xref></t>
126c126
<             <t pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
---
>             <t keepWithNext="true" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
129c129
<             <t pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
---
>             <t keepWithNext="true" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
132c132
<             <t pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>.?<xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
---
>             <t keepWithNext="true" pn="section-toc.1-1.10.1"><xref derivedContent="10" format="counter" sectionFormat="of" target="section-10"/>.?<xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
135c135
<                 <t pn="section-toc.1-1.10.2.1.1"><xref derivedContent="10.1" format="counter" sectionFormat="of" target="section-10.1"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
---
>                 <t keepWithNext="true" pn="section-toc.1-1.10.2.1.1"><xref derivedContent="10.1" format="counter" sectionFormat="of" target="section-10.1"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
138c138
<                 <t pn="section-toc.1-1.10.2.2.1"><xref derivedContent="10.2" format="counter" sectionFormat="of" target="section-10.2"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
---
>                 <t keepWithNext="true" pn="section-toc.1-1.10.2.2.1"><xref derivedContent="10.2" format="counter" sectionFormat="of" target="section-10.2"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
143c143
<             <t pn="section-toc.1-1.11.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-examples">Examples</xref></t>
---
>             <t keepWithNext="true" pn="section-toc.1-1.11.1"><xref derivedContent="Appendix A" format="default" sectionFormat="of" target="section-appendix.a"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-examples">Examples</xref></t>
146c146
<                 <t pn="section-toc.1-1.11.2.1.1"><xref derivedContent="A.1" format="counter" sectionFormat="of" target="section-appendix.a.1"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-dynamic-subscriptions-2">Dynamic Subscriptions</xref></t>
---
>                 <t keepWithNext="true" pn="section-toc.1-1.11.2.1.1"><xref derivedContent="A.1" format="counter" sectionFormat="of" target="section-a.1"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-dynamic-subscriptions-2">Dynamic Subscriptions</xref></t>
149c149
<                     <t pn="section-toc.1-1.11.2.1.2.1.1"><xref derivedContent="A.1.1" format="counter" sectionFormat="of" target="section-appendix.a.1.1"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-establishing-dynamic-subscr">Establishing Dynamic Subscriptions</xref></t>
---
>                     <t keepWithNext="true" pn="section-toc.1-1.11.2.1.2.1.1"><xref derivedContent="A.1.1" format="counter" sectionFormat="of" target="section-a.1.1"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-establishing-dynamic-subscr">Establishing Dynamic Subscriptions</xref></t>
152c152
<                     <t pn="section-toc.1-1.11.2.1.2.2.1"><xref derivedContent="A.1.2" format="counter" sectionFormat="of" target="section-appendix.a.1.2"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-modifying-dynamic-subscript">Modifying Dynamic Subscriptions</xref></t>
---
>                     <t keepWithNext="true" pn="section-toc.1-1.11.2.1.2.2.1"><xref derivedContent="A.1.2" format="counter" sectionFormat="of" target="section-a.1.2"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-modifying-dynamic-subscript">Modifying Dynamic Subscriptions</xref></t>
155c155
<                     <t pn="section-toc.1-1.11.2.1.2.3.1"><xref derivedContent="A.1.3" format="counter" sectionFormat="of" target="section-appendix.a.1.3"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-deleting-dynamic-subscripti">Deleting Dynamic Subscriptions</xref></t>
---
>                     <t keepWithNext="true" pn="section-toc.1-1.11.2.1.2.3.1"><xref derivedContent="A.1.3" format="counter" sectionFormat="of" target="section-a.1.3"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-deleting-dynamic-subscripti">Deleting Dynamic Subscriptions</xref></t>
160c160
<                 <t pn="section-toc.1-1.11.2.2.1"><xref derivedContent="A.2" format="counter" sectionFormat="of" target="section-appendix.a.2"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-subscription-state-notifica">Subscription State Notifications</xref></t>
---
>                 <t keepWithNext="true" pn="section-toc.1-1.11.2.2.1"><xref derivedContent="A.2" format="counter" sectionFormat="of" target="section-a.2"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-subscription-state-notifica">Subscription State Notifications</xref></t>
163c163
<                     <t pn="section-toc.1-1.11.2.2.2.1.1"><xref derivedContent="A.2.1" format="counter" sectionFormat="of" target="section-appendix.a.2.1"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-subscription-modified">"subscription-modified"</xref></t>
---
>                     <t keepWithNext="true" pn="section-toc.1-1.11.2.2.2.1.1"><xref derivedContent="A.2.1" format="counter" sectionFormat="of" target="section-a.2.1"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-subscription-modified">"subscription-modified"</xref></t>
166c166
<                     <t pn="section-toc.1-1.11.2.2.2.2.1"><xref derivedContent="A.2.2" format="counter" sectionFormat="of" target="section-appendix.a.2.2"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-subscription-completed-subs">"subscription-completed", "subscription-resumed", and "replay-completed"</xref></t>
---
>                     <t keepWithNext="true" pn="section-toc.1-1.11.2.2.2.2.1"><xref derivedContent="A.2.2" format="counter" sectionFormat="of" target="section-a.2.2"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-subscription-completed-subs">"subscription-completed", "subscription-resumed", and "replay-completed"</xref></t>
169c169
<                     <t pn="section-toc.1-1.11.2.2.2.3.1"><xref derivedContent="A.2.3" format="counter" sectionFormat="of" target="section-appendix.a.2.3"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-subscription-terminated-and">"subscription-terminated" and "subscription-suspended"</xref></t>
---
>                     <t keepWithNext="true" pn="section-toc.1-1.11.2.2.2.3.1"><xref derivedContent="A.2.3" format="counter" sectionFormat="of" target="section-a.2.3"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-subscription-terminated-and">"subscription-terminated" and "subscription-suspended"</xref></t>
174c174
<                 <t pn="section-toc.1-1.11.2.3.1"><xref derivedContent="A.3" format="counter" sectionFormat="of" target="section-appendix.a.3"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-filter-example">Filter Example</xref></t>
---
>                 <t keepWithNext="true" pn="section-toc.1-1.11.2.3.1"><xref derivedContent="A.3" format="counter" sectionFormat="of" target="section-a.3"/>.??<xref derivedContent="" format="title" sectionFormat="of" target="name-filter-example">Filter Example</xref></t>
179c179
<             <t pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
---
>             <t keepWithNext="true" pn="section-toc.1-1.12.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgments">Acknowledgments</xref></t>
182c182
<             <t pn="section-toc.1-1.13.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
---
>             <t keepWithNext="true" pn="section-toc.1-1.13.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.c"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
244c244
<         <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3.3-4">
---
>         <ul spacing="normal" bare="false" empty="false" pn="section-3.3-4">
499c499
<         <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3.4-6">
---
>         <ul spacing="normal" bare="false" empty="false" pn="section-3.4-6">
512c512
<         <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-3.4-8">
---
>         <ul spacing="normal" bare="false" empty="false" pn="section-3.4-8">
522c522
<       <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-4-2">
---
>       <ul spacing="normal" bare="false" empty="false" pn="section-4-2">
547c547
<     +--ro uri?   inet:uri</sourcecode>
---
>     +--ro uri?   inet:uri </sourcecode>
590c590
<      forth in Section 4.c of the IETF Trust's Legal Provisions
---
>      forth in Section 4.c of the IETF Trust's Legal Provisions 
592c592
<      (https://trustee.ietf.org/license-info).
---
>      (https://trustee.ietf.org/license-info). 
646c646
<       <dl indent="3" newline="false" spacing="normal" pn="section-8-2">
---
>       <dl newline="false" spacing="normal" pn="section-8-2">
658c658
<       <dl indent="3" newline="false" spacing="normal" pn="section-8-4">
---
>       <dl newline="false" spacing="normal" pn="section-8-4">
678c678
<       <ul spacing="normal" bare="false" empty="false" indent="3" pn="section-9-5">
---
>       <ul spacing="normal" bare="false" empty="false" pn="section-9-5">
1116c1116
<       <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a.1">
---
>       <section numbered="true" toc="include" removeInRFC="false" pn="section-a.1">
1118c1118
<         <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a.1.1">
---
>         <section numbered="true" toc="include" removeInRFC="false" pn="section-a.1.1">
1120c1120
<           <t pn="section-appendix.a.1.1-1">The following figure shows two successful
---
>           <t pn="section-a.1.1-1">The following figure shows two successful
1125c1125
<             <artwork name="" type="" align="left" alt="" pn="section-appendix.a.1.1-2.1">
---
>             <artwork name="" type="" align="left" alt="" pn="section-a.1.1-2.1">
1154c1154
<           <t pn="section-appendix.a.1.1-3">To provide examples of the information being transported, example messages for interactions in  <xref target="mess-flow-establishment" format="default" sectionFormat="of" derivedContent="Figure 2"/> are detailed below:</t>
---
>           <t pn="section-a.1.1-3">To provide examples of the information being transported, example messages for interactions in  <xref target="mess-flow-establishment" format="default" sectionFormat="of" derivedContent="Figure 2"/> are detailed below:</t>
1157c1157
<             <artwork name="ex-establish-subscription.json" type="" align="left" alt="" pn="section-appendix.a.1.1-4.1">
---
>             <artwork name="ex-establish-subscription.json" type="" align="left" alt="" pn="section-a.1.1-4.1">
1169c1169
<           <t pn="section-appendix.a.1.1-5">As the publisher was able to fully satisfy the request, the publisher sends the subscription identifier of the accepted subscription and the URI:</t>
---
>           <t pn="section-a.1.1-5">As the publisher was able to fully satisfy the request, the publisher sends the subscription identifier of the accepted subscription and the URI:</t>
1172c1172
<             <artwork name="" type="" align="left" alt="" pn="section-appendix.a.1.1-6.1">
---
>             <artwork name="" type="" align="left" alt="" pn="section-a.1.1-6.1">
1180c1180
<           <t pn="section-appendix.a.1.1-7">Upon receipt of the successful response, the subscriber does a
---
>           <t pn="section-a.1.1-7">Upon receipt of the successful response, the subscriber does a
1186c1186
<             <artwork name="" type="" align="left" alt="" pn="section-appendix.a.1.1-8.1">
---
>             <artwork name="" type="" align="left" alt="" pn="section-a.1.1-8.1">
1189c1189
<           <t pn="section-appendix.a.1.1-9">While not shown in <xref target="mess-flow-establishment" format="default" sectionFormat="of" derivedContent="Figure 2"/>, if the publisher had not been able to fully satisfy the request, or the subscriber has no authorization to establish the subscription, the publisher would have sent an RPC error response. For instance, if the "dscp" value of 10 asserted by the subscriber in <xref target="establish-subs" format="default" sectionFormat="of" derivedContent="Figure 3"/> proved unacceptable, the publisher may have returned:</t>
---
>           <t pn="section-a.1.1-9">While not shown in <xref target="mess-flow-establishment" format="default" sectionFormat="of" derivedContent="Figure 2"/>, if the publisher had not been able to fully satisfy the request, or the subscriber has no authorization to establish the subscription, the publisher would have sent an RPC error response. For instance, if the "dscp" value of 10 asserted by the subscriber in <xref target="establish-subs" format="default" sectionFormat="of" derivedContent="Figure 3"/> proved unacceptable, the publisher may have returned:</t>
1192c1192
<             <artwork name="" type="" align="left" alt="" pn="section-appendix.a.1.1-10.1">
---
>             <artwork name="" type="" align="left" alt="" pn="section-a.1.1-10.1">
1208c1208
<           <t pn="section-appendix.a.1.1-11">The subscriber can use this information in future attempts to establish a subscription.</t>
---
>           <t pn="section-a.1.1-11">The subscriber can use this information in future attempts to establish a subscription.</t>
1210c1210
<         <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a.1.2">
---
>         <section numbered="true" toc="include" removeInRFC="false" pn="section-a.1.2">
1212c1212
<           <t pn="section-appendix.a.1.2-1">An existing subscription may be modified.  The following exchange shows a negotiation of such a modification via several exchanges between a subscriber and a publisher.  This negotiation consists of a failed RPC modification request/response followed by a successful one.</t>
---
>           <t pn="section-a.1.2-1">An existing subscription may be modified.  The following exchange shows a negotiation of such a modification via several exchanges between a subscriber and a publisher.  This negotiation consists of a failed RPC modification request/response followed by a successful one.</t>
1215c1215
<             <artwork name="" type="" align="left" alt="" pn="section-appendix.a.1.2-2.1">
---
>             <artwork name="" type="" align="left" alt="" pn="section-a.1.2-2.1">
1237c1237
<           <t pn="section-appendix.a.1.2-3">If the subscription being modified in <xref target="mess-flow-subs-modification" format="default" sectionFormat="of" derivedContent="Figure 7"/> is a datastore subscription as per <xref target="RFC8641" format="default" sectionFormat="of" derivedContent="RFC8641"/>, the modification request made in (d) may look like that shown in <xref target="simple-modify-subs" format="default" sectionFormat="of" derivedContent="Figure 8"/>.  As can be seen, the modifications being attempted are the application of a new XML Path Language (XPath) filter as well as the setting of a new periodic time interval.</t>
---
>           <t pn="section-a.1.2-3">If the subscription being modified in <xref target="mess-flow-subs-modification" format="default" sectionFormat="of" derivedContent="Figure 7"/> is a datastore subscription as per <xref target="RFC8641" format="default" sectionFormat="of" derivedContent="RFC8641"/>, the modification request made in (d) may look like that shown in <xref target="simple-modify-subs" format="default" sectionFormat="of" derivedContent="Figure 8"/>.  As can be seen, the modifications being attempted are the application of a new XML Path Language (XPath) filter as well as the setting of a new periodic time interval.</t>
1240c1240
<             <artwork name="ex-modify-subscription.json" type="" align="left" alt="" pn="section-appendix.a.1.2-4.1">
---
>             <artwork name="ex-modify-subscription.json" type="" align="left" alt="" pn="section-a.1.2-4.1">
1255c1255
<           <t pn="section-appendix.a.1.2-5">If the publisher can satisfy both changes, the publisher sends a positive result for the RPC. If the publisher cannot satisfy either of the proposed changes, the publisher sends an RPC error response (e).  The following is an example RPC error response for (e) that includes a hint. This hint is an alternative time period value that might have resulted in a successful modification:</t>
---
>           <t pn="section-a.1.2-5">If the publisher can satisfy both changes, the publisher sends a positive result for the RPC. If the publisher cannot satisfy either of the proposed changes, the publisher sends an RPC error response (e).  The following is an example RPC error response for (e) that includes a hint. This hint is an alternative time period value that might have resulted in a successful modification:</t>
1258c1258
<             <artwork name="" type="" align="left" alt="" pn="section-appendix.a.1.2-6.1">
---
>             <artwork name="" type="" align="left" alt="" pn="section-a.1.2-6.1">
1278c1278
<         <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a.1.3">
---
>         <section numbered="true" toc="include" removeInRFC="false" pn="section-a.1.3">
1280c1280
<           <t pn="section-appendix.a.1.3-1">The following demonstrates deleting a subscription.  This subscription may have been to either a stream or a datastore.</t>
---
>           <t pn="section-a.1.3-1">The following demonstrates deleting a subscription.  This subscription may have been to either a stream or a datastore.</t>
1283c1283
<             <artwork name="ex-delete-subscription.json" type="" align="left" alt="" pn="section-appendix.a.1.3-2.1">
---
>             <artwork name="ex-delete-subscription.json" type="" align="left" alt="" pn="section-a.1.3-2.1">
1293,1294c1293,1294
<           <t pn="section-appendix.a.1.3-3">If the publisher can satisfy the request, the publisher replies with success to the RPC request.</t>
<           <t pn="section-appendix.a.1.3-4">If the publisher cannot satisfy the request, the publisher sends
---
>           <t pn="section-a.1.3-3">If the publisher can satisfy the request, the publisher replies with success to the RPC request.</t>
>           <t pn="section-a.1.3-4">If the publisher cannot satisfy the request, the publisher sends
1299c1299
<             <artwork name="" type="" align="left" alt="" pn="section-appendix.a.1.3-5.1">
---
>             <artwork name="" type="" align="left" alt="" pn="section-a.1.3-5.1">
1316c1316
<       <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a.2">
---
>       <section numbered="true" toc="include" removeInRFC="false" pn="section-a.2">
1318,1319c1318,1319
<         <t pn="section-appendix.a.2-1">A publisher will send subscription state notifications according to the definitions within <xref target="RFC8639" format="default" sectionFormat="of" derivedContent="RFC8639"/>.</t>
<         <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a.2.1">
---
>         <t pn="section-a.2-1">A publisher will send subscription state notifications according to the definitions within <xref target="RFC8639" format="default" sectionFormat="of" derivedContent="RFC8639"/>.</t>
>         <section numbered="true" toc="include" removeInRFC="false" pn="section-a.2.1">
1321c1321
<           <t pn="section-appendix.a.2.1-1">A "subscription-modified" encoded in JSON would look like:</t>
---
>           <t pn="section-a.2.1-1">A "subscription-modified" encoded in JSON would look like:</t>
1324c1324
<             <sourcecode name="" type="json" markers="false" pn="section-appendix.a.2.1-2.1">
---
>             <sourcecode name="" type="json" markers="false" pn="section-a.2.1-2.1">
1337c1337
< }</sourcecode>
---
> } </sourcecode>
1340c1340
<         <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a.2.2">
---
>         <section numbered="true" toc="include" removeInRFC="false" pn="section-a.2.2">
1342c1342
<           <t pn="section-appendix.a.2.2-1">A "subscription-completed" notification would look like:</t>
---
>           <t pn="section-a.2.2-1">A "subscription-completed" notification would look like:</t>
1345c1345
<             <sourcecode name="ex-subscription-completed.json" type="json" markers="false" pn="section-appendix.a.2.2-2.1">
---
>             <sourcecode name="ex-subscription-completed.json" type="json" markers="false" pn="section-a.2.2-2.1">
1353c1353
< }</sourcecode>
---
> } </sourcecode>
1355c1355
<           <t pn="section-appendix.a.2.2-3">The "subscription-resumed" and "replay-complete" are virtually identical, with "subscription-completed" simply being replaced by "subscription-resumed" and "replay-complete".</t>
---
>           <t pn="section-a.2.2-3">The "subscription-resumed" and "replay-complete" are virtually identical, with "subscription-completed" simply being replaced by "subscription-resumed" and "replay-complete".</t>
1357c1357
<         <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a.2.3">
---
>         <section numbered="true" toc="include" removeInRFC="false" pn="section-a.2.3">
1359c1359
<           <t pn="section-appendix.a.2.3-1">A "subscription-terminated" would look like:</t>
---
>           <t pn="section-a.2.3-1">A "subscription-terminated" would look like:</t>
1362c1362
<             <sourcecode name="ex-subscription-terminated.json" type="json" markers="false" pn="section-appendix.a.2.3-2.1">
---
>             <sourcecode name="ex-subscription-terminated.json" type="json" markers="false" pn="section-a.2.3-2.1">
1371c1371
< }</sourcecode>
---
> } </sourcecode>
1373c1373
<           <t pn="section-appendix.a.2.3-3">The "subscription-suspended" is virtually identical, with "subscription-terminated" simply being replaced by "subscription-suspended".</t>
---
>           <t pn="section-a.2.3-3">The "subscription-suspended" is virtually identical, with "subscription-terminated" simply being replaced by "subscription-suspended".</t>
1376c1376
<       <section numbered="true" toc="include" removeInRFC="false" pn="section-appendix.a.3">
---
>       <section numbered="true" toc="include" removeInRFC="false" pn="section-a.3">
1378c1378
<         <t pn="section-appendix.a.3-1">This section provides an example that illustrates the method of filtering event record contents.  The example is based on the YANG notification "vrrp-protocol-error-event" as defined per the ietf-vrrp.yang module within <xref target="RFC8347" format="default" sectionFormat="of" derivedContent="RFC8347"/>.  Event records based on this specification that are generated by the publisher might appear as:</t>
---
>         <t pn="section-a.3-1">This section provides an example that illustrates the method of filtering event record contents.  The example is based on the YANG notification "vrrp-protocol-error-event" as defined per the ietf-vrrp.yang module within <xref target="RFC8347" format="default" sectionFormat="of" derivedContent="RFC8347"/>.  Event records based on this specification that are generated by the publisher might appear as:</t>
1381c1381
<           <artwork name="" type="" align="left" alt="" pn="section-appendix.a.3-2.1">
---
>           <artwork name="" type="" align="left" alt="" pn="section-a.3-2.1">
1391c1391
<         <t pn="section-appendix.a.3-3">Suppose a subscriber wanted to establish a subscription that only passes instances of event records where there is a "checksum-error" as part of a Virtual Router Redundancy Protocol (VRRP) protocol event.  Also assume the publisher places such event records into the NETCONF stream.  To get a continuous series of matching event records, the subscriber might request the application of an XPath filter against the NETCONF stream.  An "establish-subscription" RPC to meet this objective might be:</t>
---
>         <t pn="section-a.3-3">Suppose a subscriber wanted to establish a subscription that only passes instances of event records where there is a "checksum-error" as part of a Virtual Router Redundancy Protocol (VRRP) protocol event.  Also assume the publisher places such event records into the NETCONF stream.  To get a continuous series of matching event records, the subscriber might request the application of an XPath filter against the NETCONF stream.  An "establish-subscription" RPC to meet this objective might be:</t>
1394c1394
<           <artwork name="ex-establish-subscription-filter-xpath.json" type="" align="left" alt="" pn="section-appendix.a.3-4.1">
---
>           <artwork name="ex-establish-subscription-filter-xpath.json" type="" align="left" alt="" pn="section-a.3-4.1">
1406,1407c1406,1407
<         <t pn="section-appendix.a.3-5">For more examples of XPath filters, see <xref target="XPATH" format="default" sectionFormat="of" derivedContent="XPATH"/>.</t>
<         <t pn="section-appendix.a.3-6">Suppose the "establish-subscription" in <xref target="VRRP-XPATH" format="default" sectionFormat="of" derivedContent="Figure 16"/> was accepted. And suppose later a subscriber decided they wanted to broaden this subscription cover to all VRRP protocol events (i.e., not just those with a "checksum error").  The subscriber might attempt to modify the subscription in a way that replaces the XPath filter with a subtree filter that sends all VRRP protocol events to a subscriber. Such a "modify-subscription" RPC might look like:</t>
---
>         <t pn="section-a.3-5">For more examples of XPath filters, see <xref target="XPATH" format="default" sectionFormat="of" derivedContent="XPATH"/>.</t>
>         <t pn="section-a.3-6">Suppose the "establish-subscription" in <xref target="VRRP-XPATH" format="default" sectionFormat="of" derivedContent="Figure 16"/> was accepted. And suppose later a subscriber decided they wanted to broaden this subscription cover to all VRRP protocol events (i.e., not just those with a "checksum error").  The subscriber might attempt to modify the subscription in a way that replaces the XPath filter with a subtree filter that sends all VRRP protocol events to a subscriber. Such a "modify-subscription" RPC might look like:</t>
1410c1410
<           <artwork name="ex-modify-subscription-filter-subtree.json" type="" align="left" alt="" pn="section-appendix.a.3-7.1">
---
>           <artwork name="ex-modify-subscription-filter-subtree.json" type="" align="left" alt="" pn="section-a.3-7.1">
1422c1422
<         <t pn="section-appendix.a.3-8">For more examples of subtree filters, see <xref target="RFC6241" sectionFormat="comma" section="6.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc6241#section-6.4" derivedContent="RFC6241"/>.</t>
---
>         <t pn="section-a.3-8">For more examples of subtree filters, see <xref target="RFC6241" sectionFormat="comma" section="6.4" format="default" derivedLink="https://rfc-editor.org/rfc/rfc6241#section-6.4" derivedContent="RFC6241"/>.</t>