On Feb 12, 2015, at 4:37 PM, Brian Burkhalter <brian.burkhal...@oracle.com> wrote:
> Hi Paul, > > On Feb 12, 2015, at 4:37 AM, Paul Sandoz <paul.san...@oracle.com> wrote: > >> What do existing XML APIs do? > > This is a morass and I hope that someone more apt to know it well would > comment. The U+0000 null control character is always illegal though I do know > that. Yes. IIRC XML 1.1 basically allows any character except U+0000. > >> My guess from looking at your webrev APIs such as DOM allow such invalid >> characters when writing and reading? If so that would seem to be more of a >> fundamental issue with those APIs and not specifically with preferences. > > I tend to agree where the DOM does allow the characters: they should be > handled. > >> I think there should be an error if a key or value contains a the U+0000 >> character when writing out the set of property entries to XML, otherwise it >> just propagates the error to who or what is consuming that XML file. > > The problem is that on OSX and Windows prefs are not stored to XML What are they stored in? name/value pairs? > whereas on Unix they are. Is that a specification requirement? > That would make it an error to add such a value to the prefs on some > platforms but not on others. > Yes, for an interoperable format potentially read by other tools having U+0000 is a really bad idea. My inclination is if properties are written out to a text file then it should fail if a key/value contains U+0000 (Binary data should be base64 encoded in such cases.) Replacing just subtlety hides or defers the issue. Paul.