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 <[email protected]> 
> 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/XmlNamespaces.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/OsgiBundleFile.java
> 
>> -----Original Message-----
>> From: Konrad Windszus <[email protected]>
>> Sent: Wednesday, April 14, 2021 6:35 PM
>> To: [email protected]
>> 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
> 

Reply via email to