[x3d-public] agreement on number of \\\\\\\\ in Java???? X3DJSAIL.

Michalis Kamburelis michalis.kambi at gmail.com
Fri Jul 28 21:25:03 PDT 2017


2017-07-29 5:39 GMT+02:00 John Carlson <yottzumm at gmail.com>:
> I woul not say that
>
> "String "with some quotes inside""
>
> is a valid SFString in XML.
>
> However,
>
> "String "with some quotes inside""
>
> is valid.
>

You refer to the end of my "corrections text" on
http://web3d.org/pipermail/x3d-public_web3d.org/2017-May/006690.html .
This part was unfortunately mangled by the mailing list software
(mailman).

In my original message I used " , not ", in many places,
including the one you point to. I'm attaching the proper version to
this mail, it's the same as I attached to my mail "[x3d-public]
Backslashes in X3D XML in SFString".

Regards,
Michalis
-------------- next part --------------
The proposed change to the specification (all to the section
http://www.web3d.org/documents/specifications/19776-1/V3.3/Part01/EncodingOfFields.html#SFString
) would be to change this part:

"""""""
  The MFString specifies zero or more SFStrings enclosed in single
quotes (e.g., '"string1" "string2"').

  NOTE  The construct

"string3"

is not a valid instance of an MFString. Such an MFString would be
properly specified as

'"string3"'
"""""""

into this:

"""""""
  The MFString specifies zero or more SFStrings, with each single
string enclosed in double quotes (e.g., "string1" "string2"). Note
that inside an XML attribute, you have to express a double quote using
the " character entity, unless you enclose a whole XML attribute
in single quotes.

  NOTE  The construct

"string3"

is not a valid instance of an MFString. Such an MFString would be
properly specified as

'"string3"'

or

'"string3"'

or

""string3""
"""""""

------------------------------------------------------------------------------
For additional clarity, I would also add more prose and examples to
explain when backslashes are needed. So I would change

"""""""
EXAMPLE 2  Two instances of the double quote are contained in the
following SFString field string:

<Text string='"He said, \"Immel did it!\""' />
"""""""

with this:

"""""""
If a string is part of an MFString, and you want this string to
contain a double-quote (for example, to actually show a double-quote
using the Text node field "string") then you have to place a backslash
before this double-quote. This rule applies regardless if you express
double-quote as " or as " . This is necessary, to avoid treating
the double-quote as a delimiter of strings on a MFString list.

Consequently, if you want a string inside MFString to contain a
backslash (for example, to actually show a backslash using the Text
node field "string") then you have to write two backslashes. This is
necessary, to avoid accidentally changing the meaning of a following
double-quote character.

EXAMPLE 2  All the following forms are correct and equivalent:

<Text string='"He said, \"Immel did it!\""' />

<Text string='"He said, \"Immel did it!\""' />

<Text string='"He said, \"Immel did it!\""' />

<Text string=""He said, \"Immel did it!\""" />
"""""""

------------------------------------------------------------------------------
""""
  SFString specifies a single string encoded as a sequence of UTF-8
octets enclosed in double quotes (e.g., "string").
""""

could be changed to

""""
  SFString specifies a single string encoded as a sequence of UTF-8
octets. It is simply the value of an XML attribute. As such, following
XML rules, it can be surrounded either in single-quotes (apostrophes)
or double quotes.

The following examples of an SFString are all valid:

"string"
'string'
"string "with some quotes inside""
'string "with some quotes inside"'
'string "with some quotes inside"'
""""


More information about the x3d-public mailing list