<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>I just checked how the "plaintext" version of engNET2016eb Exodus
      3:22 looks like.</p>
    <p>Whereas all the other verses are actually returned with no
      markup, this particular verse is still returned like this (using
      module-&gt;stripText()):</p>
    <p>Every woman will ask her neighbor and the one who happens to be
      staying in her house for items of silver and gold and for
      clothing. You will put these articles on your sons and daughters –
      thus you will plunder Egypt!”<font color="#3366ff"> ‘span
        class=”footnote” id=”footnote-65”’‘span class=”key”’65‘a
        href=”#note-65” class=”backref”’3:19‘/a’‘span class=”text”’
        *tn*: *Heb* “and not with a mighty hand.” This expression (וְלֹא
        בְּיָד חֲזָקָה, vÿlo’ vÿyad khazaqa) is unclear, since v. 20
        says that God will stretch out his hand and do his wonders. Some
        have taken v. 19b to refer to God’s mighty hand also, meaning
        that the king would not let them go unless a mighty hand compels
        him (NIV). The expression “mighty hand” is used of God’s
        rescuing Israel elsewhere ( Exod 6:1, 13:9, 32:11; but note also
        Num 20:20). This idea is a rather general interpretation of the
        words; it owes much to the LXX, which has “except by a mighty
        hand,” though “and not with” does not have the meaning of
        “except” or “unless” in other places. In view of these
        difficulties, others have suggested that v. 19b means “strong
        [threats]” from the Israelites (as in 4:24ff. and 5:3; see B.
        Jacob, *Exodus*, 81). This does not seem as convincing as the
        first view. Another possibility is that the phrase conveys
        Pharaoh’s point of view and intention; the Lord knows that
        Pharaoh plans to resist letting the Israelites go, regardless of
        the exercise of a strong hand against him (P. Addinall, “Exodus
        III 19B and the Interpretation of Biblical Narrative,” *VT* 49
        [1999]: 289-300; see also the construction “and not with” in Num
        12:8; 1 Sam 20:15 and elsewhere). If that is the case, v. 20
        provides an ironic and pointed contradiction to Pharaoh’s plans
        as the Lord announces the effect that his hand will have. At any
        rate, Pharaoh will have to be forced to let Israel go.</font></p>
    <p>I guess the SWORD engine is not able to filter out the markup in
      this particular case.<br>
      Using plaintext as a fallback option may not be sufficient.<br>
    </p>
    <p>Best regards,<br>
      Tobias<br>
      <br>
    </p>
    <div class="moz-cite-prefix">On 17.07.19 22:12, Tobias Klein wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:f9b624e0-f64f-b64f-e6dc-b5aa67b4abde@tklein.info">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <p>Thanks, good advice! Especially the idea about dynamically
        validating markup text and then going for the plain text version
        as a fallback. I'll think about using that option in
        node-sword-interface (Ezra Project's SWORD integration library).</p>
      <p>Best regards,<br>
        Tobias<br>
      </p>
      <div class="moz-cite-prefix">On 17.07.19 13:59, Peter Von Kaehne
        wrote:<br>
      </div>
      <blockquote type="cite"
cite="mid:trinity-47951ae7-b2a7-40de-ba13-cb8a4c1a1a79-1563364763845@3c-app-gmx-bs67">
        <meta http-equiv="content-type" content="text/html;
          charset=UTF-8">
        <div style="font-family: Verdana;font-size: 12.0px;">
          <div>1) The best way is to recognise it and either fall back
            to something sane or refuse to deal with the module without
            crashing. You could presumably if an xml chunk is delivered
            by the engine to you and is not internally valid ask the
            engine to re-render it plainly and spit out some message to
            that effect on the terminal. Then a use may be in the
            position to see this and send a bug report to whoever is
            responsible for the dodgy module.
            <div> </div>
            <div>2) CrossWire modules are for teh last 10 years or so
              always tested and validated before they are published but
              other repositories are subject to their own rules. The
              module you reference is from eBible and not CrossWire. But
              - admittedly - we have in CrossWire still a lot of old
              modules which may well have bugs which only show up
              slowly.</div>
            <div> </div>
            <div>Peter</div>
            <div> </div>
            <div> </div>
            <div> 
              <div name="quote" style="margin:10px 5px 5px 10px;
                padding:&#xA; 10px 0 10px 10px; border-left:2px solid
                #C3D9E5;&#xA; word-wrap: break-word; -webkit-nbsp-mode:
                space;&#xA; -webkit-line-break: after-white-space;">
                <div style="margin:0 0 10px 0;"><b>Gesendet:</b> Mittwoch,
                  17. Juli 2019 um 07:13 Uhr<br>
                  <b>Von:</b> "Tobias Klein" <a
                    class="moz-txt-link-rfc2396E"
                    href="mailto:contact@tklein.info"
                    moz-do-not-send="true">&lt;contact@tklein.info&gt;</a><br>
                  <b>An:</b> "SWORD Developers' Collaboration Forum" <a
                    class="moz-txt-link-rfc2396E"
                    href="mailto:sword-devel@crosswire.org"
                    moz-do-not-send="true">&lt;sword-devel@crosswire.org&gt;</a><br>
                  <b>Betreff:</b> [sword-devel] How to deal with invalid
                  markup?</div>
                <div name="quoted-content">
                  <div style="background-color: rgb(255,255,255);">
                    <p>Hi everyone,</p>
                    <p>Is there a recommended way on how to deal with
                      invalid markup (in a frontend) when using the text
                      from a Sword module?</p>
                    <p>To me invalid markup is basically invalid XML.<br>
                      You find an example below (Exodus 3:22 /
                      engNET2016eb).<br>
                      <br>
                      Are Sword modules validated with standard XML
                      validation tools before being published?</p>
                    <p>Best regards,<br>
                      Tobias<br>
                       </p>
                    <p>Module: engNET2016eb</p>
                    <p>Mark-up text of Exodus 3:22
                      (module-&gt;getRawEntry()):</p>
                    <p><font size="-1">&lt;w
                        lemma="strong:H802"&gt;Every&lt;/w&gt; &lt;w
                        lemma="strong:H802"&gt;woman&lt;/w&gt; &lt;w
                        lemma="strong:H7592"&gt;will ask&lt;/w&gt; &lt;w
                        lemma="strong:H7934"&gt;her neighbor&lt;/w&gt;
                        &lt;w lemma="strong:H1481"&gt;and the one who
                        happens to be  staying&lt;/w&gt; &lt;w
                        lemma="strong:H1004"&gt;in her house&lt;/w&gt;
                        &lt;w lemma="strong:H3627"&gt;for
                        items&lt;/w&gt; &lt;w lemma="strong:H3701"&gt;of
                        silver&lt;/w&gt; &lt;w
                        lemma="strong:H2091"&gt;and gold&lt;/w&gt; &lt;w
                        lemma="strong:H8071"&gt;and for
                        clothing&lt;/w&gt;. &lt;w
                        lemma="strong:H7760"&gt;You will put&lt;/w&gt;
                        &lt;w lemma="strong:H3627"&gt;these
                        articles&lt;/w&gt; &lt;w
                        lemma="strong:H5921"&gt;on&lt;/w&gt; &lt;w
                        lemma="strong:H1121"&gt;your sons&lt;/w&gt;
                        &lt;w lemma="strong:H1323"&gt;and
                        daughters&lt;/w&gt; &lt;w
                        lemma="strong:H5337"&gt;– thus you&lt;/w&gt;<br>
                        <br>
                        INVALID section starts here:</font></p>
                    <p><font size="-1">&lt;w
                        lemma="strong:H4713"&gt;will plunder
                        Egypt&lt;/w&gt;<b><font color="#ff0000">!” ‘</font></b>span
                        class=”footnote” id=”footnote-65”<b><font
                            color="#ff0000">’‘</font></b>span
                        class=”key”’65‘<br>
                        &lt;w lemma="strong:H7760"&gt;a&lt;/w&gt;<b><font
                            color="#ff0000"> </font></b>href=”#note-65”
                        class=”backref”’<font color="#ff0000"><b>3:19‘/a’‘</b></font>span
                        class=”text”’ &lt;hi
                        type="italic"&gt;tn&lt;/hi&gt;: &lt;hi
                        type="italic"&gt;Heb&lt;/hi&gt; “<br>
                        <br>
                        &lt;w lemma="strong:H1121"&gt;and&lt;/w&gt;
                        &lt;w lemma="strong:H1121"&gt;not&lt;/w&gt;
                        &lt;w lemma="strong:H1004"&gt;with&lt;/w&gt;
                        &lt;w lemma="strong:H7760"&gt;a&lt;/w&gt; mighty
                        hand.”<br>
                        ...</font></p>
                    _______________________________________________
                    sword-devel mailing list: <a
                      class="moz-txt-link-abbreviated"
                      href="mailto:sword-devel@crosswire.org"
                      moz-do-not-send="true">sword-devel@crosswire.org</a>
                    <a
                      href="http://www.crosswire.org/mailman/listinfo/sword-devel"
                      target="_blank" moz-do-not-send="true">http://www.crosswire.org/mailman/listinfo/sword-devel</a>
                    Instructions to unsubscribe/change your settings at
                    above page</div>
                </div>
              </div>
            </div>
          </div>
        </div>
        <br>
        <fieldset class="mimeAttachmentHeader"></fieldset>
        <pre class="moz-quote-pre" wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org" moz-do-not-send="true">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://www.crosswire.org/mailman/listinfo/sword-devel" moz-do-not-send="true">http://www.crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
      </blockquote>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <pre class="moz-quote-pre" wrap="">_______________________________________________
sword-devel mailing list: <a class="moz-txt-link-abbreviated" href="mailto:sword-devel@crosswire.org">sword-devel@crosswire.org</a>
<a class="moz-txt-link-freetext" href="http://www.crosswire.org/mailman/listinfo/sword-devel">http://www.crosswire.org/mailman/listinfo/sword-devel</a>
Instructions to unsubscribe/change your settings at above page</pre>
    </blockquote>
  </body>
</html>