[
Lists Home |
Date Index |
Thread Index
]
> From: Jeff Rafter [mailto:lists@jeffrafter.com]
> Out of curiousity can you control your format to change the use of
> attributes?
Unfortunately, no. This is an "add a new product onto an existing product's
framework" sort of project. We want to maximize code reuse for now, largely
because we want to continue to be able to easily merge the codebases as new
features are added to the existing product.
> My own Java Reflection based stuff bad things
> into XML and try
> to get meaningful information back out took this road. I
> found that modeling
> objects as elements /and/ properties as elements provided a
> big gain. Then I
> used a single attribute for the object or literal type to
> expect as content.
> When I started reading around this was the more commonly used
> approach from
> what I can tell.
Yes, I hadn't ever done it that way, but it makes sense.
Last time I wrote a content handler from scratch I used Class and Method
instance mappings to attributes and elements. That gave me the flexibility
to handle all class properties in one go (by passing SAX Attributes
instances to a Method invocation) and to even map attributes to Classes (so
I could represent the value as element data content rather than as an
attribute,value pair). Still meant maintaining a map, though, and I'd often
forget an entry.
The main point is that one loses a lot of information when serializing an
object and its properties to elements and attributes. Knowing exactly where
something came from can really help when it comes time to read it back in,
and can even help third parties interpret exactly what you meant.
> Of course if attributes are required you can
> do something
> else completely crazy:
>
> <foo bar="9.5" type:bar="double"
> xmlns:type="http://use-this-namespace-for-any-type.com"/>
I'd say that's the sanest way to do it. No wonder it never occurred to me.
|