Ok, I've taken a look and I have an alternative algorithm that produces
much prettier names.

e.g. source.uri from sca.core.xsd comes out as sourceUri
     1..n from sca.core.xsd's Multiplicity enum comes out as VALUE_1N

The result is closer to what JAXB produces and is much nicer overall.

- James

Daniel Kulp wrote:
> Just FYI:   the JAXB 2.0 spec contains a fairly large section on tackling 
> this issue.    It might be worth a look for ideas and maybe even doing 
> the same thing.
> 
> Dan
> 
> 
> On Wednesday 29 March 2006 11:49, James M Snell wrote:
>> Hey all,
>>
>> Following on to the changes Frank and I made to the SDO impl's handling
>> of names in the model, the JavaGenerator was put into a state in which
>> XML Schemas that were not properly annotated with sdo:name attributes
>> could produce Java classes that would not compile.  For example, strip
>> the sdo:name attributes from the sca.core.xsd file and you'll note a
>> number of compile issues with improper Java identifiers.
>>
>> While the correct solution around such problems is the inclusion of
>> sdo:name annotations, I have modified JavaGenerator so that it will
>> generate compilable code.
>>
>> The issue is the form of the java identifiers produced.  Right now the
>> algorithm that I'm using to generate the safe names is pretty simple...
>> just replace all of the illegal characters in the name with an
>> underscore.  e.g. source.uri becomes source_uri.  While this works, it
>> produces a strange looking API.. e.g. getSource_uri, setSource_uri,
>> etc. Another example shows up in the sca.core.xsd's Multiplicity enum,
>> in which enum options like 1..n are transformed into _1__n.  Obviously,
>> this is nasty, but it works, and given that the ultimately correct
>> solution is the use of sdo:name, this *might* be a decent fallback (at
>> the very least, if folks complain about the nasty looking generated
>> names, we can point them to sdo:name as a way of creating the really
>> nice looking names they want to see).
>>
>> Alternatively, I could modify the algorithm to produce prettier names,
>> like "sourceUri" or "_1n", etc.
>>
>> Opinions?
>>
>> - James Snell
> 

Reply via email to