afaik Sling-Namespaces header is still supported - it was broken accidentally with SLING-4937 but added back in SLING-5531, so this is another option d)
from your list a) and c) makes sense. not sure for b) if you have always control over this - but does not harm to have it in place there as well. stefan >-----Original Message----- >From: Konrad Windszus <konra...@gmx.de> >Sent: Wednesday, April 14, 2021 9:25 PM >To: dev@sling.apache.org >Subject: Re: o.a.s.contentparser.api.ContentHandler: Namespace handling > >Hi Stefan, >thanks for the response. According to >https://issues.apache.org/jira/browse/SLING-4937 ><https://issues.apache.org/jira/browse/SLING-4937> the Sling-Namespaces >header is no longer supported since 2015. >The only thing which is still there is 'Sling-Nodetypes'. >Therefore I think it is reasonable to build a table from up to three >different sources: >a) a fixed list of default namespace URIs and prefixes (JCR defined and >what is there in Sling Starter) >b) a configurable list of CNDs per execution of cp2fm >c) everything which is configured in CNDs referenced in Sling-Nodetypes >header. > >WDYT? >Was there any particular reason why you felt the need to support the legacy >Sling-Namespaces header? > >Thanks, >Konrad > >> On 14. Apr 2021, at 20:21, Stefan Seifert <Stefan.Seifert@diva- >e.com.INVALID> wrote: >> >> hello konrad. >> >> i've faced the same problem in [1][2] which is using [3] internally. >> this is the standard list [4] i've come up with - but you have to make it >configurable to support custom namespaces. >> in the plugin, i'm parsing the bundle for Sling-Namespaces headers [5] >which usually should contain all custom namespaces used in the JSON of the >bundle. >> of course it may be that namespaces are additionally defined in a cnd >file. >> >> stefan >> >> >> [1] https://wcm.io/tooling/maven/plugins/sling-initial-content-transform- >maven-plugin/ >> [2] https://github.com/wcm-io/wcm-io- >tooling/tree/develop/maven/plugins/sling-initial-content-transform-maven- >plugin >> [3] https://github.com/wcm-io/wcm-io- >tooling/tree/develop/commons/content-package-builder >> [4] https://github.com/wcm-io/wcm-io- >tooling/blob/develop/commons/content-package- >builder/src/main/java/io/wcm/tooling/commons/contentpackagebuilder/XmlNames >paces.java >> [5] https://github.com/wcm-io/wcm-io- >tooling/blob/develop/maven/plugins/sling-initial-content-transform-maven- >plugin/src/main/java/io/wcm/maven/plugins/slinginitialcontenttransform/Osgi >BundleFile.java >> >>> -----Original Message----- >>> From: Konrad Windszus <konra...@gmx.de> >>> Sent: Wednesday, April 14, 2021 6:35 PM >>> To: dev@sling.apache.org >>> Subject: o.a.s.contentparser.api.ContentHandler: Namespace handling >>> >>> Hi, >>> in the context of https://issues.apache.org/jira/browse/SLING-10243 I am >>> currently trying to convert JSON Descriptor Files >>> (https://sling.apache.org/documentation/bundles/content-loading-jcr- >>> contentloader.html#json-descriptor-files) to Enhanced Docview XML >>> (http://jackrabbit.apache.org/filevault/docview.html). >>> >>> I want to leverage https://github.com/apache/sling-org-apache-sling- >>> contentparser-api for parsing the JSON Descriptor Files and I am >wondering >>> how to best deal with namespaces. >>> Neither https://github.com/apache/sling-org-apache-sling-contentparser- >>> >api/blob/master/src/main/java/org/apache/sling/contentparser/api/ContentHan >>> dler.java nor https://sling.apache.org/documentation/bundles/content- >>> loading-jcr-contentloader.html#json-descriptor-files mentions namespaces >>> but the example uses certain namespace prefixes. >>> >>> It doesn't seem mandatory though to define the used prefixes in the >Sling- >>> Nodetypes bundle header, so do we just assume that all repositories use >the >>> same prefixes? >>> IMHO only namespace URI are globally unique but not necessarily the >>> namespace prefixes. >>> JCR itself only defines 4 prefixes: >>> >https://docs.adobe.com/content/docs/en/spec/jcr/2.0/3_Repository_Model.html >>> #3.5.1%20Namespace%20Registry >>> >>> As (DocView) XML requires to explicitly declare the used namespaces I >>> wonder which table to use as basis? >>> Should I just take the mapping from the Sling Starter? >>> >>> Thanks for any input, >>> Konrad >>