I would like to revive this thread.

I have a need for the same thing, and for precisely the same reason as
Alexander!

I also don't mind the proposed interface, however I have less need for
supporting many namespaces as I believe that at least one specific to
modeling the UI is really the key here.

But the last suggestion would be fine to me!

However, I do agree that no solution is complete without supporting
MetaTypeProviders. I'll investigate the options there and see if I can
propose something.

- Ray


On Fri, Jan 18, 2013 at 3:42 AM, <alexander.ber...@finnova.ch> wrote:

> Hi
>
> Wakeup-Call :-). Has anybody a better idea or substantial arguments
> against my last proposal?
>
> Regards,
> Alex
>
> -----Ursprüngliche Nachricht-----
> Von: alexander.ber...@finnova.ch [mailto:alexander.ber...@finnova.ch]
> Gesendet: Montag, 14. Januar 2013 10:59
> An: dev@felix.apache.org
> Betreff: AW: Metatype Service - OptionalAttributes - extra XML attributes
> with namespace support
>
> Bridging the world of namespace-aware XML and not namespace-aware object
> models like Java, where an object can only have one field (attribute) with
> the same name, is quite difficult. In other words if we allow for multiple
> namespaces for XML attributes (which at the moment is the case according to
> the spec) then we must also adopt that concept of namespaces in the Java
> object model.
>
> And as a note, (namespace) prefixes by them self are meaningless. They
> only convey meaning if they are associated with a namespace.
>
> So we need a solution which is namespace-aware and not limited to, but
> compatible to XML. In the light of this I suggest the following interface,
> where "namespace" is now a generic concept (abstraction) and does not
> necessarily stand for XML-namespaces per se.
>
> public interface ExtraAttributes {
>
>         /**
>          * List the names of extra attributes for a given namespace.
>          *
>          * @param namespace the namespace for which to retrieve the names
> of available attribute.
>          *
>          * @return an {@link Iterator} producing the {@link String}s of
> the extra attribute names.
>          *         for the given namespace.
>          */
>         public Iterator<String> getExtraAttributeNames(String namespace);
>
>         /**
>          * Retrieve the value of an extra attribute.
>          *
>          * @param namespace the namespace from which to retrieve the
> attribute value.
>          * @param name name 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(String namespace, String
> name); }
>
> What do you think.
>
> 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:alexander.ber...@finnova.ch
> http://www.finnova.ch
>
>
> -----Ursprüngliche Nachricht-----
> Von: Felix Meschberger [mailto:fmesc...@adobe.com]
> Gesendet: Montag, 14. Januar 2013 10:39
> An: dev@felix.apache.org
> Betreff: Re: Metatype Service - OptionalAttributes - extra XML attributes
> with namespace support
>
> 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 <alexander.ber...@finnova.ch> <
> alexander.ber...@finnova.ch>:
>
> > 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:alexander.ber...@finnova.ch
> > http://www.finnova.ch
> >
> > -----Ursprüngliche Nachricht-----
> > Von: Felix Meschberger [mailto:fmesc...@adobe.com]
> > Gesendet: Samstag, 12. Januar 2013 22:15
> > An: dev@felix.apache.org
> > Betreff: Re: Metatype Service - OptionalAttributes - extra XML
> > attributes with namespace support
> >
> >
> > Am 10.01.2013 um 17:14 schrieb <alexander.ber...@finnova.ch> <
> alexander.ber...@finnova.ch>:
> >
> >> 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:fmesc...@adobe.com]
> >> Gesendet: Donnerstag, 10. Januar 2013 15:58
> >> An: dev@felix.apache.org
> >> 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 <alexander.ber...@finnova.ch> <
> alexander.ber...@finnova.ch>:
> >>
> >>> 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:alexander.ber...@finnova.ch
> >>> http://www.finnova.ch
> >>>
> >>> -----Ursprüngliche Nachricht-----
> >>> Von: Felix Meschberger [mailto:fmesc...@adobe.com]
> >>> Gesendet: Freitag, 4. Januar 2013 14:41
> >>> An: dev@felix.apache.org
> >>> Betreff: Re: Metatype Service - OptionalAttributes - extra XML
> >>> attributes with namespace support
> >>>
> >>> Hi,
> >>>
> >>> Am 04.01.2013 um 08:23 schrieb <alexander.ber...@finnova.ch> <
> alexander.ber...@finnova.ch>:
> >>>
> >>>> 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
> >>>>
> >>>>
> >>>
> >>
> >
>
>


-- 
*Raymond Augé* <http://www.liferay.com/web/raymond.auge/profile>
 (@rotty3000)
Senior Software Architect *Liferay, Inc.* <http://www.liferay.com>
 (@Liferay)
Board Member & EEG Co-Chair, OSGi Alliance <http://osgi.org> (@OSGiAlliance)

Reply via email to