Re: How to correctly position breaks in mixed content?

"Trevor Nicholls [email protected]" <[email protected]> Sat, 17 Apr 2021 06:06:09 -0000
Newsgroups gmane.text.xml.xsl.general.mulberrytech
Message-ID <[email protected]>
This is a multipart message in MIME format.

------=_NextPart_000_0001_01D733B4.3DA25E60
Content-Type: text/plain;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

Thank you both

=20

cheers

T

=20

From: Geert Bormans [email protected] <[email protected]=
rrytech.com>=20
Sent: Thursday, 15 April 2021 00:48
To: xsl-list <[email protected]>
Subject: Re: [xsl] How to correctly position breaks in mixed content?

=20

then a typo occurred to me...

=20

<var type=3D"s" id=3D"ID01"/>n<superscript  type=3D"s" id=3D"ID02"/>th<supe=
rscript  type=3D"e" id=3D"ID02"><var  type=3D"r" id=3D"ID01"/>

should read

<var type=3D"s" id=3D"ID01"/>n<superscript  type=3D"s" id=3D"ID02"/>th<supe=
rscript  type=3D"e" id=3D"ID02"><var  type=3D"e" id=3D"ID01"/>

=20

=20

Met vriendelijke groeten,
Best regards,

Geert Bormans


----- Op 14 apr 2021 om 14:40 schreef Wendell Piez [email protected] <=
mailto:[email protected]>  <[email protected] <m=
ailto:[email protected]> >:



Hi,

Yep, this is essentially an overlap problem.

=20

What a wonderful thing, that we have workable solutions. :->

=20

Cheers, Wendell

=20

=20

On Wed, Apr 14, 2021 at 5:55 AM Geert Bormans [email protected] <ma=
ilto:[email protected]>  <[email protected] <=
mailto:[email protected]> > wrote:

Hi Trevor,

=20

One option would be to replace the mixed content elements by empty elements

<var>n<superscript>th</superscript></var>

to become

<var type=3D"s" id=3D"ID01"/>n<superscript  type=3D"s" id=3D"ID02"/>th<supe=
rscript  type=3D"e" id=3D"ID02"><var  type=3D"r" id=3D"ID01"/>

if so all your characters are siblings, so can do a line breaking algorithm=
, preserving the empty elements

after that you simply reconstruct the elements

=20

Met vriendelijke groeten,
Best regards,

Geert Bormans


----- Op 14 apr 2021 om 11:46 schreef Trevor Nicholls trevor@castingthevoid=
.com <mailto:[email protected]>  <[email protected]=
ch.com <mailto:[email protected]> >:



NB currently XSL 2.0

=20

I'm struggling with what I thought would be a simple enough problem:

=20

given content like this

=20

"<code>Mixed content, mainly text but with some text such as <var>variable =
names</var> wrapped in elements, sometimes nested like a reference to the <=
var>n<superscript>th</superscript></var> occurrence.</code>"

=20

and a constraint that code should be rendered within a fixed width box, I n=
eed to come up with a template which will process the <code> element and tr=
ansform it into its word-wrapped equivalent.

=20

I don't need to concern myself with character sizes or styles; the output o=
f this transformation will always be rendered in a fixed-width font.

=20

I can write something which works fine if a <code> element is simple text -=
 but the requirement is for this to work with mixed content too. In the abo=
ve example, if the constraint is that the line must wrap at or before 64 ch=
aracters, the first break comes in the middle of the first <var>.

=20

Assuming that the <code> example above is the current element, what I am tr=
ying to write is a template

=20

<xsl:template name=3D"wordwrap">

  <xsl:param name=3D"input" select=3D"." />

  <xsl:param name=3D"linelen" select=3D"64" />

=E2=80=A6

</xsl:template>

=20

that will output

=20

"Mixed content, mainly text but with some text such as <var>variable</var><=
wordwrap/>

<var>names</var> wrapped in elements, sometimes nexted like a reference to<=
wordwrap/>

the <var>n<superscript>th</superscript></var> occurrence."

