<div dir="ltr">Hi,<div><br></div><div>I realize I am coming pretty late to the party here, but I&#39;ll chime in anyway. &nbsp;At SCEDC (the archive for the Southern California Seismic Network), we represent our empty location codes with two blank spaces as well. &nbsp;I suspect the same is done at the Northern California Earthquake Data Center.</div>
<div><br></div><div>There are great arguments here for each of the options presented, but I think unless we decide to make location id optional we should not use an empty string to denote an unset location id in StationXML. &nbsp;I think there is enough variety in how an empty string is treated in different programming languages and databases to be problematic. &nbsp;From some databases&#39; perspectives, you really might as well make it null at that point.</div>
<div><br></div><div>So I would say, if location id is required, use a two character substitution; my personal preference is two spaces as that seems to be the convention (although it ain&#39;t pretty) - and we should consider in a future version of stationXML making the location id optional.</div>
<div><br></div><div><br></div><div>Ellen</div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jul 31, 2014 at 5:59 AM, Philip Crotwell <span dir="ltr">&lt;<a href="mailto:crotwell@seis.sc.edu" target="_blank">crotwell@seis.sc.edu</a>&gt;</span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Yet another data point, going all the way back to vol 1 issue 1 of the<br>
DMC newsletter introducing location ids:<br>
<br>
&quot;The Location Identifier is a two character code that, when used in<br>
conjunction with the other data specifiers, uniquely identifies a data<br>
stream.&quot;<br>
and<br>
&quot;Historically, within a SEED volume, the Location Identifier was left<br>
&ldquo;blank&rdquo; (consisted of two spaces).&quot;<br>
and<br>
&quot;GSN Use of Location Identifiers<br>
Valid characters for location identifiers are [space, 0-9, A-Z][space,<br>
0-9, A-Z]. (So space-space is a legitimate Location Identifier.) &quot;<br>
<br>
<a href="http://www.iris.edu/ds/newsletter/vol1/no1/specification-of-seismograms-the-location-identifier/" target="_blank">http://www.iris.edu/ds/newsletter/vol1/no1/specification-of-seismograms-the-location-identifier/</a><br>

<br>
>From this it seems that &nbsp;location id was intended to be exactly 2<br>
characters, not zero or two. My feeling is that we have a long<br>
tradition of the location id being &quot;space-space&quot; and not null or<br>
empty. Personally I really dislike space-space, but the only thing I<br>
dislike more than space-space is empty.<br>
<span class="HOEnZb"><font color="#888888"><br>
Philip<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Thu, Jul 31, 2014 at 7:18 AM, Philip Crotwell &lt;<a href="mailto:crotwell@seis.sc.edu">crotwell@seis.sc.edu</a>&gt; wrote:<br>
&gt; Hi<br>
&gt;<br>
&gt; Just another data point, Earthworm, which is widely used by regional<br>
&gt; networks globally, has long had the &quot;dash dash is the same as space<br>
&gt; space&quot; convention. So dash dash is not something pulled out of thin<br>
&gt; air, it is how at least I do things already.<br>
&gt;<br>
&gt; And this shows that it is fairly common (if not technically correct)<br>
&gt; for users to regard space-space as the location id instead of<br>
&gt; regarding it as null with 2 spaces for padding. My guess is that very<br>
&gt; few users are aware of this, and even as someone who has been writing<br>
&gt; seismic software for a couple of decades I still think of the location<br>
&gt; id as space-space, not null.<br>
&gt;<br>
&gt; <a href="http://www.isti2.com/ew/PROGRAMMER/location_codes/EW_Loc_policy.txt" target="_blank">http://www.isti2.com/ew/PROGRAMMER/location_codes/EW_Loc_policy.txt</a><br>
&gt;<br>
&gt; Philip<br>
&gt;<br>
&gt;<br>
&gt; On Thu, Jul 31, 2014 at 6:18 AM, Chad Trabant &lt;<a href="mailto:chad@iris.washington.edu">chad@iris.washington.edu</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Thanks Philip, I think you have outlined the issues well.<br>
&gt;&gt;<br>
&gt;&gt; Regarding issue #1, I strongly feel that we need to choose one<br>
&gt;&gt; representation, the sooner we stop creating incompatible metadata the<br>
&gt;&gt; better.<br>
&gt;&gt;<br>
&gt;&gt; Regarding issue #2:<br>
&gt;&gt;<br>
&gt;&gt; &nbsp;b) two spaces=&quot; &nbsp;&quot;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; This is what IRIS currently does, not strictly SEED but avoids empty<br>
&gt;&gt; identifiers.<br>
&gt;&gt;<br>
&gt;&gt; &nbsp;c) two dashes=&quot;--&quot;.<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; This would require work and continued mapping, the mapping is clear between<br>
&gt;&gt; SEED-based holdings and StationXML. &nbsp;SEED headers and data records could<br>
&gt;&gt; also be considered, &nbsp;but is a bigger can of worms.<br>
&gt;&gt;<br>
&gt;&gt; &nbsp;a) empty=&quot;&quot;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; This is possibly the most straight forward mapping of SEED information, but<br>
&gt;&gt; leaves us with an empty string identifier.<br>
&gt;&gt;<br>
&gt;&gt; Below are a few of the issues we note regarding empty identifiers<br>
&gt;&gt;<br>
&gt;&gt; 1) They are too similar to &quot;unknown&quot; (which results in potential ambiguity<br>
&gt;&gt; where channels are only differentiated by location ID):<br>
&gt;&gt;<br>
&gt;&gt; &nbsp; a) In many languages an empty string evaluates to false; if, for example,<br>
&gt;&gt; when program is testing for and then extracting a value from an XML document<br>
&gt;&gt; parsed into a structure/object it could appear as if the value was not<br>
&gt;&gt; present. &nbsp;Of course the coding in probably every language can be done to<br>
&gt;&gt; avoid such a false negative, but it is a pitfall that we would be asking all<br>
&gt;&gt; future users and coders to know about.<br>
&gt;&gt;<br>
&gt;&gt; &nbsp; b) In XPath (the query language for XSLT), which is used to search or<br>
&gt;&gt; translate XML, the matching of a string attribute usually uses the string()<br>
&gt;&gt; function. &nbsp;Specifying the string attribute to match when the attribute has a<br>
&gt;&gt; value is straightforward, when trying to match the empty string the query is<br>
&gt;&gt; for NOT string. &nbsp;In the boolean functions of XPath &quot;a string is true if and<br>
&gt;&gt; only if its length is non-zero&quot;<br>
&gt;&gt; (<a href="http://www.w3.org/TR/xpath/#function-boolean" target="_blank">http://www.w3.org/TR/xpath/#function-boolean</a>). &nbsp;So in XPath, hardly a<br>
&gt;&gt; fringe technology, an empty string is not just another kind of string but an<br>
&gt;&gt; anomoly.<br>
&gt;&gt;<br>
&gt;&gt; &nbsp; c) In JavaScript the getAttribute() method returns the same value whether<br>
&gt;&gt; the attribute was an empty string or unspecified. &nbsp;The method is no longer<br>
&gt;&gt; recommended but illustrates that such thinking is not limited to niche<br>
&gt;&gt; projects.<br>
&gt;&gt;<br>
&gt;&gt; 2) Organizing data in structures such as a nested hash is pretty common:<br>
&gt;&gt; %{net}{sta}{loc}{chan} = &quot;some lvalue&quot; (sorry for the Perl). &nbsp;The empty<br>
&gt;&gt; identifier as a key works in some languages but it is obtuse and unclear.<br>
&gt;&gt; I&#39;m sure there are many other data structures that would use location by<br>
&gt;&gt; itself as a key.<br>
&gt;&gt;<br>
&gt;&gt; 3) Empty identifiers are difficult to specify on the command line, URLs,<br>
&gt;&gt; etc. and non-obvious many other places such as GUI fields. &nbsp;We have largely<br>
&gt;&gt; addressed this issue for FDSN web services (at the DMC for other mechanisms<br>
&gt;&gt; as well) by making &quot;--&quot; a synonym for the empty location ID. &nbsp;In other words<br>
&gt;&gt; we are already mapping &quot;--&quot; into the empty location ID for requests and<br>
&gt;&gt; users are learning this association. &nbsp;A further adoption of the synonym into<br>
&gt;&gt; the metadata would solve many of these problems.<br>
&gt;&gt;<br>
&gt;&gt; 4) While it is certainly not the FDSN&#39;s task to define data formats outside<br>
&gt;&gt; of its purview, the adoption or matching of the core channel naming fields<br>
&gt;&gt; in other formats is certainly in the FDSN&#39;s best interest. &nbsp;This has been<br>
&gt;&gt; happening for a long time already (ISF/IASPEI, GSE, etc.). &nbsp;The potentially<br>
&gt;&gt; empty (optional?) location ID could make such adoption harder as it is an<br>
&gt;&gt; wrinkle, especially for space delimited formats. &nbsp;I believe these broader<br>
&gt;&gt; implications deserve some consideration.<br>
&gt;&gt;<br>
&gt;&gt; I&#39;m sure most developers could come up with solutions to the technical<br>
&gt;&gt; problems, but an empty identifier leaves the unfortunate wrinkles for all<br>
&gt;&gt; future users and coders.<br>
&gt;&gt;<br>
&gt;&gt; Here is an example of someone that was confused by current metadata, I&#39;ll<br>
&gt;&gt; bet if there was a value in the locationCode it would have been easier:<br>
&gt;&gt; <a href="https://stackoverflow.com/questions/19348855/checking-for-empty-attributes-while-parsing-an-xml-file" target="_blank">https://stackoverflow.com/questions/19348855/checking-for-empty-attributes-while-parsing-an-xml-file</a><br>

