source: products/quintagroup.transmogrifier/trunk/quintagroup/transmogrifier/manifest.txt @ 319

Last change on this file since 319 was 283, checked in by fenix, 18 years ago

removed as unworkable

File size: 2.7 KB
Line 
1Manifest exporter and importer sections
2=======================================
3
4A manifest exporter and importer sections are used to generate and parse
5manifest files - listings of objects contained in some folder in XML format.
6These listings are needed to set portal types for pipeline items and also act
7as filter on them - items not listed in manifest will be removed. The manifest
8exporter section blueprint name is
9``quintagroup.transmogrifier.manifestsexporter`` and importer section blueprint
10name is ``quintagroup.transmogrifier.manifestimporter``.
11
12Both sections has ``files-key`` option that gives key in item where XML data
13will be or is stored (default is ``_files``). Exporter section has
14``entries-key`` option, which specifies key in item where list of
15(object_id, portal_type) pairs that represents folder contents is stored
16(default is ``_entries``). Importer section has ``path-key`` option which
17specifies key in item where path to object is stored (default is ``_path``).
18
19>>> manifest = """
20... [transmogrifier]
21... pipeline =
22...     manifestsource
23...     manifestexporter
24...     manifestimporter
25...     printer
26...     dataprinter
27...
28... [manifestsource]
29... blueprint = quintagroup.transmogrifier.tests.manifestsource
30...
31... [manifestexporter]
32... blueprint = quintagroup.transmogrifier.manifestexporter
33...
34... [manifestimporter]
35... blueprint = quintagroup.transmogrifier.manifestimporter
36...
37... [printer]
38... blueprint = collective.transmogrifier.sections.tests.pprinter
39...
40... [dataprinter]
41... blueprint = quintagroup.transmogrifier.tests.dataprinter
42... print =
43...     _files
44...     manifest
45...     data
46... """
47>>> registerConfig(u'quintagroup.transmogrifier.tests.manifest',
48...                manifest)
49>>> transmogrifier(u'quintagroup.transmogrifier.tests.manifest') # doctest: +ELLIPSIS, +REPORT_NDIFF
50{'_entries': (('news', 'Folder'),
51              ('events', 'Folder'),
52              ('front-page', 'Document')),
53 '_files': {'manifest': {'data': ...
54                         'name': '.objects.xml'}},
55 '_path': ''}
56<?xml version="1.0" ?>
57<manifest>
58  <record type="Folder">news</record>
59  <record type="Folder">events</record>
60  <record type="Document">front-page</record>
61</manifest>
62<BLANKLINE>
63{'_entries': (('aggregator', 'Topic'), ('not-existing', 'SomeType')),
64 '_files': {'manifest': {'data': ...
65                         'name': '.objects.xml'}},
66 '_path': 'news',
67 '_type': 'Folder'}
68<?xml version="1.0" ?>
69<manifest>
70  <record type="Topic">aggregator</record>
71  <record type="SomeType">not-existing</record>
72</manifest>
73<BLANKLINE>
74{'_type': 'Topic', '_path': 'news/aggregator'}
75{'_type': 'Folder', '_path': 'events'}
76{'_type': 'Document', '_path': 'front-page'}
Note: See TracBrowser for help on using the repository browser.