=20

Can anyone offer me some pointers as to how I should implement this?

=20

Cheers

T

XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>=20=20

EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/554170>  (by =
email)=20

=20

XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>=20=20

EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/174322>  (by =
email)=20



--=20

...Wendell Piez... ...wendell -at- nist -dot- gov...
...wendellpiez.com... ...pellucidliterature.org... ...pausepress.org...
...github.com/wendellpiez. <http://github.com/wendellpiez.> .. ...gitlab.co=
ko.foundation/wendell...=20

XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>=20=20

EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/554170>  (by =
email)=20

=20

XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>=20=20

EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/1349719>  (by=
 email <> )=20
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/3329386
or by email: [email protected]
--~--

------=_NextPart_000_0001_01D733B4.3DA25E60
Content-Type: text/html;
	charset="utf-8"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40"><head><meta http-equiv=3DContent-Type content=
=3D"text/html; charset=3Dutf-8"><meta name=3DGenerator content=3D"Microsoft=
 Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin:0cm;
	font-size:11.0pt;
	font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
	{mso-style-priority:99;
	color:blue;
	text-decoration:underline;}
span.EmailStyle20
	{mso-style-type:personal-reply;
	font-family:"Calibri",sans-serif;
	color:windowtext;}
.MsoChpDefault
	{mso-style-type:export-only;
	font-size:10.0pt;}