&gt;&gt;<br>
&gt;&gt; There is a chance we will end up with the empty location identifier, but the<br>
&gt;&gt; considerations should go beyond an assumption that an empty string is the<br>
&gt;&gt; only choice.<br>
&gt;&gt;<br>
&gt;&gt; Since an empty location field in SEED essentially means unset, perhaps we<br>
&gt;&gt; should consider making the locationCode attribute optional and leaving it<br>
&gt;&gt; out of the XML when it is empty in SEED. &nbsp;In this line of thinking, the<br>
&gt;&gt; empty string is just a hack to include a required attribute when in fact<br>
&gt;&gt; there is nothing to include. &nbsp;For me the &quot;unset&quot; aspect is unsettlingly<br>
&gt;&gt; similar to &quot;unknown&quot;, but it&#39;s an idea preferred by at least one engineer at<br>
&gt;&gt; the DMC.<br>
&gt;&gt;<br>
&gt;&gt; Chad<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Jul 28, 2014, at 6:37 AM, Philip Crotwell &lt;<a href="mailto:crotwell@seis.sc.edu">crotwell@seis.sc.edu</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi<br>
&gt;&gt;<br>
&gt;&gt; Being on the cheap side of the Atlantic, I&#39;ll save us $0.00068 and<br>
&gt;&gt; make a stab at the underlying issue. :)<br>
&gt;&gt;<br>
&gt;&gt; Here, with lots of stuff cut out, is how a channel is &quot;identified&quot; in<br>
&gt;&gt; stationXML via the fdsn station web service at the IRIS DMC,<br>
&gt;&gt; <a href="http://service.iris.edu/fdsnws/station/1/query?net=GE&amp;sta=UGM&amp;cha=BHZ&amp;level=channel&amp;format=xml&amp;nodata=404" target="_blank">http://service.iris.edu/fdsnws/station/1/query?net=GE&amp;sta=UGM&amp;cha=BHZ&amp;level=channel&amp;format=xml&amp;nodata=404</a><br>

