[jdom-interest] Processing instruction map issues
    Elliotte Rusty Harold 
    elharo at metalab.unc.edu
       
    Sun May  4 11:35:21 PDT 2003
    
    
  
I'm resending this proposal from last April with slight modifications 
to get it back into the queue:
Consider the following code fragment:
    try {
      ProcessingInstruction pi
        = new ProcessingInstruction("target",
                                    "some random non-attribute-like data");
      pi.setValue("name", "value");
      pi.setValue("name2", "value2");
      XMLOutputter outputter = new XMLOutputter();
      outputter.output(pi, System.out);
    }
    catch (Exception e) {
      System.err.println(e);
    }
What output do you expect? I wasn't sure which is why I wrote the 
code, but the result surprised me. It is:
<?target name="value" name2="value2"?>
The original data has been completely overridden with no warning by 
the pseudo-attributes. I'm not sure what to do here. There are a 
couple of possible solutions:
1. setValue() should throw an exception if the Map is null; i.e. if 
the PI was not initially set up with a pseudo-attribute format.
2. The pseudo-atts should just be appended to the data; i.e.:
<?target some random non-attribute-like data name="value" name2="value2"?>
3. Get rid of all this Map data craziness, and just have  string 
target and a string value.
I think I prefer option 3, and last year Bradley Huffman and Alex 
Rosen agreed. Whatever we choose, even sticking with the current 
behavior, the behavior should be documented in the JavaDoc
Issue 2:
The name setValue() is misleading. It sounds like it sets the entire 
value of the PI. What it really does is add a pseudo-attribute. The 
following names all strike me as more accurate:
addValue()
addPseudoAttribute()
setPseudoAttribute()
I think I prefer addPseudoAttribute()
though if we get rid of the Map we coudl probably just throw this away too.
-- 
Elliotte Rusty Harold
elharo at metalab.unc.edu
Processing XML with Java (Addison-Wesley, 2002)
   http://www.cafeconleche.org/books/xmljava
   http://www.amazon.com/exec/obidos/ISBN%3D0201771861/cafeaulaitA
    
    
More information about the jdom-interest
mailing list