jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stefan Guggisberg" <stefan.guggisb...@gmail.com>
Subject Re: Importing and Exporting XML
Date Wed, 13 Jun 2007 13:11:50 GMT
hi alessandro,

On 6/13/07, Alessandro Bologna <alessandro.bologna@gmail.com> wrote:
> Stephan,
>
> I agree that DocumentView will not allow proper roundtripping (when
> the source is a JCR model). At the same time, when the source is an
> XML document, DocumentView does (and SystemView does not), and this
> was the case in question.

i see, thanks for the clarification. please note that you'll never get
true bona fide
xml roundtripping. the document view representation is lossy also wrt
to the original
xml document (e.g. scoped namespace declarations, formatting etc are lost).

>
> To address Frederic point of view, I think that when it comes to
> multivalued properties (which do not really happen often in XML, so
> we are dealing with roundtripping from a JCR model), one approach is
> to use SystemView (and then maybe transform it in something more
> human readable), or to use a SAX handler and the visitor pattern for
> a customized output (as in the DocumentViewExportVisitor class).
> Of course, I realize that there can be use cases when it is not
> practical, and then probably there's no one solution-fits-all.

i agree. using DocumentViewExportVisitor is imo the best solution.

cheers
stefan

>
> Alessandro
>
>
>
>
> On Jun 13, 2007, at 8:22 AM, Stefan Guggisberg wrote:
>
> > On 6/13/07, Frédéric Esnault <fesn@legisway.com> wrote:
> >> Of course, in wolly's case, it doesn't really matter, but
> >> jackrabbit is not supposed to be  a "one use product", but a
> >> generic JCR. And I just tried my own use case, which is not a very
> >> odd case, where I have some contracts referencing contractors by
> >> reference. And with a document view, I loose these references, the
> >> contract managers also multivalued, and so on.
> >>
> >> I don't know how you export references, because I can't.
> >
> > the answer is simple: use system view export.
> >
> > see http://issues.apache.org/jira/browse/JCR-325 for a
> > discussion of multi-valued property representation in the
> > document view xml mapping.
> >
> > please see also section 6.4.2.5 in the JSR 170 spec.
> >
> > cheers
> > stefan
> >
> >
> >
> >>
> >> Frédéric Esnault
> >>
> >> -----Message d'origine-----
> >> De: Alessandro Bologna [mailto:alessandro.bologna@gmail.com]
> >> Envoyé: mercredi 13 juin 2007 13:55
> >> À: users@jackrabbit.apache.org
> >> Objet: Re: Importing and Exporting XML
> >>
> >> Frederic,
> >>
> >> Some multivalued properties are handled correctly (say for instance
> >> multivalued references are exported as space separated lists of
> >> references in an attribute), and in some other cases it's still
> >> possible to do an encoding of the values, so that they can be
> >> represented inside an XML attribute. But I agree that in some cases
> >> it's really not practical (say binary properties...) because the XML
> >> that would result would probaby be not very much readable.
> >>
> >> But in Wolly's  (or Phil's?) case, the problem is to round-trip XML,
> >> which does not have multi-valued properties to start with (so it
> >> doesn't really matter, does it?)
> >>
> >> Alessandro.
> >>
> >>
> >> On Jun 13, 2007, at 7:43 AM, Frédéric Esnault wrote:
> >>
> >> > What about the multivalued properties not included in the export?
> >> > The exported document, even if it's modified by XSL/java is still
> >> > incorrect, as the multivalued properties are simply ignored.
> >> >
> >> > I know the JSR 170 spec leaves the right to do so, but imo it
> >> > creates an incoherent export. I don't think anyone even think about
> >> > the possibility that some properties are just ignored when doing an
> >> > export from a CMS...
> >> >
> >> > Frédéric Esnault - Ingénieur R&D
> >> >
> >> >
> >> > -----Message d'origine-----
> >> > De : Alessandro Bologna [mailto:alessandro.bologna@gmail.com]
> >> > Envoyé : mercredi 13 juin 2007 13:34
> >> > À : users@jackrabbit.apache.org
> >> > Objet : Re: Importing and Exporting XML
> >> >
> >> > Yes. Two ways:
> >> > 1. Java way: use the DocumentViewExportVisitor and override the
> >> > includeProperty() method (simply return false if the property has a
> >> > namespace you don't want).
> >> >
> >> > 2. XML way: use an XSLT identity transformation and add rules for
> >> > removing any attribute that you don't want.
> >> >
> >> > Alessandro
> >> >
> >> >
> >> > On Jun 13, 2007, at 7:20 AM, woolly wrote:
> >> >
> >> >>
> >> >> Thanks for replying...
> >> >>
> >> >> If I have a document like this:
> >> >> <?xml version="1.0" encoding="UTF-8"?>
> >> >> <cheeses>
> >> >>      <cheese>edam</cheese>
> >> >>      <cheese>lancashire</cheese>
> >> >>      <cheese>cheshire</cheese>
> >> >>      <cheese>stilton</cheese>
> >> >> </cheeses>
> >> >>
> >> >> ...and I import it using:
> >> >> fis = new FileInputStream(inputFile);
> >> >> session.importXML(node.getPath(), fis,
> >> >> ImportUUIDBehavior.IMPORT_UUID_CREATE_NEW);
> >> >> fis.close();
> >> >>
> >> >> ...when I export it using:
> >> >> out = new FileOutputStream(outputFile);
> >> >> session.exportDocumentView(node.getPath(), out, true, false);
> >> >>
> >> >> ...I get:
> >> >>
> >> >> <?xml version="1.0" encoding="UTF-8"?>
> >> >> <cheeses xmlns:dc="http://www.purl.org/dc/elements/1.1/"
> >> >> xmlns:jcr="http://www.jcp.org/jcr/1.0"
> >> >> xmlns:nt="http://www.jcp.org/jcr/nt/1.0"
> >> >> xmlns:sv="http://www.jcp.org/jcr/sv/1.0"
> >> >> xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
> >> >> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> >> >> xmlns:fn="http://www.w3.org/2005/xpath-functions"
> >> >> xmlns:fn_old="http://www.w3.org/2004/10/xpath-functions"
> >> >> xmlns:mix="http://www.jcp.org/jcr/mix/1.0" xmlns:rep="internal"
> >> >> jcr:primaryType="nt:unstructured">
> >> >>     <cheese jcr:primaryType="nt:unstructured">edam</cheese>
> >> >>     <cheese jcr:primaryType="nt:unstructured">lancashire</cheese>
> >> >>     <cheese jcr:primaryType="nt:unstructured">cheshire</cheese>
> >> >>     <cheese jcr:primaryType="nt:unstructured">stilton</cheese>
> >> >> </cheeses>
> >> >>
> >> >> ...is there any way to just get the original document out?
> >> >>
> >> >> Thanks,
> >> >>
> >> >> Phil.
> >> >>
> >> >>
> >> >> Julian Reschke wrote:
> >> >>>
> >> >>> woolly wrote:
> >> >>>> Surely then I would want to use some form of document view,
> >> >>>> then, in
> >> >>>> order to
> >> >>>> get back the original document I put in?
> >> >>>
> >> >>> Yes (contrary to what you've been told here before).
> >> >>>
> >> >>> There are known limitations with the document view (such as
> >> >>> restrictions
> >> >>> with multivalued props). But the thing you complained about was
> >> >>> something else; maybe unneeded attributes in the jcr namespace?
> >> >>> Could
> >> >>> you be a bit more specific about that problem?
> >> >>>
> >> >>> Best regards, Julian
> >> >>>
> >> >>>
> >> >>>
> >> >>
> >> >> --
> >> >> View this message in context: http://www.nabble.com/Importing-and-
> >> >> Exporting-XML-tf3908819.html#a11097246
> >> >> Sent from the Jackrabbit - Users mailing list archive at
> >> Nabble.com.
> >> >>
> >> >
> >>
> >>
>
>

Mime
View raw message