@page WordSection1
	{size:612.0pt 792.0pt;
	margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
	{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]--></head><body lang=3DEN-NZ link=3Dblue vli=
nk=3Dpurple style=3D'word-wrap:break-word'><div class=3DWordSection1><p cla=
ss=3DMsoNormal><span style=3D'mso-fareast-language:EN-US'>Thank you both<o:=
p></o:p></span></p><p class=3DMsoNormal><span style=3D'mso-fareast-language=
:EN-US'><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span style=3D'mso=
-fareast-language:EN-US'>cheers<o:p></o:p></span></p><p class=3DMsoNormal><=
span style=3D'mso-fareast-language:EN-US'>T<o:p></o:p></span></p><p class=
=3DMsoNormal><span style=3D'mso-fareast-language:EN-US'><o:p>&nbsp;</o:p></=
span></p><div><div style=3D'border:none;border-top:solid #E1E1E1 1.0pt;padd=
ing:3.0pt 0cm 0cm 0cm'><p class=3DMsoNormal><b><span lang=3DEN-US>From:</sp=
an></b><span lang=3DEN-US> Geert Bormans [email protected] &lt;xsl-=
[email protected]&gt; <br><b>Sent:</b> Thursday, 15 April=
 2021 00:48<br><b>To:</b> xsl-list &lt;[email protected]&gt;<=
br><b>Subject:</b> Re: [xsl] How to correctly position breaks in mixed cont=
ent?<o:p></o:p></span></p></div></div><p class=3DMsoNormal><o:p>&nbsp;</o:p=
></p><div><div><p class=3DMsoNormal><span style=3D'font-size:10.0pt;font-fa=
mily:"Arial",sans-serif;color:black'>then a typo occurred to me...<o:p></o:=
p></span></p></div><div><p class=3DMsoNormal><span style=3D'font-size:10.0p=
t;font-family:"Arial",sans-serif;color:black'><o:p>&nbsp;</o:p></span></p><=
/div><div><p class=3DMsoNormal><span style=3D'color:black;background:white'=
>&lt;var type=3D&quot;s&quot; id=3D&quot;ID01&quot;/&gt;n&lt;superscript &n=
bsp;type=3D&quot;s&quot; id=3D&quot;ID02&quot;/&gt;th&lt;superscript&nbsp;&=
nbsp;type=3D&quot;e&quot; id=3D&quot;ID02&quot;&gt;&lt;var&nbsp;&nbsp;type=
=3D&quot;<strong><span style=3D'font-family:"Calibri",sans-serif'>r</span><=
/strong>&quot; id=3D&quot;ID01&quot;/&gt;</span><span style=3D'font-size:10=
.0pt;font-family:"Arial",sans-serif;color:black'><o:p></o:p></span></p><div=
><p class=3DMsoNormal><span style=3D'font-size:10.0pt;font-family:"Arial",s=
ans-serif;color:black'>should read<o:p></o:p></span></p></div><div><p class=
=3DMsoNormal><span style=3D'color:black;background:white'>&lt;var type=3D&q=
uot;s&quot; id=3D&quot;ID01&quot;/&gt;n&lt;superscript &nbsp;type=3D&quot;s=
&quot; id=3D&quot;ID02&quot;/&gt;th&lt;superscript&nbsp;&nbsp;type=3D&quot;=
e&quot; id=3D&quot;ID02&quot;&gt;&lt;var&nbsp;&nbsp;type=3D&quot;<strong><s=
pan style=3D'font-family:"Calibri",sans-serif'>e</span></strong>&quot; id=
=3D&quot;ID01&quot;/&gt;</span><span style=3D'font-size:10.0pt;font-family:=
"Arial",sans-serif;color:black'><o:p></o:p></span></p><div><p class=3DMsoNo=
rmal><span style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:b=
lack'><o:p>&nbsp;</o:p></span></p></div></div></div><div><p class=3DMsoNorm=
al><span style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:bla=
ck'><o:p>&nbsp;</o:p></span></p></div><div><div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:black'>Met v=
riendelijke groeten,<br>Best regards,<br><br>Geert Bormans<o:p></o:p></span=
></p></div></div><div><p class=3DMsoNormal><span style=3D'font-size:10.0pt;=
font-family:"Arial",sans-serif;color:black'><br>----- Op 14 apr 2021 om 14:=
40 schreef Wendell Piez <a href=3D"mailto:[email protected]">wapiez@we=
ndellpiez.com</a> &lt;<a href=3D"mailto:[email protected]=
.com">[email protected]</a>&gt;:<br><br><o:p></o:p></=
span></p></div><div><div><p class=3DMsoNormal><span style=3D'font-size:10.0=
pt;font-family:"Arial",sans-serif;color:black'>Hi,<o:p></o:p></span></p><di=
v><p class=3DMsoNormal><span style=3D'font-size:10.0pt;font-family:"Arial",=
sans-serif;color:black'>Yep, this is essentially an overlap&nbsp;problem.<o=
:p></o:p></span></p></div><p class=3DMsoNormal><span style=3D'font-size:10.=
0pt;font-family:"Arial",sans-serif;color:black'><o:p>&nbsp;</o:p></span></p=
><div><p class=3DMsoNormal><span style=3D'font-size:10.0pt;font-family:"Ari=
al",sans-serif;color:black'>What a wonderful thing, that we have workable s=
olutions. :-&gt;<o:p></o:p></span></p></div><p class=3DMsoNormal><span styl=
e=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:black'><o:p>&nbs=
p;</o:p></span></p><div><p class=3DMsoNormal><span style=3D'font-size:10.0p=
t;font-family:"Arial",sans-serif;color:black'>Cheers, Wendell<o:p></o:p></s=
pan></p></div><p class=3DMsoNormal><span style=3D'font-size:10.0pt;font-fam=
ily:"Arial",sans-serif;color:black'><o:p>&nbsp;</o:p></span></p></div><p cl=
ass=3DMsoNormal><span style=3D'font-size:10.0pt;font-family:"Arial",sans-se=
rif;color:black'><o:p>&nbsp;</o:p></span></p><div><div><p class=3DMsoNormal=
><span style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:black=
'>On Wed, Apr 14, 2021 at 5:55 AM Geert Bormans <a href=3D"mailto:geert@gbo=
rmans.telenet.be" target=3D"_blank">[email protected]</a> &lt;<a hr=
ef=3D"mailto:[email protected]" target=3D"_blank">xsl=
[email protected]</a>&gt; wrote:<o:p></o:p></span></p></=
div><blockquote style=3D'border:none;border-left:solid #CCCCCC 1.0pt;paddin=
g:0cm 0cm 0cm 6.0pt;margin-left:4.8pt;margin-right:0cm'><div><div><div><p c=
lass=3DMsoNormal><span style=3D'font-size:10.0pt;font-family:"Arial",sans-s=
erif;color:black'>Hi Trevor,<o:p></o:p></span></p></div><p class=3DMsoNorma=
l><span style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:blac=
k'><o:p>&nbsp;</o:p></span></p><div><p class=3DMsoNormal><span style=3D'fon=
t-size:10.0pt;font-family:"Arial",sans-serif;color:black'>One option would =
be to replace the mixed content elements by empty elements<o:p></o:p></span=
></p></div><div><p class=3DMsoNormal><span style=3D'color:black;background:=
white'>&lt;var&gt;n&lt;superscript&gt;th&lt;/superscript&gt;&lt;/var&gt;</s=
pan><span style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:bl=
ack'><o:p></o:p></span></p><div><p class=3DMsoNormal><span style=3D'font-si=
ze:10.0pt;font-family:"Arial",sans-serif;color:black'>to become<o:p></o:p><=
/span></p></div><div><p class=3DMsoNormal><span style=3D'color:black;backgr=
ound:white'>&lt;var type=3D&quot;s&quot; id=3D&quot;ID01&quot;/&gt;n&lt;sup=
erscript &nbsp;type=3D&quot;s&quot; id=3D&quot;ID02&quot;/&gt;th&lt;supersc=
ript&nbsp;&nbsp;type=3D&quot;e&quot; id=3D&quot;ID02&quot;&gt;&lt;var&nbsp;=
&nbsp;type=3D&quot;r&quot; id=3D&quot;ID01&quot;/&gt;</span><span style=3D'=
font-size:10.0pt;font-family:"Arial",sans-serif;color:black'><o:p></o:p></s=
pan></p><div><p class=3DMsoNormal><span style=3D'font-size:10.0pt;font-fami=
ly:"Arial",sans-serif;color:black'>if so all your characters are siblings, =
so can do a line breaking algorithm, preserving the empty elements<o:p></o:=
p></span></p></div><div><p class=3DMsoNormal><span style=3D'font-size:10.0p=
t;font-family:"Arial",sans-serif;color:black'>after that you simply reconst=
ruct the elements<o:p></o:p></span></p></div></div></div><p class=3DMsoNorm=
al><span style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:bla=
ck'><o:p>&nbsp;</o:p></span></p><div><div><p class=3DMsoNormal><span style=
=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:black'>Met vriend=
elijke groeten,<br>Best regards,<br><br>Geert Bormans<o:p></o:p></span></p>=
</div></div><div><p class=3DMsoNormal><span style=3D'font-size:10.0pt;font-=
family:"Arial",sans-serif;color:black'><br>----- Op 14 apr 2021 om 11:46 sc=
hreef Trevor Nicholls <a href=3D"mailto:[email protected]" target=
=3D"_blank">[email protected]</a> &lt;<a href=3D"mailto:xsl-list-se=
[email protected]" target=3D"_blank">[email protected]=
errytech.com</a>&gt;:<br><br><o:p></o:p></span></p></div><div><div><p class=
=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><=
span style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:black'>=
NB currently XSL 2.0<o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso=
-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style=3D'font-size:1=
0.0pt;font-family:"Arial",sans-serif;color:black'>&nbsp;<o:p></o:p></span><=
/p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-=
alt:auto'><span style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;co=
lor:black'>I'm struggling with what I thought would be a simple enough prob=
lem:<o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:=
auto;mso-margin-bottom-alt:auto'><span style=3D'font-size:10.0pt;font-famil=
y:"Arial",sans-serif;color:black'>&nbsp;<o:p></o:p></span></p><p class=3DMs=
oNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span =
style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:black'>given=
 content like this<o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-m=
argin-top-alt:auto;mso-margin-bottom-alt:auto'><span style=3D'font-size:10.=
0pt;font-family:"Arial",sans-serif;color:black'>&nbsp;<o:p></o:p></span></p=
><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-al=
t:auto'><span style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;colo=
r:black'>&quot;&lt;code&gt;Mixed content, mainly text but with some text su=
ch as &lt;var&gt;variable names&lt;/var&gt; wrapped in elements, sometimes =
nested like a reference to the &lt;var&gt;n&lt;superscript&gt;th&lt;/supers=
cript&gt;&lt;/var&gt; occurrence.&lt;/code&gt;&quot;<o:p></o:p></span></p><=
p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:=
auto'><span style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:=
black'>&nbsp;<o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin=
-top-alt:auto;mso-margin-bottom-alt:auto'><span style=3D'font-size:10.0pt;f=
ont-family:"Arial",sans-serif;color:black'>and a constraint that code shoul=
d be rendered within a fixed width box, I need to come up with a template w=
hich will process the &lt;code&gt; element and transform it into its word-w=
rapped equivalent.<o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-m=
argin-top-alt:auto;mso-margin-bottom-alt:auto'><span style=3D'font-size:10.=
0pt;font-family:"Arial",sans-serif;color:black'>&nbsp;<o:p></o:p></span></p=
><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-al=
t:auto'><span style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;colo=
r:black'>I don't need to concern myself with character sizes or styles; the=
 output of this transformation will always be rendered in a fixed-width fon=
t.<o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:au=
to;mso-margin-bottom-alt:auto'><span style=3D'font-size:10.0pt;font-family:=
"Arial",sans-serif;color:black'>&nbsp;<o:p></o:p></span></p><p class=3DMsoN=
ormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span st=
yle=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:black'>I can w=
rite something which works fine if a &lt;code&gt; element is simple text - =
but the requirement is for this to work with mixed content too. In the abov=
e example, if the constraint is that the line must wrap at or before 64 cha=
racters, the first break comes in the middle of the first &lt;var&gt;.<o:p>=
</o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-=
margin-bottom-alt:auto'><span style=3D'font-size:10.0pt;font-family:"Arial"=
,sans-serif;color:black'>&nbsp;<o:p></o:p></span></p><p class=3DMsoNormal s=
tyle=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style=3D'=
font-size:10.0pt;font-family:"Arial",sans-serif;color:black'>Assuming that =
the &lt;code&gt; example above is the current element, what I am trying to =
write is a template<o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-=
margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style=3D'font-size:10=
.0pt;font-family:"Arial",sans-serif;color:black'>&nbsp;<o:p></o:p></span></=
p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-a=
lt:auto'><span style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;col=
or:black'>&lt;xsl:template name=3D&quot;wordwrap&quot;&gt;<o:p></o:p></span=
></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-botto=
m-alt:auto'><span style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;=
color:black'>&nbsp; &lt;xsl:param name=3D&quot;input&quot; select=3D&quot;.=
&quot; /&gt;<o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-=
top-alt:auto;mso-margin-bottom-alt:auto'><span style=3D'font-size:10.0pt;fo=
nt-family:"Arial",sans-serif;color:black'>&nbsp; &lt;xsl:param name=3D&quot=
;linelen&quot; select=3D&quot;64&quot; /&gt;<o:p></o:p></span></p><p class=
=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><=
span style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:black'>=
=E2=80=A6<o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top=
-alt:auto;mso-margin-bottom-alt:auto'><span style=3D'font-size:10.0pt;font-=
family:"Arial",sans-serif;color:black'>&lt;/xsl:template&gt;<o:p></o:p></sp=
an></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-bot=
tom-alt:auto'><span style=3D'font-size:10.0pt;font-family:"Arial",sans-seri=
f;color:black'>&nbsp;<o:p></o:p></span></p><p class=3DMsoNormal style=3D'ms=
o-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style=3D'font-size:=
10.0pt;font-family:"Arial",sans-serif;color:black'>that will output<o:p></o=
:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-mar=
gin-bottom-alt:auto'><span style=3D'font-size:10.0pt;font-family:"Arial",sa=
ns-serif;color:black'>&nbsp;<o:p></o:p></span></p><p class=3DMsoNormal styl=
e=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style=3D'fon=
t-size:10.0pt;font-family:"Arial",sans-serif;color:black'>&quot;Mixed conte=
nt, mainly text but with some text such as &lt;var&gt;variable&lt;/var&gt;&=
lt;wordwrap/&gt;<o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-mar=
gin-top-alt:auto;mso-margin-bottom-alt:auto'><span style=3D'font-size:10.0p=
t;font-family:"Arial",sans-serif;color:black'>&lt;var&gt;names&lt;/var&gt; =
wrapped in elements, sometimes nexted like a reference to&lt;wordwrap/&gt;<=
o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;=
mso-margin-bottom-alt:auto'><span style=3D'font-size:10.0pt;font-family:"Ar=
ial",sans-serif;color:black'>the &lt;var&gt;n&lt;superscript&gt;th&lt;/supe=
rscript&gt;&lt;/var&gt; occurrence.&quot;<o:p></o:p></span></p><p class=3DM=
soNormal style=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span=
 style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:black'>&nbs=
p;<o:p></o:p></span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:au=
to;mso-margin-bottom-alt:auto'><span style=3D'font-size:10.0pt;font-family:=
"Arial",sans-serif;color:black'>Can anyone offer me some pointers as to how=
 I should implement this?<o:p></o:p></span></p><p class=3DMsoNormal style=
=3D'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style=3D'font=
-size:10.0pt;font-family:"Arial",sans-serif;color:black'>&nbsp;<o:p></o:p><=
/span></p><p class=3DMsoNormal style=3D'mso-margin-top-alt:auto;mso-margin-=
bottom-alt:auto'><span style=3D'font-size:10.0pt;font-family:"Arial",sans-s=
erif;color:black'>Cheers<o:p></o:p></span></p><p class=3DMsoNormal style=3D=
'mso-margin-top-alt:auto;mso-margin-bottom-alt:auto'><span style=3D'font-si=
ze:10.0pt;font-family:"Arial",sans-serif;color:black'>T<o:p></o:p></span></=
p></div><div><div style=3D'border:none;border-top:solid black 1.0pt;padding=
:4.0pt 0cm 0cm 0cm;margin-top:5.0pt;margin-bottom:5.0pt'><p class=3DMsoNorm=
al align=3Dcenter style=3D'text-align:center;background:#DDDDDD'><span styl=
e=3D'font-size:7.5pt;font-family:"Arial",sans-serif;color:#888888'><a href=
=3D"http://www.mulberrytech.com/xsl/xsl-list" target=3D"_blank">XSL-List in=
fo and archive</a> <o:p></o:p></span></p><p class=3DMsoNormal align=3Dcente=
r style=3D'text-align:center;background:#DDDDDD'><span style=3D'font-size:7=
.5pt;font-family:"Arial",sans-serif;color:#888888'><a href=3D"http://lists.=
mulberrytech.com/unsub/xsl-list/554170" target=3D"_blank">EasyUnsubscribe</=
a> (by email) <o:p></o:p></span></p></div></div><p class=3DMsoNormal><span =
style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:black'><o:p>=
&nbsp;</o:p></span></p></div></div></div><div><div style=3D'border:none;bor=
der-top:solid black 1.0pt;padding:4.0pt 0cm 0cm 0cm;margin-top:5.0pt;margin=
-bottom:5.0pt'><p class=3DMsoNormal align=3Dcenter style=3D'text-align:cent=
er;background:#DDDDDD'><span style=3D'font-size:7.5pt;font-family:"Arial",s=
ans-serif;color:#888888'><a href=3D"http://www.mulberrytech.com/xsl/xsl-lis=
t" target=3D"_blank">XSL-List info and archive</a> <o:p></o:p></span></p><p=
 class=3DMsoNormal align=3Dcenter style=3D'text-align:center;background:#DD=
DDDD'><span style=3D'font-size:7.5pt;font-family:"Arial",sans-serif;color:#=
888888'><a href=3D"http://lists.mulberrytech.com/unsub/xsl-list/174322" tar=
get=3D"_blank">EasyUnsubscribe</a> (<a href=3D"" target=3D"_blank">by email=
</a>) <o:p></o:p></span></p></div></div></blockquote></div><p class=3DMsoNo=
rmal><span style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:b=
lack'><br clear=3Dall><br>-- <o:p></o:p></span></p><div><p class=3DMsoNorma=
l><span style=3D'font-size:10.0pt;font-family:"Arial",sans-serif;color:blac=
k'>...Wendell Piez... ...wendell -at- nist -dot- gov...<br>...wendellpiez.c=
om... ...pellucidliterature.org... ...pausepress.org...<br>...<a href=3D"ht=
tp://github.com/wendellpiez." target=3D"_blank">github.com/wendellpiez.</a>=
.. ...gitlab.coko.foundation/wendell... <o:p></o:p></span></p></div><div><d=
iv style=3D'border:none;border-top:solid black 1.0pt;padding:4.0pt 0cm 0cm =
0cm;margin-top:5.0pt;margin-bottom:5.0pt'><p class=3DMsoNormal align=3Dcent=
er style=3D'text-align:center;background:#DDDDDD'><span style=3D'font-size:=
7.5pt;font-family:"Arial",sans-serif;color:#888888'><a href=3D"http://www.m=
ulberrytech.com/xsl/xsl-list" target=3D"_blank">XSL-List info and archive</=
a> <o:p></o:p></span></p><p class=3DMsoNormal align=3Dcenter style=3D'text-=
align:center;background:#DDDDDD'><span style=3D'font-size:7.5pt;font-family=
:"Arial",sans-serif;color:#888888'><a href=3D"http://lists.mulberrytech.com=
/unsub/xsl-list/554170" target=3D"_blank">EasyUnsubscribe</a> (<a href=3D""=
 target=3D"_blank">by email</a>) <o:p></o:p></span></p></div></div><p class=