&gt;&gt;<br>
&gt;&gt; &lt;Network code=&quot;GE&quot; &gt;<br>
&gt;&gt; &lt;Station code=&quot;UGM&quot;&gt;<br>
&gt;&gt; &lt;Channel locationCode=&quot; &nbsp;&quot; code=&quot;BHZ&quot;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Another implementation of the same web service (not sure of url) gives<br>
&gt;&gt; back this:<br>
&gt;&gt;<br>
&gt;&gt; &lt;Network code=&quot;GE&quot; &gt;<br>
&gt;&gt; &lt;Station code=&quot;UGM&quot;&gt;<br>
&gt;&gt; &lt;Channel locationCode=&quot;&quot; code=&quot;BHZ&quot;&gt;<br>
&gt;&gt;<br>
&gt;&gt; with locationCode=&quot;&quot; vs =&quot; &nbsp;&quot; being the difference under consideration.<br>
&gt;&gt;<br>
&gt;&gt; There are two basic issues being discussed (and yes, more beer would help!<br>
&gt;&gt; :)<br>
&gt;&gt;<br>
&gt;&gt; 1) Should all valid stationXML documents be required to use the exact<br>
&gt;&gt; same string of characters to represent the location id for this<br>
&gt;&gt; channel. This is would allow a comparison operation to be &quot;simple&quot; in<br>
&gt;&gt; that it can compare the attribute values without additional<br>
&gt;&gt; processing.<br>
&gt;&gt;<br>
&gt;&gt; 2) If we agree to 1), then what should those exact characters be? The<br>
&gt;&gt; current top choices are<br>
&gt;&gt; &nbsp;a) empty=&quot;&quot;<br>
&gt;&gt; &nbsp;b) two spaces=&quot; &nbsp;&quot;<br>
&gt;&gt; &nbsp;c) two dashes=&quot;--&quot;.<br>
&gt;&gt;<br>
&gt;&gt; 1) seems less controversial than 2) in that greater compatibility is<br>
&gt;&gt; generally seen as positive.<br>
&gt;&gt;<br>
&gt;&gt; This is primarily a question about the form of the stationXML<br>
&gt;&gt; documents, but obviously there are connections to the way requests are<br>
&gt;&gt; formed, the relationship to miniseed/seed, the way things are coded in<br>
&gt;&gt; software and how much detailed understanding we expect of end users.<br>
&gt;&gt;<br>
&gt;&gt; Philip<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Mon, Jul 28, 2014 at 3:59 AM, Anthony Lomax &lt;<a href="mailto:alomax@free.fr">alomax@free.fr</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hello all,<br>
&gt;&gt;<br>
&gt;&gt; Can someone give a concise statement of the original problem being<br>
&gt;&gt; discussed, it only or primarily a concern about XML?<br>
&gt;&gt;<br>
&gt;&gt; It seems to me that with modern languages a string that is empty or has 1-N<br>
&gt;&gt; spaces is the same thing - there are often implicit or explicit trim()<br>
&gt;&gt; function hiding in a processing pipeline. &nbsp;A null string is not the same.<br>
&gt;&gt; So an empty or blank string is the same, valid location code, and null is<br>
&gt;&gt; undefined or uninitialized location code.<br>
&gt;&gt;<br>
&gt;&gt; With regards to the &quot;--&quot; pseudo for the location code, is this not needed<br>
&gt;&gt; because sometimes it is not possible or difficult to represent an empty<br>
&gt;&gt; string or even a string? &nbsp;For example on the command line or in a restful WS<br>
&gt;&gt; URI? &nbsp;(Or a URI on the command line!) &nbsp;So it may be that the use of &quot;--&quot; for<br>
&gt;&gt; intermediate processing and requests could be tolerated and somehow<br>
&gt;&gt; official, while empty or only-blanks strings official and for persistent<br>
&gt;&gt; data.<br>
&gt;&gt;<br>
&gt;&gt; Just my 0.02&euro; = $0.0268<br>
&gt;&gt;<br>
&gt;&gt; Best regards to all,<br>
&gt;&gt;<br>
&gt;&gt; Anthony<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On 27/07/2014 04:52, Chad Trabant wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hi Marcelo,<br>
&gt;&gt;<br>
&gt;&gt; Thanks for your thoughts as well. &nbsp;Something that you and Joachim are not<br>
&gt;&gt; addressing are the concerns about an empty ID that have been brought up by<br>
&gt;&gt; more than one person. &nbsp;The answer that empty strings are technically<br>
&gt;&gt; possible and it all works in Python/SeisComP is less than satisfying. &nbsp;The<br>
&gt;&gt; observations from Python, ObsPy and SeisComP are a few of many that need to<br>
&gt;&gt; be taken into account.<br>
&gt;&gt;<br>
&gt;&gt; I agree that there is a long tail consideration for the &quot;--&quot; location ID<br>
&gt;&gt; solution. &nbsp;Understand that some folks find an empty ID to be problematic<br>
&gt;&gt; regardless of whether it is XML, SEED, text, whatever, then you might see<br>
&gt;&gt; where this proposal comes from. &nbsp;Yes, we would need to treat empty location<br>
&gt;&gt; IDs and &quot;--&quot; as synonyms for a very long time. &nbsp;Empty strings in XML mean<br>
&gt;&gt; you will need to map empty IDs to empty strings, NULL and whatever an XML<br>
&gt;&gt; parser might or might not produce for a long time as well (think beyond<br>
&gt;&gt; Python and SeisComP). &nbsp;Either is possible, only one of them is a unique<br>
&gt;&gt; mapping.<br>
&gt;&gt;<br>
&gt;&gt; If the main considerations are for the least amount of disruption the the<br>
&gt;&gt; answer is obvious to me: the FDSN can sanction that the two-space string is<br>
&gt;&gt; the XML synonym for the empty SEED location ID and we adjust the schema to<br>
&gt;&gt; make sure a string of whitespaces is preserved. &nbsp;Then SeisComP can change<br>
&gt;&gt; its relatively new StationXML implementation and ALL existing clients will<br>
&gt;&gt; be compatible with all metadata and, mostly importantly, we would have<br>
&gt;&gt; consistent metadata.<br>
&gt;&gt;<br>
&gt;&gt; If the empty string ID representation is adopted it would would, in effect,<br>
&gt;&gt; mean that the DMC would need to change its metadata service and (more<br>
&gt;&gt; importantly) all users of the DMC&#39;s metadata service would need to<br>
&gt;&gt; transition to a new metadata channel naming scheme. &nbsp;This is certainly not<br>
&gt;&gt; out of the question, but it is not something we would do without careful<br>
&gt;&gt; consideration. &nbsp;I do not find the two-space strings all that great, but they<br>
&gt;&gt; are here and something the DMC and users of the DMC have dealt with. &nbsp;Issues<br>
&gt;&gt; have been identified with empty location IDs by us and our users. &nbsp;If DMC is<br>
&gt;&gt; going to change, and push the change on all users of the DMC&#39;s StationXML,<br>
&gt;&gt; it would be much more compelling to have a solution that addresses the low<br>
&gt;&gt; level issues.<br>
&gt;&gt;<br>
&gt;&gt; regards,<br>
&gt;&gt; Chad<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; ----- Original Message -----<br>
&gt;&gt; From: &quot;Marcelo Bianchi&quot; &lt;<a href="mailto:m.tchelo@gmail.com">m.tchelo@gmail.com</a>&gt;<br>
&gt;&gt; To: &quot;IRIS Web Services List&quot; &lt;<a href="mailto:webservices@iris.washington.edu">webservices@iris.washington.edu</a>&gt;<br>
&gt;&gt; Sent: Friday, July 25, 2014 7:38:17 PM<br>
&gt;&gt; Subject: Re: [webservices] A question of location ID, how to represent empty<br>
&gt;&gt; IDs in XML?<br>
&gt;&gt;<br>
&gt;&gt; Hi Philip and All,<br>
&gt;&gt;<br>
&gt;&gt; I totaly agree with Joachim, was planning to answer but he was much<br>
&gt;&gt; faster. What you guys are proposing is not a solution. the station XML<br>
&gt;&gt; supports nicely the empty string and it is not null. There is a type<br>
&gt;&gt; difference here in Python and in any other language and can be nicely<br>
&gt;&gt; handled internally.<br>
&gt;&gt;<br>
&gt;&gt; Also the location id is not just a string it is a key entry to link<br>
&gt;&gt; miniseed to metadata and making an exception at this level just<br>
&gt;&gt; because a user interface cannot proper render it without ambiguity<br>
&gt;&gt; does not sounds like a proper way proposal. &nbsp;I am not favorable in<br>
&gt;&gt; creating an exception that will have to be carried over along the<br>
&gt;&gt; decades to come. Alternatives solutions for this issue should be<br>
&gt;&gt; searched on the end user interface.<br>
&gt;&gt;<br>
&gt;&gt; with my best regards,<br>
&gt;&gt;<br>
&gt;&gt; Marcelo Bianchi<br>
&gt;&gt; --<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; 2014-07-25 10:35 GMT-03:00 Philip Crotwell &lt;<a href="mailto:crotwell@seis.sc.edu">crotwell@seis.sc.edu</a>&gt;:<br>
&gt;&gt;<br>
&gt;&gt; It sounds like you are saying &quot;change is hard, so we shouldn&#39;t do it&quot;.<br>
&gt;&gt; I would argue that change is hard and so if we don&#39;t do it now it will<br>
&gt;&gt; never happen. StationXML is new enough that there is already a<br>
&gt;&gt; disruption, we should seize the chance. If we do not do something now<br>
&gt;&gt; about null loc ids, it will be a decade or two before we get another<br>
&gt;&gt; chance.<br>
&gt;&gt;<br>
&gt;&gt; It is time to drive the stake through the heart of null location ids.<br>
&gt;&gt; Kill the evil while we have a chance.<br>
&gt;&gt;<br>
&gt;&gt; Philip<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; On Fri, Jul 25, 2014 at 9:26 AM, Joachim Saul &lt;<a href="mailto:saul@gfz-potsdam.de">saul@gfz-potsdam.de</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; Hello Rob,<br>
&gt;&gt;<br>
&gt;&gt; Rob Newman wrote on <a href="tel:24.07.2014%2018" value="+12407201418">24.07.2014 18</a>:51:<br>
&gt;&gt;<br>
&gt;&gt; For what it&#39;s worth, I would also vote for the &quot;--&quot; standard. To quote<br>
&gt;&gt; from the Zen of Python<br>
&gt;&gt; &lt;<a href="http://python.net/%7Egoodger/projects/pycon/2007/idiomatic/handout.html" target="_blank">http://python.net/%7Egoodger/projects/pycon/2007/idiomatic/handout.html</a>&gt;<br>
&gt;&gt; (my language of choice):<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; &quot;Beautiful is better than ugly.<br>
&gt;&gt; Explicit is better than implicit.<br>
&gt;&gt; Simple is better than complex.<br>
&gt;&gt; Complex is better than complicated.<br>
&gt;&gt; Flat is better than nested.<br>
&gt;&gt; Sparse is better than dense.<br>
&gt;&gt; Readability counts.<br>
&gt;&gt; Special cases aren&#39;t special enough to break the rules.<br>
&gt;&gt; Although practicality beats purity.<br>
&gt;&gt; Errors should never pass silently.<br>
&gt;&gt; Unless explicitly silenced.&quot;<br>
&gt;&gt;<br>
&gt;&gt; I&#39;d add &quot;Compatible is better than incompatible.&quot; :)<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; Number 2 is especially relevant here:<br>
&gt;&gt; &quot;Explicit is better than implicit.&quot;<br>
&gt;&gt;<br>
&gt;&gt; My favorite would be:<br>
&gt;&gt;<br>
&gt;&gt; &quot;Special cases aren&#39;t special enough to break the rules.&quot;<br>
&gt;&gt;<br>
&gt;&gt; Quoted whitespace and nulls are painful. Code what you mean, and mean what<br>
&gt;&gt; you code. It&#39;s easier for everyone.<br>
&gt;&gt;<br>
&gt;&gt; But what if we simply *mean* &quot;empty string&quot;?<br>
&gt;&gt;<br>
&gt;&gt; The issue is not about beauty, pain or ease. It&#39;s about standard<br>
&gt;&gt; conformance. We already have a channel naming standard. If a new data format<br>
&gt;&gt; cannot accommodate existing channel naming, then the new format is flawed.<br>
&gt;&gt; But that&#39;s not even the case here...<br>
&gt;&gt;<br>
&gt;&gt; An XML document that contains<br>
&gt;&gt;<br>
&gt;&gt; &lt;Channel locationCode=&quot;&quot; ...<br>
&gt;&gt;<br>
&gt;&gt; is not malformed. There&#39;s an attribute that *explicitly* contains an empty<br>
&gt;&gt; string and a parser has to produce it as such. Not as null, nil or none, but<br>
&gt;&gt; as an empty string. Otherwise the parser is broken and needs to be fixed,<br>
&gt;&gt; not the data!<br>
&gt;&gt;<br>
&gt;&gt; Again: It&#39;s not about beauty. We all agree that current channel naming is<br>
&gt;&gt; not particularly beautiful and has limitations. But our business is not to<br>
&gt;&gt; try to solve that issue now and here.<br>
&gt;&gt;<br>
&gt;&gt; Cheers<br>
&gt;&gt; Joachim<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; webservices mailing list<br>
&gt;&gt; <a href="mailto:webservices@iris.washington.edu">webservices@iris.washington.edu</a><br>
&gt;&gt; <a href="http://www.iris.washington.edu/mailman/listinfo/webservices" target="_blank">http://www.iris.washington.edu/mailman/listinfo/webservices</a><br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; webservices mailing list<br>
&gt;&gt; <a href="mailto:webservices@iris.washington.edu">webservices@iris.washington.edu</a><br>
&gt;&gt; <a href="http://www.iris.washington.edu/mailman/listinfo/webservices" target="_blank">http://www.iris.washington.edu/mailman/listinfo/webservices</a><br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; webservices mailing list<br>
&gt;&gt; <a href="mailto:webservices@iris.washington.edu">webservices@iris.washington.edu</a><br>
&gt;&gt; <a href="http://www.iris.washington.edu/mailman/listinfo/webservices" target="_blank">http://www.iris.washington.edu/mailman/listinfo/webservices</a><br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; webservices mailing list<br>
&gt;&gt; <a href="mailto:webservices@iris.washington.edu">webservices@iris.washington.edu</a><br>
&gt;&gt; <a href="http://www.iris.washington.edu/mailman/listinfo/webservices" target="_blank">http://www.iris.washington.edu/mailman/listinfo/webservices</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; --<br>
&gt;&gt; Sent from my iClayTablet<br>
&gt;&gt;<br>
&gt;&gt; ________________________________<br>
&gt;&gt;<br>
&gt;&gt; &nbsp; Anthony Lomax<br>
&gt;&gt; &nbsp; 161 Allée du Micocoulier, 06370 Mouans-Sartoux, France<br>
&gt;&gt; &nbsp; tel: <a href="tel:%2B33%20%280%294%2093%2075%2025%2002" value="+33493752502">+33 (0)4 93 75 25 02</a> &nbsp; &nbsp;e-mail: <a href="mailto:anthony@alomax.net">anthony@alomax.net</a> &nbsp; &nbsp;web:<br>
&gt;&gt; <a href="http://www.alomax.net" target="_blank">http://www.alomax.net</a><br>
&gt;&gt;<br>
&gt;&gt; &nbsp; Twitter: @ALomaxNet<br>
&gt;&gt; &nbsp; Science &amp; Special Topics: <a href="http://www.alomax.net/science" target="_blank">http://www.alomax.net/science</a><br>
&gt;&gt; &nbsp; Software: <a href="http://www.alomax.net/software" target="_blank">http://www.alomax.net/software</a> - updates:<br>
&gt;&gt; <a href="https://twitter.com/ALomaxNet" target="_blank">https://twitter.com/ALomaxNet</a><br>
&gt;&gt; ________________________________<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; webservices mailing list<br>
&gt;&gt; <a href="mailto:webservices@iris.washington.edu">webservices@iris.washington.edu</a><br>
&gt;&gt; <a href="http://www.iris.washington.edu/mailman/listinfo/webservices" target="_blank">http://www.iris.washington.edu/mailman/listinfo/webservices</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; webservices mailing list<br>
&gt;&gt; <a href="mailto:webservices@iris.washington.edu">webservices@iris.washington.edu</a><br>
&gt;&gt; <a href="http://www.iris.washington.edu/mailman/listinfo/webservices" target="_blank">http://www.iris.washington.edu/mailman/listinfo/webservices</a><br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; webservices mailing list<br>
&gt;&gt; <a href="mailto:webservices@iris.washington.edu">webservices@iris.washington.edu</a><br>
&gt;&gt; <a href="http://www.iris.washington.edu/mailman/listinfo/webservices" target="_blank">http://www.iris.washington.edu/mailman/listinfo/webservices</a><br>
&gt;&gt;<br>
<br>
_______________________________________________<br>
webservices mailing list<br>
<a href="mailto:webservices@iris.washington.edu">webservices@iris.washington.edu</a><br>
<a href="http://www.iris.washington.edu/mailman/listinfo/webservices" target="_blank">http://www.iris.washington.edu/mailman/listinfo/webservices</a><br>
</div></div></blockquote></div><br></div>