Hi

QNAme is an XML-ism and the API is XML-free (as I said, use of XML is just one 
way to back the API). So I am extremely reluctant to using QName (regardless of 
whether we use javax.xml.QName or define our own QName class). Always consider 
the case where an QbjectClassDefinition might be backed by a MetaTypeProvider 
service and not XML.

As for the interface (except QName question), I am fine.

However, I could assume we could have the name, if it comes from XML, to be 
something like

   {url}localname

or

   prefix:localname

And, of course, the {url} or prefix: prefix would be omitted for the default 
namespace (empty string) or the namespace of the metatype descriptor.

Regards
Felix

Am 14.01.2013 um 07:43 schrieb <[email protected]> 
<[email protected]>:

> O.K. I see.
> 
> Then I would suggest to add something like the following interface to 
> AttributeDefinition and ObjectClassDefinition:
> 
> public interface ExtraAttributes {
> 
>       /**
>        * List the {@link QName}s of extra XML attributes.
>        * 
>        * @return an {@link Iterator} producing the {@link QName}s of the 
> extra attributes.
>        */
>       public Iterator<QName> getExtraAttributeNames();
>       
>       /**
>        * Retrieve the value of an extra XML attribute.
>        * 
>        * @param name {@link QName} of the extra attribute, whose value should 
> be retrieved.
>        * @return the value of the extra attribute or <code>null</code> if no 
> attribute with
>        *         that name exists.
>        */
>       public String getExtraAttributeValue(QName name);
> }
> 
> However, my initial question about QName and XML API support arises again as 
> we are using
> QName here. Note, using just a String as argument to getExtraAttributeValue 
> will not work, as several
> attributes with the same name but different Namespaces (prefixes) might exist 
> on the same 
> Element.
> 
> Regards
> Alex
> 
> --
> finnova AG Bankware
> Alexander Berger
> Software Architect
> Merkurstrasse 6
> CH-5600 Lenzburg
> Tel: +41 (0)62 886 48 07 (direkt)
> Tel: +41 (0)62 886 47 47 (zentrale)
> Fax: +41 (0)62 886 48 88 
> mailto:[email protected]
> http://www.finnova.ch
> 
> -----Ursprüngliche Nachricht-----
> Von: Felix Meschberger [mailto:[email protected]] 
> Gesendet: Samstag, 12. Januar 2013 22:15
> An: [email protected]
> Betreff: Re: Metatype Service - OptionalAttributes - extra XML attributes 
> with namespace support
> 
> 
> Am 10.01.2013 um 17:14 schrieb <[email protected]> 
> <[email protected]>:
> 
>> That's a good question.
>> 
>> I think in terms of an API for accessing extra XML attributes, chances 
>> are good that such an API could be standardized (at least 
>> technically). But in terms of the specific "extra XML attributes" I 
>> see no way to get them standardized. And I guess that is the reason 
>> why the XSD (XML Schema) for the metatype descriptions allows for extra 
>> attributes (which reside in another XML namespace). Maybe someone that has 
>> worked on the specification might clarify what the intention about allowing 
>> the extra attributes was.
> 
> Originally the idea was, that the same XML files would be used for metatype 
> descriptors and other applications. Which is why it is lenient to other data.
> 
>> 
>> Unless I know more about the matter I long for the following:
>> 
>> 1. Anybody can enrich the metatype descriptions with his own 
>> (specific/individual) metadata. 
>>  The current specification supports this by allowing extra XML attributes 
>> that reside in another namespace (##other).
>> 
>> 2. An API to list respectively retrieve those extra attributes. And ideally 
>> such an API could become part of the
>>   metatype specification (new methods on the already existing interfaces or 
>> on new sub-interfaces).
> 
> Please also consider that XML files are only one source for metatype 
> descriptors. Access is always through API which can also be implemented 
> without having XML.
> 
> One option I could conceive, though, would be that we extend the 
> AttributeDefinition interface with a new method:
> 
>  String getExtraAttribute(String name);
> 
> which returns the named attribute.
> 
> WDYT ?
> 
> Regards
> Felix
> 
> 
>> 
>> Regards
>> Alex
>> 
>> 
>> -----Ursprüngliche Nachricht-----
>> Von: Felix Meschberger [mailto:[email protected]]
>> Gesendet: Donnerstag, 10. Januar 2013 15:58
>> An: [email protected]
>> Betreff: Re: Metatype Service - OptionalAttributes - extra XML 
>> attributes with namespace support
>> 
>> Hi Alex,
>> 
>> Sorry, I missed your message from last week.
>> 
>> Am 10.01.2013 um 13:34 schrieb <[email protected]> 
>> <[email protected]>:
>> 
>>> I want to add some extra attributes to the metadata (XML) which will then 
>>> be used by a (special) administration console which knows about that extra 
>>> attributes. These extra attributes will be used to allow a more concise 
>>> representation of Configurations in the Graphical User Interface (GUI). For 
>>> example to show a value from a certain configuration property instead of 
>>> its PID in the GUI, as PIDs are quite meaningless to the average User.
>> 
>> Thanks. The reason for asking is, whether your use case is in fact something 
>> that could be generalized to properly enhance the API. And thus to try to 
>> get it into the specification.
>> 
>> Do you think such a generalization might be possible ?
>> 
>> Regards
>> Felix
>> 
>>> 
>>> Regards
>>> Alex
>>> 
>>> --
>>> finnova AG Bankware
>>> Alexander Berger
>>> Interface Development
>>> Merkurstrasse 6
>>> CH-5600 Lenzburg
>>> Tel: +41 (0)62 886 48 07 (direkt)
>>> Tel: +41 (0)62 886 47 47 (zentrale)
>>> Fax: +41 (0)62 886 48 88
>>> mailto:[email protected]
>>> http://www.finnova.ch
>>> 
>>> -----Ursprüngliche Nachricht-----
>>> Von: Felix Meschberger [mailto:[email protected]]
>>> Gesendet: Freitag, 4. Januar 2013 14:41
>>> An: [email protected]
>>> Betreff: Re: Metatype Service - OptionalAttributes - extra XML 
>>> attributes with namespace support
>>> 
>>> Hi,
>>> 
>>> Am 04.01.2013 um 08:23 schrieb <[email protected]> 
>>> <[email protected]>:
>>> 
>>>> Hi
>>>> 
>>>> I intend to use extra (optional) XML attributes with the Metatype Service.
>>> 
>>> Before commenting in detail, I would be interested to know what exactly you 
>>> want to achieve by using additional attributes on object class and 
>>> attribute definitions.
>>> 
>>> Regards
>>> Felix
>>> 
>>> 
>>>> For this purpose I examined the
>>>> Felix metatype service implementation and found the class 
>>>> org.apache.felix.metatype.OptionalAttributes,
>>>> which is extended by AD, OCD, ... . But unluckily this class is 
>>>> neither inherited by LocalizedObjectClassDefinition nor by 
>>>> LocalizedAttributeDefinition, which makes it quite useless for the moment.
>>>> 
>>>> Another Problem is that OptionalAttributes does not support XML namespaces 
>>>> for the attribute names.
>>>> The underlying Map should use something like 
>>>> javax.xml.namespace.QName as key and not just the name of the 
>>>> attribute (String). Note, XML namespace support is crucial as extra XML 
>>>> attribute have to be in a different (##other) namespace (see "Metatype 
>>>> Service Specifiaction" (Version 1.2), section 105.9 "XML Schema").
>>>> 
>>>> The above observations lead me to the following question:
>>>> 
>>>> 1.      Is it still a requirement for Felix subprojects to avoid 
>>>> dependencies on packages like java.xml.** and rely on kxml2 instead?
>>>> a.      If so, then I could try create a patch for metatype service which 
>>>> will add support for extra XML attributes (including XML namespace support 
>>>> but not using javax.xml.namespace.QName),
>>>>         so that extra XML attributes could be retrieved from AD, OCD, ..., 
>>>> LocalizedObjectClassDefinition and LocalizedAttributeDefinition instances.
>>>> b.      If not, then I could try to create a similar patch as described 
>>>> above (a) but using javax.xml.namespace.QName instead.
>>>> 
>>>> Note, the class javax.xml.namespace.QName is part of JavaSE since version 
>>>> 1.5 older versions as well as JavaME do not contain that class.
>>>> 
>>>> Alex
>>>> 
>>>> 
>>> 
>> 
> 

Reply via email to