=3DMsoNormal><span style=3D'font-size:10.0pt;font-family:"Arial",sans-serif=
;color:black'><o:p>&nbsp;</o:p></span></p></div></div><div><div style=3D'bo=
rder:none;border-top:solid black 1.0pt;padding:4.0pt 0cm 0cm 0cm;margin-top=
:5.0pt;margin-bottom:5.0pt'><p class=3DMsoNormal align=3Dcenter style=3D'te=
xt-align:center;background:#DDDDDD'><span style=3D'font-size:7.5pt;font-fam=
ily:"Arial",sans-serif;color:#888888'><a href=3D"http://www.mulberrytech.co=
m/xsl/xsl-list">XSL-List info and archive</a> <o:p></o:p></span></p><p clas=
s=3DMsoNormal align=3Dcenter style=3D'text-align:center;background:#DDDDDD'=
><span style=3D'font-size:7.5pt;font-family:"Arial",sans-serif;color:#88888=
8'><a href=3D"http://lists.mulberrytech.com/unsub/xsl-list/1349719">EasyUns=
ubscribe</a> (<a href=3D"">by email</a>) <o:p></o:p></span></p></div></div>=
</div></body></html>
<div><!-- begin bl.html.trailer -->
<div style=3D"border-top:1px solid black; background-color: #dddddd;
color: #888888; font-size: smaller; padding: 5px; text-align: center;
font-family: arial,verdana,arial,sans-serif; margin-top:1em; clear:
both; margin: auto">
<a href=3D"http://www.mulberrytech.com/xsl/xsl-list">
XSL-List info and archive</a>
<div style=3D"text-align:center;">
<a style=3D"color: blue;"
  href=3D"http://lists.mulberrytech.com/unsub/xsl-list/3329386"
>EasyUnsubscribe</a>
(<a style=3D"color: blue;"
href=3D"mailto:[email protected]?subject=3Dremove"
>by email</a>)
</div>
</div>
<!-- end bl.html.trailer --></div>

------=_NextPart_000_0001_01D733B4.3DA25E60--