Merge lp:goobi-presentation/1.1 into lp:~slub.team/goobi-presentation/old-bzr-trunk
- 1.1
- Merge into old-bzr-trunk
Proposed by
Sebastian Meyer
Status: | Merged |
---|---|
Approved by: | Sebastian Meyer |
Approved revision: | 124 |
Merged at revision: | 85 |
Proposed branch: | lp:goobi-presentation/1.1 |
Merge into: | lp:~slub.team/goobi-presentation/old-bzr-trunk |
Diff against target: |
131851 lines (+64297/-64443) (has conflicts) 210 files modified
dlf/cli/class.tx_dlf_cli.php (+12/-12) dlf/common/class.tx_dlf_document.php (+353/-271) dlf/common/class.tx_dlf_format.php (+11/-11) dlf/common/class.tx_dlf_helper.php (+133/-48) dlf/common/class.tx_dlf_indexing.php (+24/-8) dlf/common/class.tx_dlf_list.php (+97/-27) dlf/common/class.tx_dlf_mods.php (+8/-8) dlf/common/class.tx_dlf_module.php (+32/-32) dlf/common/class.tx_dlf_plugin.php (+48/-33) dlf/common/class.tx_dlf_solr.php (+53/-27) dlf/doc/METS_Anwendungsprofil_2.0.xml (+4342/-4720) dlf/doc/METS_Application_Profile_2.0.xml (+4283/-4652) dlf/ext_autoload.php (+31/-30) dlf/ext_conf_template.txt (+6/-3) dlf/ext_emconf.php (+34/-1) dlf/ext_localconf.php (+3/-1) dlf/ext_tables.php (+149/-142) dlf/ext_tables.sql (+2/-3) dlf/hooks/class.tx_dlf_em.php (+162/-162) dlf/hooks/class.tx_dlf_hacks.php (+8/-8) dlf/hooks/class.tx_dlf_tceforms.php (+26/-26) dlf/hooks/class.tx_dlf_tcemain.php (+79/-79) dlf/lib/ISO-639/iso-639-1.xml (+295/-295) dlf/lib/ISO-639/iso-639-2b.xml (+983/-983) dlf/lib/OpenLayers/lib/Firebug/firebug.css (+89/-101) dlf/lib/OpenLayers/lib/Firebug/firebug.html (+21/-23) dlf/lib/OpenLayers/lib/Firebug/firebug.js (+674/-674) dlf/lib/OpenLayers/lib/Firebug/firebugx.js (+9/-9) dlf/lib/OpenLayers/lib/OpenLayers.js (+328/-328) dlf/lib/OpenLayers/lib/OpenLayers/Ajax.js (+677/-677) dlf/lib/OpenLayers/lib/OpenLayers/BaseTypes.js (+561/-561) dlf/lib/OpenLayers/lib/OpenLayers/BaseTypes/Bounds.js (+680/-680) dlf/lib/OpenLayers/lib/OpenLayers/BaseTypes/Class.js (+114/-114) dlf/lib/OpenLayers/lib/OpenLayers/BaseTypes/Element.js (+246/-246) dlf/lib/OpenLayers/lib/OpenLayers/BaseTypes/LonLat.js (+189/-189) dlf/lib/OpenLayers/lib/OpenLayers/BaseTypes/Pixel.js (+124/-124) dlf/lib/OpenLayers/lib/OpenLayers/BaseTypes/Size.js (+84/-84) dlf/lib/OpenLayers/lib/OpenLayers/Console.js (+245/-245) dlf/lib/OpenLayers/lib/OpenLayers/Control.js (+356/-356) dlf/lib/OpenLayers/lib/OpenLayers/Control/ArgParser.js (+165/-165) dlf/lib/OpenLayers/lib/OpenLayers/Control/Attribution.js (+96/-96) dlf/lib/OpenLayers/lib/OpenLayers/Control/Button.js (+43/-43) dlf/lib/OpenLayers/lib/OpenLayers/Control/DragFeature.js (+302/-302) dlf/lib/OpenLayers/lib/OpenLayers/Control/DragPan.js (+93/-93) dlf/lib/OpenLayers/lib/OpenLayers/Control/DrawFeature.js (+125/-125) dlf/lib/OpenLayers/lib/OpenLayers/Control/EditingToolbar.js (+62/-62) dlf/lib/OpenLayers/lib/OpenLayers/Control/GetFeature.js (+578/-578) dlf/lib/OpenLayers/lib/OpenLayers/Control/Graticule.js (+327/-327) dlf/lib/OpenLayers/lib/OpenLayers/Control/KeyboardDefaults.js (+127/-127) dlf/lib/OpenLayers/lib/OpenLayers/Control/LayerSwitcher.js (+619/-619) dlf/lib/OpenLayers/lib/OpenLayers/Control/ModifyFeature.js (+777/-777) dlf/lib/OpenLayers/lib/OpenLayers/Control/MouseDefaults.js (+367/-367) dlf/lib/OpenLayers/lib/OpenLayers/Control/MousePosition.js (+189/-189) dlf/lib/OpenLayers/lib/OpenLayers/Control/MouseToolbar.js (+405/-405) dlf/lib/OpenLayers/lib/OpenLayers/Control/NavToolbar.js (+54/-54) dlf/lib/OpenLayers/lib/OpenLayers/Control/Navigation.js (+302/-302) dlf/lib/OpenLayers/lib/OpenLayers/Control/OverviewMap.js (+710/-710) dlf/lib/OpenLayers/lib/OpenLayers/Control/PanZoom.js (+245/-245) dlf/lib/OpenLayers/lib/OpenLayers/Control/PanZoomBar.js (+395/-395) dlf/lib/OpenLayers/lib/OpenLayers/Control/Panel.js (+300/-300) dlf/lib/OpenLayers/lib/OpenLayers/Control/Permalink.js (+219/-219) dlf/lib/OpenLayers/lib/OpenLayers/Control/Scale.js (+77/-77) dlf/lib/OpenLayers/lib/OpenLayers/Control/SelectFeature.js (+612/-612) dlf/lib/OpenLayers/lib/OpenLayers/Control/WMSGetFeatureInfo.js (+533/-533) dlf/lib/OpenLayers/lib/OpenLayers/Control/ZoomBox.js (+94/-94) dlf/lib/OpenLayers/lib/OpenLayers/Control/ZoomToMaxExtent.js (+39/-39) dlf/lib/OpenLayers/lib/OpenLayers/Events.js (+854/-854) dlf/lib/OpenLayers/lib/OpenLayers/Feature.js (+226/-226) dlf/lib/OpenLayers/lib/OpenLayers/Feature/Vector.js (+453/-453) dlf/lib/OpenLayers/lib/OpenLayers/Feature/WFS.js (+79/-79) dlf/lib/OpenLayers/lib/OpenLayers/Format.js (+122/-122) dlf/lib/OpenLayers/lib/OpenLayers/Format/GML.js (+913/-913) dlf/lib/OpenLayers/lib/OpenLayers/Format/GeoJSON.js (+715/-715) dlf/lib/OpenLayers/lib/OpenLayers/Format/GeoRSS.js (+419/-419) dlf/lib/OpenLayers/lib/OpenLayers/Format/JSON.js (+388/-388) dlf/lib/OpenLayers/lib/OpenLayers/Format/KML.js (+1288/-1288) dlf/lib/OpenLayers/lib/OpenLayers/Format/OSM.js (+456/-456) dlf/lib/OpenLayers/lib/OpenLayers/Format/SLD.js (+130/-130) dlf/lib/OpenLayers/lib/OpenLayers/Format/SOSGetObservation.js (+260/-260) dlf/lib/OpenLayers/lib/OpenLayers/Format/Text.js (+151/-151) dlf/lib/OpenLayers/lib/OpenLayers/Format/WFS.js (+219/-219) dlf/lib/OpenLayers/lib/OpenLayers/Format/WFSCapabilities.js (+74/-74) dlf/lib/OpenLayers/lib/OpenLayers/Format/WFSCapabilities/v1.js (+116/-116) dlf/lib/OpenLayers/lib/OpenLayers/Format/WFSCapabilities/v1_0_0.js (+151/-151) dlf/lib/OpenLayers/lib/OpenLayers/Format/WFSCapabilities/v1_1_0.js (+30/-30) dlf/lib/OpenLayers/lib/OpenLayers/Format/WKT.js (+353/-353) dlf/lib/OpenLayers/lib/OpenLayers/Format/WMC.js (+396/-396) dlf/lib/OpenLayers/lib/OpenLayers/Format/WMC/v1.js (+818/-818) dlf/lib/OpenLayers/lib/OpenLayers/Format/WMC/v1_0_0.js (+75/-75) dlf/lib/OpenLayers/lib/OpenLayers/Format/WMC/v1_1_0.js (+126/-126) dlf/lib/OpenLayers/lib/OpenLayers/Format/WMSCapabilities/v1_3.js (+123/-123) dlf/lib/OpenLayers/lib/OpenLayers/Format/WMSCapabilities/v1_3_0.js (+25/-25) dlf/lib/OpenLayers/lib/OpenLayers/Format/WMSDescribeLayer.js (+90/-90) dlf/lib/OpenLayers/lib/OpenLayers/Format/WMSDescribeLayer/v1_1.js (+98/-98) dlf/lib/OpenLayers/lib/OpenLayers/Format/WMSGetFeatureInfo.js (+283/-283) dlf/lib/OpenLayers/lib/OpenLayers/Format/XML.js (+880/-880) dlf/lib/OpenLayers/lib/OpenLayers/Geometry.js (+455/-455) dlf/lib/OpenLayers/lib/OpenLayers/Geometry/Collection.js (+499/-499) dlf/lib/OpenLayers/lib/OpenLayers/Geometry/Curve.js (+92/-92) dlf/lib/OpenLayers/lib/OpenLayers/Geometry/LineString.js (+551/-551) dlf/lib/OpenLayers/lib/OpenLayers/Geometry/LinearRing.js (+416/-416) dlf/lib/OpenLayers/lib/OpenLayers/Geometry/MultiLineString.js (+261/-261) dlf/lib/OpenLayers/lib/OpenLayers/Geometry/MultiPoint.js (+69/-69) dlf/lib/OpenLayers/lib/OpenLayers/Geometry/MultiPolygon.js (+45/-45) dlf/lib/OpenLayers/lib/OpenLayers/Geometry/Point.js (+282/-282) dlf/lib/OpenLayers/lib/OpenLayers/Geometry/Polygon.js (+258/-258) dlf/lib/OpenLayers/lib/OpenLayers/Geometry/Rectangle.js (+98/-98) dlf/lib/OpenLayers/lib/OpenLayers/Geometry/Surface.js (+16/-16) dlf/lib/OpenLayers/lib/OpenLayers/Handler.js (+285/-285) dlf/lib/OpenLayers/lib/OpenLayers/Handler/Box.js (+209/-209) dlf/lib/OpenLayers/lib/OpenLayers/Handler/Click.js (+324/-324) dlf/lib/OpenLayers/lib/OpenLayers/Handler/Drag.js (+419/-419) dlf/lib/OpenLayers/lib/OpenLayers/Handler/Feature.js (+387/-387) dlf/lib/OpenLayers/lib/OpenLayers/Handler/Hover.js (+182/-182) dlf/lib/OpenLayers/lib/OpenLayers/Handler/Keyboard.js (+108/-108) dlf/lib/OpenLayers/lib/OpenLayers/Handler/MouseWheel.js (+282/-282) dlf/lib/OpenLayers/lib/OpenLayers/Handler/Path.js (+301/-301) dlf/lib/OpenLayers/lib/OpenLayers/Handler/Point.js (+372/-372) dlf/lib/OpenLayers/lib/OpenLayers/Handler/Polygon.js (+143/-143) dlf/lib/OpenLayers/lib/OpenLayers/Handler/RegularPolygon.js (+410/-410) dlf/lib/OpenLayers/lib/OpenLayers/Icon.js (+227/-227) dlf/lib/OpenLayers/lib/OpenLayers/Lang/de.js (+84/-84) dlf/lib/OpenLayers/lib/OpenLayers/Layer.js (+1197/-1197) dlf/lib/OpenLayers/lib/OpenLayers/Layer/Boxes.js (+75/-75) dlf/lib/OpenLayers/lib/OpenLayers/Layer/EventPane.js (+417/-417) dlf/lib/OpenLayers/lib/OpenLayers/Layer/FixedZoomLevels.js (+314/-314) dlf/lib/OpenLayers/lib/OpenLayers/Layer/GML.js (+173/-173) dlf/lib/OpenLayers/lib/OpenLayers/Layer/GeoRSS.js (+265/-265) dlf/lib/OpenLayers/lib/OpenLayers/Layer/Google.js (+748/-748) dlf/lib/OpenLayers/lib/OpenLayers/Layer/Grid.js (+742/-742) dlf/lib/OpenLayers/lib/OpenLayers/Layer/HTTPRequest.js (+229/-229) dlf/lib/OpenLayers/lib/OpenLayers/Layer/Image.js (+253/-253) dlf/lib/OpenLayers/lib/OpenLayers/Layer/KaMap.js (+205/-205) dlf/lib/OpenLayers/lib/OpenLayers/Layer/MapServer.js (+198/-198) dlf/lib/OpenLayers/lib/OpenLayers/Layer/MapServer/Untiled.js (+71/-71) dlf/lib/OpenLayers/lib/OpenLayers/Layer/Markers.js (+186/-186) dlf/lib/OpenLayers/lib/OpenLayers/Layer/MultiMap.js (+283/-283) dlf/lib/OpenLayers/lib/OpenLayers/Layer/PointTrack.js (+102/-102) dlf/lib/OpenLayers/lib/OpenLayers/Layer/SphericalMercator.js (+159/-159) dlf/lib/OpenLayers/lib/OpenLayers/Layer/TMS.js (+152/-152) dlf/lib/OpenLayers/lib/OpenLayers/Layer/Text.js (+263/-263) dlf/lib/OpenLayers/lib/OpenLayers/Layer/TileCache.js (+164/-164) dlf/lib/OpenLayers/lib/OpenLayers/Layer/Vector.js (+855/-855) dlf/lib/OpenLayers/lib/OpenLayers/Layer/Vector/RootContainer.js (+156/-156) dlf/lib/OpenLayers/lib/OpenLayers/Layer/VirtualEarth.js (+359/-359) dlf/lib/OpenLayers/lib/OpenLayers/Layer/WFS.js (+608/-608) dlf/lib/OpenLayers/lib/OpenLayers/Layer/WMS.js (+265/-265) dlf/lib/OpenLayers/lib/OpenLayers/Layer/WMS/Post.js (+98/-98) dlf/lib/OpenLayers/lib/OpenLayers/Layer/WMS/Untiled.js (+71/-71) dlf/lib/OpenLayers/lib/OpenLayers/Layer/WorldWind.js (+119/-119) dlf/lib/OpenLayers/lib/OpenLayers/Layer/Yahoo.js (+421/-421) dlf/lib/OpenLayers/lib/OpenLayers/Layer/Zoomify.js (+306/-306) dlf/lib/OpenLayers/lib/OpenLayers/Map.js (+2388/-2388) dlf/lib/OpenLayers/lib/OpenLayers/Marker.js (+241/-241) dlf/lib/OpenLayers/lib/OpenLayers/Marker/Box.js (+119/-119) dlf/lib/OpenLayers/lib/OpenLayers/Popup.js (+1051/-1051) dlf/lib/OpenLayers/lib/OpenLayers/Popup/Anchored.js (+197/-197) dlf/lib/OpenLayers/lib/OpenLayers/Popup/AnchoredBubble.js (+189/-189) dlf/lib/OpenLayers/lib/OpenLayers/Projection.js (+177/-177) dlf/lib/OpenLayers/lib/OpenLayers/Renderer.js (+307/-307) dlf/lib/OpenLayers/lib/OpenLayers/Renderer/Elements.js (+1017/-1017) dlf/lib/OpenLayers/lib/OpenLayers/Renderer/SVG.js (+995/-995) dlf/lib/OpenLayers/lib/OpenLayers/Renderer/VML.js (+997/-997) dlf/lib/OpenLayers/lib/OpenLayers/Rule.js (+208/-208) dlf/lib/OpenLayers/lib/OpenLayers/SingleFile.js (+9/-9) dlf/lib/OpenLayers/lib/OpenLayers/Style.js (+411/-411) dlf/lib/OpenLayers/lib/OpenLayers/StyleMap.js (+159/-159) dlf/lib/OpenLayers/lib/OpenLayers/Tile.js (+280/-280) dlf/lib/OpenLayers/lib/OpenLayers/Tile/Image.js (+576/-576) dlf/lib/OpenLayers/lib/OpenLayers/Tile/Image/IFrame.js (+261/-261) dlf/lib/OpenLayers/lib/OpenLayers/Tile/WFS.js (+191/-191) dlf/lib/OpenLayers/lib/OpenLayers/Tween.js (+322/-322) dlf/lib/OpenLayers/lib/OpenLayers/Util.js (+1711/-1711) dlf/lib/OpenLayers/lib/Rico/Color.js (+244/-244) dlf/lib/OpenLayers/lib/Rico/Corner.js (+329/-329) dlf/lib/OpenLayers/theme/default/style.css (+397/-397) dlf/locallang.xml (+6/-10) dlf/modules/conf.php (+2/-2) dlf/modules/indexing/conf.php (+1/-1) dlf/modules/indexing/index.php (+8/-4) dlf/modules/newclient/conf.php (+1/-1) dlf/modules/newclient/index.php (+74/-74) dlf/modules/newclient/locallang.xml (+4/-0) dlf/modules/newclient/metadata.inc.php (+27/-27) dlf/modules/newclient/structures.inc.php (+23/-23) dlf/plugins/collection/class.tx_dlf_collection.php (+58/-16) dlf/plugins/feeds/flexform.xml (+1/-0) dlf/plugins/listview/class.tx_dlf_listview.php (+222/-147) dlf/plugins/listview/template.tmpl (+1/-0) dlf/plugins/metadata/class.tx_dlf_metadata.php (+74/-68) dlf/plugins/metadata/flexform.xml (+13/-1) dlf/plugins/metadata/locallang.xml (+2/-0) dlf/plugins/navigation/class.tx_dlf_navigation.php (+13/-5) dlf/plugins/navigation/flexform.xml (+14/-0) dlf/plugins/oai/class.tx_dlf_oai.php (+9/-3) dlf/plugins/oai/flexform.xml (+95/-94) dlf/plugins/oai/locallang.xml (+42/-42) dlf/plugins/oai/transform.xsl (+499/-647) dlf/plugins/pageview/class.tx_dlf_pageview.php (+3/-3) dlf/plugins/search/class.tx_dlf_search.php (+196/-19) dlf/plugins/search/class.tx_dlf_search_suggest.php (+82/-0) dlf/plugins/search/flexform.xml (+3/-2) dlf/plugins/search/template.tmpl (+2/-1) dlf/plugins/search/tx_dlf_search_suggest.js (+29/-0) dlf/plugins/statistics/class.tx_dlf_statistics.php (+1/-1) dlf/plugins/toc/class.tx_dlf_toc.php (+11/-31) dlf/res/icons/LICENSE.txt (+4/-0) dlf/res/icons/NOTICE.txt (+1/-0) dlf/t3jquery.txt (+1/-0) dlf/tca.php (+33/-57) Text conflict in dlf/ext_emconf.php |
To merge this branch: | bzr merge lp:goobi-presentation/1.1 |
Related bugs: |
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Sebastian Meyer | Approve | ||
Review via email: mp+118930@code.launchpad.net |
Commit message
Description of the change
To post a comment you must log in.
Revision history for this message
Sebastian Meyer (sebastian-meyer) : | # |
review:
Approve
Preview Diff
[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1 | === modified file 'dlf/cli/class.tx_dlf_cli.php' |
2 | --- dlf/cli/class.tx_dlf_cli.php 2012-04-30 16:08:47 +0000 |
3 | +++ dlf/cli/class.tx_dlf_cli.php 2012-08-09 11:45:27 +0000 |
4 | @@ -1,6 +1,6 @@ |
5 | <?php |
6 | /*************************************************************** |
7 | -* Copyright notice |
8 | + * Copyright notice |
9 | * |
10 | * (c) 2012 Sebastian Meyer <sebastian.meyer@slub-dresden.de> |
11 | * All rights reserved |
12 | @@ -67,16 +67,16 @@ |
13 | $this->cli_validateArgs(); |
14 | |
15 | // Get the document... |
16 | - $doc = tx_dlf_document::getInstance($this->cli_args['-doc'][0], 0, TRUE); |
17 | + $doc = tx_dlf_document::getInstance($this->cli_args['-doc'][0], $this->cli_args['-pid'][0], TRUE); |
18 | |
19 | if ($doc->ready) { |
20 | |
21 | // ...and save it to the database... |
22 | if (!$doc->save(intval($this->cli_args['-pid'][0]), intval($this->cli_args['-core'][0]))) { |
23 | |
24 | - $this->cli_echo('ERROR: Document '.$this->cli_args['-doc'][0].' not saved and indexed'.LF, TRUE); |
25 | - |
26 | - exit (1); |
27 | + $this->cli_echo('ERROR: Document '.$this->cli_args['-doc'][0].' not saved and indexed'.LF, TRUE); |
28 | + |
29 | + exit (1); |
30 | |
31 | } |
32 | |
33 | @@ -106,13 +106,13 @@ |
34 | |
35 | // Set basic information about the script. |
36 | $this->cli_help = array ( |
37 | - 'name' => 'Command Line Interface for Goobi.Presentation', |
38 | - 'synopsis' => '###OPTIONS###', |
39 | - 'description' => 'Currently the only task available is "index".'.LF.'Try "/PATH/TO/TYPO3/cli_dispatch.phpsh dlf index" to view more options.', |
40 | - 'examples' => '/PATH/TO/TYPO3/cli_dispatch.phpsh dlf TASK -ARG1=VALUE1 -ARG2=VALUE2', |
41 | - 'options' => '', |
42 | - 'license' => 'GNU GPL - free software!', |
43 | - 'author' => 'Sebastian Meyer <sebastian.meyer@slub-dresden.de>', |
44 | + 'name' => 'Command Line Interface for Goobi.Presentation', |
45 | + 'synopsis' => '###OPTIONS###', |
46 | + 'description' => 'Currently the only task available is "index".'.LF.'Try "/PATH/TO/TYPO3/cli_dispatch.phpsh dlf index" to view more options.', |
47 | + 'examples' => '/PATH/TO/TYPO3/cli_dispatch.phpsh dlf TASK -ARG1=VALUE1 -ARG2=VALUE2', |
48 | + 'options' => '', |
49 | + 'license' => 'GNU GPL - free software!', |
50 | + 'author' => 'Sebastian Meyer <sebastian.meyer@slub-dresden.de>', |
51 | ); |
52 | |
53 | // Run parent constructor. |
54 | |
55 | === modified file 'dlf/common/class.tx_dlf_document.php' |
56 | --- dlf/common/class.tx_dlf_document.php 2012-05-15 07:43:50 +0000 |
57 | +++ dlf/common/class.tx_dlf_document.php 2012-08-09 11:45:27 +0000 |
58 | @@ -47,6 +47,14 @@ |
59 | protected $asXML = ''; |
60 | |
61 | /** |
62 | + * This holds the PID for the configuration |
63 | + * |
64 | + * @var integer |
65 | + * @access protected |
66 | + */ |
67 | + protected $cPid = 0; |
68 | + |
69 | + /** |
70 | * This holds the XML file's dmdSec parts with their IDs as array key |
71 | * |
72 | * @var array |
73 | @@ -151,14 +159,6 @@ |
74 | protected $mets; |
75 | |
76 | /** |
77 | - * This holds the PID for the metadata definitions |
78 | - * |
79 | - * @var integer |
80 | - * @access protected |
81 | - */ |
82 | - protected $mPid = 0; |
83 | - |
84 | - /** |
85 | * The holds the total number of pages |
86 | * |
87 | * @var integer |
88 | @@ -183,6 +183,14 @@ |
89 | protected $physicalPages = array (); |
90 | |
91 | /** |
92 | + * This holds the physical pages' metadata |
93 | + * |
94 | + * @var array |
95 | + * @access protected |
96 | + */ |
97 | + protected $physicalPagesInfo = array (); |
98 | + |
99 | + /** |
100 | * Are the physical pages loaded? |
101 | * @see $physicalPages |
102 | * |
103 | @@ -224,12 +232,21 @@ |
104 | protected static $registry = array (); |
105 | |
106 | /** |
107 | - * This holds the PID for the structure definitions |
108 | - * |
109 | - * @var integer |
110 | - * @access protected |
111 | - */ |
112 | - protected $sPid = 0; |
113 | + * This holds the smLinks between logical and physical structMap |
114 | + * |
115 | + * @var array |
116 | + * @access protected |
117 | + */ |
118 | + protected $smLinks = array ('l2p' => array (), 'p2l' => array ()); |
119 | + |
120 | + /** |
121 | + * Are the smLinks loaded? |
122 | + * @see $smLinks |
123 | + * |
124 | + * @var boolean |
125 | + * @access protected |
126 | + */ |
127 | + protected $smLinksLoaded = FALSE; |
128 | |
129 | /** |
130 | * This holds the logical structure |
131 | @@ -249,6 +266,14 @@ |
132 | protected $tableOfContentsLoaded = FALSE; |
133 | |
134 | /** |
135 | + * This holds the toplevel structure's @ID |
136 | + * |
137 | + * @var string |
138 | + * @access protected |
139 | + */ |
140 | + protected $toplevelId = ''; |
141 | + |
142 | + /** |
143 | * This holds the UID or the URL of the document |
144 | * |
145 | * @var mixed |
146 | @@ -387,6 +412,98 @@ |
147 | /** |
148 | * This gets details about a logical structure element |
149 | * |
150 | + * @access protected |
151 | + * |
152 | + * @param SimpleXMLElement $structure: The logical structure node |
153 | + * @param boolean $recursive: Whether to include the child elements |
154 | + * |
155 | + * @return array Array of the element's id, label, type and physical page indexes/mptr link |
156 | + */ |
157 | + protected function getLogicalStructureInfo(SimpleXMLElement $structure, $recursive = FALSE) { |
158 | + |
159 | + // Get attributes. |
160 | + foreach ($structure->attributes() as $attribute => $value) { |
161 | + |
162 | + $attributes[$attribute] = (string) $value; |
163 | + |
164 | + } |
165 | + |
166 | + // Extract identity information. |
167 | + $details = array (); |
168 | + |
169 | + $details['id'] = $attributes['ID']; |
170 | + |
171 | + $details['dmdId'] = (isset($attributes['DMDID']) ? $attributes['DMDID'] : ''); |
172 | + |
173 | + $details['label'] = (isset($attributes['LABEL']) ? $attributes['LABEL'] : ''); |
174 | + |
175 | + $details['volume'] = ''; |
176 | + |
177 | + if (empty($details['label']) && $details['id'] == $this->_getToplevelId()) { |
178 | + |
179 | + $metadata = $this->getMetadata($details['id']); |
180 | + |
181 | + if (!empty($metadata['volume'][0])) { |
182 | + |
183 | + $details['volume'] = $metadata['volume'][0]; |
184 | + |
185 | + } |
186 | + |
187 | + } |
188 | + |
189 | + $details['pagination'] = ''; |
190 | + |
191 | + $details['type'] = $attributes['TYPE']; |
192 | + |
193 | + // Get the physical page or external file this structure element is pointing at. |
194 | + $details['points'] = ''; |
195 | + |
196 | + // Is there a mptr node? |
197 | + if (!empty($structure->children('http://www.loc.gov/METS/')->mptr)) { |
198 | + |
199 | + // Yes. Get the file reference. |
200 | + $details['points'] = (string) $structure->children('http://www.loc.gov/METS/')->mptr[0]->attributes('http://www.w3.org/1999/xlink')->href; |
201 | + |
202 | + // Are there any physical pages and is this logical unit linked to at least one of them? |
203 | + } elseif ($this->_getPhysicalPages() && array_key_exists($details['id'], $this->smLinks['l2p'])) { |
204 | + |
205 | + $details['points'] = max(intval(array_search($this->smLinks['l2p'][$details['id']][0], $this->physicalPages, TRUE)), 1); |
206 | + |
207 | + // Get page number of the first page related to this structure element. |
208 | + $details['pagination'] = $this->physicalPagesInfo[$id]['label']; |
209 | + |
210 | + // Is this the toplevel structure? |
211 | + } elseif ($details['id'] == $this->_getToplevelId()) { |
212 | + |
213 | + // Yes. Point to itself. |
214 | + $details['points'] = 1; |
215 | + |
216 | + } |
217 | + |
218 | + // Keep for later usage. |
219 | + $this->logicalUnits[$details['id']] = $details; |
220 | + |
221 | + // Walk the structure recursively? And are there any children of the current element? |
222 | + if ($recursive && !empty($structure->children('http://www.loc.gov/METS/')->div)) { |
223 | + |
224 | + $details['children'] = array (); |
225 | + |
226 | + foreach ($structure->children('http://www.loc.gov/METS/')->div as $child) { |
227 | + |
228 | + // Repeat for all children. |
229 | + $details['children'][] = $this->getLogicalStructureInfo($child, $recursive); |
230 | + |
231 | + } |
232 | + |
233 | + } |
234 | + |
235 | + return $details; |
236 | + |
237 | + } |
238 | + |
239 | + /** |
240 | + * This gets details about a logical structure element |
241 | + * |
242 | * @access public |
243 | * |
244 | * @param string $id: The @ID attribute of the logical structure node |
245 | @@ -394,109 +511,47 @@ |
246 | * |
247 | * @return array Array of the element's id, label, type and physical page indexes/mptr link |
248 | */ |
249 | - public function getLogicalStructure($id, $recursive = FALSE) { |
250 | + public function getLogicalStructure($id = '', $recursive = FALSE) { |
251 | |
252 | // Is the requested logical unit already loaded? |
253 | - if (!$recursive && !empty($this->logicalUnits[$id])) { |
254 | + if (!$recursive && !empty($id) && !empty($this->logicalUnits[$id])) { |
255 | |
256 | // Yes. Return it. |
257 | return $this->logicalUnits[$id]; |
258 | |
259 | - } elseif (($_div = $this->mets->xpath('./mets:structMap[@TYPE="LOGICAL"]//mets:div[@ID="'.$id.'"]'))) { |
260 | - |
261 | - // Load physical pages. |
262 | - $this->_getPhysicalPages(); |
263 | - |
264 | - $_struct = $_div[0]; |
265 | - |
266 | - $this->registerNamespaces($_struct); |
267 | - |
268 | - // Extract identity information. |
269 | - $_details = array (); |
270 | - |
271 | - $_details['id'] = (string) $_struct['ID']; |
272 | - |
273 | - $_details['dmdId'] = (isset($_struct['DMDID']) ? (string) $_struct['DMDID'] : ''); |
274 | - |
275 | - $_details['label'] = (isset($_struct['LABEL']) ? (string) $_struct['LABEL'] : ''); |
276 | - |
277 | - $_details['volume'] = ''; |
278 | - |
279 | - if (empty($_details['label'])) { |
280 | - |
281 | - $_metadata = $this->getMetadata($id); |
282 | - |
283 | - if (!empty($_metadata['volume'][0])) { |
284 | - |
285 | - $_details['volume'] = $_metadata['volume'][0]; |
286 | - |
287 | - } |
288 | - |
289 | - } |
290 | - |
291 | - $_details['pagination'] = ''; |
292 | - |
293 | - $_details['type'] = (string) $_struct['TYPE']; |
294 | - |
295 | - // Get the physical page or external file this structure element is pointing at. |
296 | - $_details['points'] = ''; |
297 | - |
298 | - // Is there a mptr node? |
299 | - if (($_mptr = $_struct->xpath('./mets:mptr[@LOCTYPE="URL"]'))) { |
300 | - |
301 | - // Yes. Get the file reference. |
302 | - $_details['points'] = (string) $_mptr[0]->attributes('http://www.w3.org/1999/xlink')->href; |
303 | - |
304 | - // Are there any physical pages? |
305 | - } elseif ($this->physicalPages) { |
306 | - |
307 | - // Yes. Get first physical page related to this structure element. |
308 | - if (($_smLink = $this->mets->xpath('./mets:structLink/mets:smLink[@xlink:from="'.(string) $_struct['ID'].'"]'))) { |
309 | - |
310 | - $_details['points'] = tx_dlf_helper::array_search_recursive($_smLink[0]->attributes('http://www.w3.org/1999/xlink')->to, $this->physicalPages); |
311 | - |
312 | - // Check if smLink points to the "physSequence" element (in which case it should point to the first image). |
313 | - $_details['points'] = max(intval($_details['points']), 1); |
314 | - |
315 | - // Get page number of the first page related to this structure element. |
316 | - $_details['pagination'] = $this->physicalPages[$_details['points']]['label']; |
317 | - |
318 | - } else { |
319 | - |
320 | - trigger_error('No physical element related to logical element with @ID '.(string) $_struct['ID'], E_USER_WARNING); |
321 | - |
322 | - } |
323 | - |
324 | - // Is this the toplevel structure? |
325 | - } elseif ($_details['id'] == $this->getToplevelId()) { |
326 | - |
327 | - // Yes. Point to itself. |
328 | - $_details['points'] = 1; |
329 | - |
330 | - } |
331 | - |
332 | - // Keep for later usage. |
333 | - $this->logicalUnits[$id] = $_details; |
334 | - |
335 | - // Walk the structure recursively? And are there any children of the current element? |
336 | - if ($recursive && ($_children = $_struct->xpath('./mets:div/@ID'))) { |
337 | - |
338 | - $_details['children'] = array (); |
339 | - |
340 | - foreach ($_children as $_child) { |
341 | - |
342 | - // Repeat for all children. |
343 | - $_details['children'][] = $this->getLogicalStructure((string) $_child, TRUE); |
344 | - |
345 | - } |
346 | - |
347 | - } |
348 | - |
349 | - return $_details; |
350 | + } elseif (!empty($id)) { |
351 | + |
352 | + // Get specified logical unit. |
353 | + $div = $this->mets->xpath('./mets:structMap[@TYPE="LOGICAL"]//mets:div[@ID="'.$id.'"]'); |
354 | + |
355 | + } elseif ($recursive) { |
356 | + |
357 | + // Get all logical units at top level. |
358 | + $div = $this->mets->xpath('./mets:structMap[@TYPE="LOGICAL"]/mets:div'); |
359 | + |
360 | + } |
361 | + |
362 | + if (!empty($div)) { |
363 | + |
364 | + // Load smLinks. |
365 | + $this->_getSmLinks(); |
366 | + |
367 | + foreach ($div as $structure) { |
368 | + |
369 | + // Get logical unit's details. |
370 | + $this->tableOfContents[] = $this->getLogicalStructureInfo($structure, $recursive); |
371 | + |
372 | + } |
373 | + |
374 | + } |
375 | + |
376 | + if (!empty($this->logicalUnits[$id])) { |
377 | + |
378 | + return $this->logicalUnits[$id]; |
379 | |
380 | } else { |
381 | |
382 | - trigger_error('There is no logical structure node with @ID '.$id, E_USER_WARNING); |
383 | +// trigger_error('There is no logical structure node with @ID '.$id, E_USER_WARNING); |
384 | |
385 | return array (); |
386 | |
387 | @@ -510,32 +565,32 @@ |
388 | * @access public |
389 | * |
390 | * @param string $id: The @ID attribute of the logical structure node |
391 | - * @param integer $mPid: The PID for the metadata definitions |
392 | - * (defaults to $this->mPid or $this->pid) |
393 | + * @param integer $cPid: The PID for the metadata definitions |
394 | + * (defaults to $this->cPid or $this->pid) |
395 | * |
396 | * @return array The logical structure node's parsed metadata array |
397 | */ |
398 | - public function getMetadata($id, $mPid = 0) { |
399 | - |
400 | - // Make sure $mPid is a non-negative integer. |
401 | - $mPid = max(intval($mPid), 0); |
402 | - |
403 | - // If $mPid is not given, try to get it elsewhere. |
404 | - if (!$mPid && ($this->mPid || $this->pid)) { |
405 | + public function getMetadata($id, $cPid = 0) { |
406 | + |
407 | + // Make sure $cPid is a non-negative integer. |
408 | + $cPid = max(intval($cPid), 0); |
409 | + |
410 | + // If $cPid is not given, try to get it elsewhere. |
411 | + if (!$cPid && ($this->cPid || $this->pid)) { |
412 | |
413 | // Retain current PID. |
414 | - $mPid = ($this->mPid ? $this->mPid : $this->pid); |
415 | - |
416 | - } elseif (!$mPid) { |
417 | - |
418 | - trigger_error('Invalid PID ('.$mPid.') for metadata definitions', E_USER_WARNING); |
419 | + $cPid = ($this->cPid ? $this->cPid : $this->pid); |
420 | + |
421 | + } elseif (!$cPid) { |
422 | + |
423 | + trigger_error('Invalid PID ('.$cPid.') for metadata definitions', E_USER_WARNING); |
424 | |
425 | return array (); |
426 | |
427 | } |
428 | |
429 | // Get metadata from parsed metadata array if available. |
430 | - if (!empty($this->metadataArray[$id]) && $this->metadataArray[0] == $mPid) { |
431 | + if (!empty($this->metadataArray[$id]) && $this->metadataArray[0] == $cPid) { |
432 | |
433 | return $this->metadataArray[$id]; |
434 | |
435 | @@ -546,11 +601,8 @@ |
436 | 'title' => array (), |
437 | 'title_sorting' => array (), |
438 | 'author' => array (), |
439 | - 'author_sorting' => array (), |
440 | 'place' => array (), |
441 | - 'place_sorting' => array (), |
442 | 'year' => array (), |
443 | - 'year_sorting' => array (), |
444 | 'prod_id' => array (), |
445 | 'record_id' => array (), |
446 | 'opac_id' => array (), |
447 | @@ -631,7 +683,7 @@ |
448 | $_result = $GLOBALS['TYPO3_DB']->exec_SELECTquery( |
449 | 'tx_dlf_metadata.index_name AS index_name,tx_dlf_metadata.xpath AS xpath,tx_dlf_metadata.xpath_sorting AS xpath_sorting,tx_dlf_metadata.is_sortable AS is_sortable,tx_dlf_metadata.default_value AS default_value', |
450 | 'tx_dlf_metadata,tx_dlf_formats', |
451 | - 'tx_dlf_metadata.pid='.$mPid.' AND ((tx_dlf_metadata.encoded=tx_dlf_formats.uid AND tx_dlf_formats.type='.$GLOBALS['TYPO3_DB']->fullQuoteStr($this->dmdSec[$_dmdId]['type'], 'tx_dlf_formats').') OR tx_dlf_metadata.encoded=0)'.tx_dlf_helper::whereClause('tx_dlf_metadata').tx_dlf_helper::whereClause('tx_dlf_formats'), |
452 | + 'tx_dlf_metadata.pid='.$cPid.' AND ((tx_dlf_metadata.encoded=tx_dlf_formats.uid AND tx_dlf_formats.type='.$GLOBALS['TYPO3_DB']->fullQuoteStr($this->dmdSec[$_dmdId]['type'], 'tx_dlf_formats').') OR tx_dlf_metadata.encoded=0)'.tx_dlf_helper::whereClause('tx_dlf_metadata', TRUE).tx_dlf_helper::whereClause('tx_dlf_formats'), |
453 | '', |
454 | '', |
455 | '' |
456 | @@ -678,25 +730,25 @@ |
457 | // Set sorting value if applicable. |
458 | if (!empty($_metadata[$resArray['index_name']]) && $resArray['is_sortable']) { |
459 | |
460 | - if ($resArray['xpath_sorting'] && ($_values = $_domXPath->evaluate($resArray['xpath_sorting'], $_domNode))) { |
461 | - |
462 | + if ($resArray['xpath_sorting'] && ($_values = $_domXPath->evaluate($resArray['xpath_sorting'], $_domNode))) { |
463 | + |
464 | if ($_values instanceof DOMNodeList && $_values->length > 0) { |
465 | |
466 | - $_metadata[$resArray['index_name'].'_sorting'][0] = trim((string) $_values->item(0)->nodeValue); |
467 | - |
468 | + $_metadata[$resArray['index_name'].'_sorting'][0] = trim((string) $_values->item(0)->nodeValue); |
469 | + |
470 | } elseif (!($_values instanceof DOMNodeList)) { |
471 | |
472 | $_metadata[$resArray['index_name'].'_sorting'][0] = trim((string) $_values); |
473 | |
474 | - } |
475 | - |
476 | + } |
477 | + |
478 | } |
479 | |
480 | if (empty($_metadata[$resArray['index_name'].'_sorting'][0])) { |
481 | |
482 | $_metadata[$resArray['index_name'].'_sorting'][0] = $_metadata[$resArray['index_name']][0]; |
483 | |
484 | - } |
485 | + } |
486 | |
487 | } |
488 | |
489 | @@ -783,13 +835,13 @@ |
490 | * |
491 | * @access public |
492 | * |
493 | - * @param integer $mPid: The PID for the metadata definitions |
494 | + * @param integer $cPid: The PID for the metadata definitions |
495 | * |
496 | * @return array The logical structure node's parsed metadata array |
497 | */ |
498 | - public function getTitledata($mPid = 0) { |
499 | + public function getTitledata($cPid = 0) { |
500 | |
501 | - $titledata = $this->getMetadata($this->getToplevelId(), $mPid); |
502 | + $titledata = $this->getMetadata($this->_getToplevelId(), $cPid); |
503 | |
504 | // Set record identifier for METS file. |
505 | array_unshift($titledata['record_id'], $this->recordid); |
506 | @@ -799,45 +851,6 @@ |
507 | } |
508 | |
509 | /** |
510 | - * This returns the ID of the toplevel logical structure node |
511 | - * |
512 | - * @access public |
513 | - * |
514 | - * @return string The logical structure node's ID |
515 | - */ |
516 | - public function getToplevelId() { |
517 | - |
518 | - $id = ''; |
519 | - |
520 | - // Get all logical structure nodes with metadata. |
521 | - if (($_divs = $this->mets->xpath('./mets:structMap[@TYPE="LOGICAL"]//mets:div[@DMDID]'))) { |
522 | - |
523 | - foreach ($_divs as $_div) { |
524 | - |
525 | - $_id = (string) $_div['ID']; |
526 | - |
527 | - // Are there physical structure nodes for this logical structure? |
528 | - if ($this->mets->xpath('./mets:structLink/mets:smLink[@xlink:from="'.$_id.'"]')) { |
529 | - |
530 | - // Yes. That's what we're looking for. |
531 | - return $_id; |
532 | - |
533 | - } elseif (!$id) { |
534 | - |
535 | - // No. Remember this anyway, but keep looking for a better one. |
536 | - $id = $_id; |
537 | - |
538 | - } |
539 | - |
540 | - } |
541 | - |
542 | - } |
543 | - |
544 | - return $id; |
545 | - |
546 | - } |
547 | - |
548 | - /** |
549 | * This sets some basic class properties |
550 | * |
551 | * @access protected |
552 | @@ -1081,7 +1094,7 @@ |
553 | } |
554 | |
555 | // Set PID for metadata definitions. |
556 | - $this->mPid = $pid; |
557 | + $this->cPid = $pid; |
558 | |
559 | // Set location if inserting new document. |
560 | $location = ''; |
561 | @@ -1135,6 +1148,8 @@ |
562 | |
563 | } |
564 | |
565 | + $metadata['type'][0] = $structure; |
566 | + |
567 | // Get UIDs for collections. |
568 | $collections = array (); |
569 | |
570 | @@ -1218,6 +1233,8 @@ |
571 | |
572 | } |
573 | |
574 | + $metadata['collection'] = $collections; |
575 | + |
576 | // Get UID for owner. |
577 | $owner = 0; |
578 | |
579 | @@ -1271,6 +1288,8 @@ |
580 | |
581 | } |
582 | |
583 | + $metadata['owner'][0] = $owner; |
584 | + |
585 | // Load table of contents. |
586 | $this->_getTableOfContents(); |
587 | |
588 | @@ -1295,13 +1314,15 @@ |
589 | |
590 | } |
591 | |
592 | - // Get metadata for lists. |
593 | + // Get metadata for lists and sorting. |
594 | $listed = array (); |
595 | |
596 | + $sortable = array (); |
597 | + |
598 | $result = $GLOBALS['TYPO3_DB']->exec_SELECTquery( |
599 | - 'tx_dlf_metadata.index_name AS index_name', |
600 | + 'tx_dlf_metadata.index_name AS index_name,tx_dlf_metadata.is_listed AS is_listed,tx_dlf_metadata.is_sortable AS is_sortable', |
601 | 'tx_dlf_metadata', |
602 | - 'tx_dlf_metadata.is_listed=1 AND tx_dlf_metadata.pid='.intval($pid).tx_dlf_helper::whereClause('tx_dlf_metadata'), |
603 | + '(tx_dlf_metadata.is_listed=1 OR tx_dlf_metadata.is_sortable=1) AND tx_dlf_metadata.pid='.intval($pid).tx_dlf_helper::whereClause('tx_dlf_metadata'), |
604 | '', |
605 | '', |
606 | '' |
607 | @@ -1311,7 +1332,17 @@ |
608 | |
609 | if (!empty($metadata[$resArray['index_name']])) { |
610 | |
611 | - $listed[$resArray['index_name']] = $metadata[$resArray['index_name']]; |
612 | + if ($resArray['is_listed']) { |
613 | + |
614 | + $listed[$resArray['index_name']] = $metadata[$resArray['index_name']]; |
615 | + |
616 | + } |
617 | + |
618 | + if ($resArray['is_sortable']) { |
619 | + |
620 | + $sortable[$resArray['index_name']] = $metadata[$resArray['index_name']][0]; |
621 | + |
622 | + } |
623 | |
624 | } |
625 | |
626 | @@ -1328,19 +1359,17 @@ |
627 | 'purl' => $metadata['purl'][0], |
628 | 'title' => $metadata['title'][0], |
629 | 'title_sorting' => $metadata['title_sorting'][0], |
630 | - 'author' => $metadata['author'][0], |
631 | - 'author_sorting' => $metadata['author_sorting'][0], |
632 | - 'year' => $metadata['year'][0], |
633 | - 'year_sorting' => $metadata['year_sorting'][0], |
634 | - 'place' => $metadata['place'][0], |
635 | - 'place_sorting' => $metadata['place_sorting'][0], |
636 | - 'metadata' => json_encode($listed), |
637 | - 'structure' => $structure, |
638 | + 'author' => implode('; ', $metadata['author']), |
639 | + 'year' => implode('; ', $metadata['year']), |
640 | + 'place' => implode('; ', $metadata['place']), |
641 | + 'metadata' => serialize($listed), |
642 | + 'metadata_sorting' => serialize($sortable), |
643 | + 'structure' => $metadata['type'][0], |
644 | 'partof' => $partof, |
645 | 'volume' => $metadata['volume'][0], |
646 | 'volume_sorting' => $metadata['volume_sorting'][0], |
647 | - 'collections' => $collections, |
648 | - 'owner' => $owner, |
649 | + 'collections' => $metadata['collection'], |
650 | + 'owner' => $metadata['owner'][0], |
651 | 'solrcore' => $core, |
652 | 'status' => 0, |
653 | ); |
654 | @@ -1381,6 +1410,19 @@ |
655 | } |
656 | |
657 | /** |
658 | + * This returns $this->cPid via __get() |
659 | + * |
660 | + * @access protected |
661 | + * |
662 | + * @return integer The PID of the metadata definitions |
663 | + */ |
664 | + protected function _getCPid() { |
665 | + |
666 | + return $this->cPid; |
667 | + |
668 | + } |
669 | + |
670 | + /** |
671 | * This builds an array of the document's dmdSecs |
672 | * |
673 | * @access protected |
674 | @@ -1461,9 +1503,9 @@ |
675 | protected function _getMetadataArray() { |
676 | |
677 | // Set metadata definitions' PID. |
678 | - $mPid = ($this->mPid ? $this->mPid : $this->pid); |
679 | + $cPid = ($this->cPid ? $this->cPid : $this->pid); |
680 | |
681 | - if (!$mPid) { |
682 | + if (!$cPid) { |
683 | |
684 | trigger_error('No PID for metadata definitions found', E_USER_ERROR); |
685 | |
686 | @@ -1471,21 +1513,21 @@ |
687 | |
688 | } |
689 | |
690 | - if (!$this->metadataArrayLoaded || $this->metadataArray[0] != $mPid) { |
691 | + if (!$this->metadataArrayLoaded || $this->metadataArray[0] != $cPid) { |
692 | |
693 | // Get all logical structure nodes with metadata |
694 | if (($_ids = $this->mets->xpath('./mets:structMap[@TYPE="LOGICAL"]//mets:div[@DMDID]/@ID'))) { |
695 | |
696 | foreach ($_ids as $_id) { |
697 | |
698 | - $this->metadataArray[(string) $_id] = $this->getMetadata((string) $_id, $mPid); |
699 | + $this->metadataArray[(string) $_id] = $this->getMetadata((string) $_id, $cPid); |
700 | |
701 | } |
702 | |
703 | } |
704 | |
705 | // Set current PID for metadata definitions. |
706 | - $this->metadataArray[0] = $mPid; |
707 | + $this->metadataArray[0] = $cPid; |
708 | |
709 | $this->metadataArrayLoaded = TRUE; |
710 | |
711 | @@ -1509,19 +1551,6 @@ |
712 | } |
713 | |
714 | /** |
715 | - * This returns $this->mPid via __get() |
716 | - * |
717 | - * @access protected |
718 | - * |
719 | - * @return integer The PID of the metadata definitions |
720 | - */ |
721 | - protected function _getMPid() { |
722 | - |
723 | - return $this->mPid; |
724 | - |
725 | - } |
726 | - |
727 | - /** |
728 | * This returns $this->numPages via __get() |
729 | * |
730 | * @access protected |
731 | @@ -1592,13 +1621,13 @@ |
732 | // Get the physical sequence's metadata. |
733 | $_physNode = $this->mets->xpath('./mets:structMap[@TYPE="PHYSICAL"]/mets:div[@TYPE="physSequence"]'); |
734 | |
735 | - $_physSeq[0]['id'] = (string) $_physNode[0]['ID']; |
736 | - |
737 | - $_physSeq[0]['dmdId'] = (isset($_physNode[0]['DMDID']) ? (string) $_physNode[0]['DMDID'] : ''); |
738 | - |
739 | - $_physSeq[0]['label'] = (isset($_physNode[0]['ORDERLABEL']) ? (string) $_physNode[0]['ORDERLABEL'] : ''); |
740 | - |
741 | - $_physSeq[0]['type'] = (string) $_physNode[0]['TYPE']; |
742 | + $_physSeq[0] = (string) $_physNode[0]['ID']; |
743 | + |
744 | + $this->physicalPagesInfo[$_physSeq[0]]['dmdId'] = (isset($_physNode[0]['DMDID']) ? (string) $_physNode[0]['DMDID'] : ''); |
745 | + |
746 | + $this->physicalPagesInfo[$_physSeq[0]]['label'] = (isset($_physNode[0]['ORDERLABEL']) ? (string) $_physNode[0]['ORDERLABEL'] : ''); |
747 | + |
748 | + $this->physicalPagesInfo[$_physSeq[0]]['type'] = (string) $_physNode[0]['TYPE']; |
749 | |
750 | // Get the file representations from fileSec node. |
751 | foreach ($_physNode[0]->children('http://www.loc.gov/METS/')->fptr as $_fptr) { |
752 | @@ -1606,7 +1635,7 @@ |
753 | // Check if file has valid @USE attribute. |
754 | if (!empty($_fileUse[(string) $_fptr->attributes()->FILEID])) { |
755 | |
756 | - $_physSeq[0]['files'][strtolower($_fileUse[(string) $_fptr->attributes()->FILEID])] = (string) $_fptr->attributes()->FILEID; |
757 | + $this->physicalPagesInfo[$_physSeq[0]]['files'][strtolower($_fileUse[(string) $_fptr->attributes()->FILEID])] = (string) $_fptr->attributes()->FILEID; |
758 | |
759 | } |
760 | |
761 | @@ -1615,13 +1644,13 @@ |
762 | // Build the physical pages' array from the physical structMap node. |
763 | foreach ($_pageNodes as $_pageNode) { |
764 | |
765 | - $_pages[(int) $_pageNode['ORDER']]['id'] = (string) $_pageNode['ID']; |
766 | - |
767 | - $_pages[(int) $_pageNode['ORDER']]['dmdId'] = (isset($_pageNode['DMDID']) ? (string) $_pageNode['DMDID'] : ''); |
768 | - |
769 | - $_pages[(int) $_pageNode['ORDER']]['label'] = (isset($_pageNode['ORDERLABEL']) ? (string) $_pageNode['ORDERLABEL'] : ''); |
770 | - |
771 | - $_pages[(int) $_pageNode['ORDER']]['type'] = (string) $_pageNode['TYPE']; |
772 | + $_pages[(int) $_pageNode['ORDER']] = (string) $_pageNode['ID']; |
773 | + |
774 | + $this->physicalPagesInfo[$_pages[(int) $_pageNode['ORDER']]]['dmdId'] = (isset($_pageNode['DMDID']) ? (string) $_pageNode['DMDID'] : ''); |
775 | + |
776 | + $this->physicalPagesInfo[$_pages[(int) $_pageNode['ORDER']]]['label'] = (isset($_pageNode['ORDERLABEL']) ? (string) $_pageNode['ORDERLABEL'] : ''); |
777 | + |
778 | + $this->physicalPagesInfo[$_pages[(int) $_pageNode['ORDER']]]['type'] = (string) $_pageNode['TYPE']; |
779 | |
780 | // Get the file representations from fileSec node. |
781 | foreach ($_pageNode->children('http://www.loc.gov/METS/')->fptr as $_fptr) { |
782 | @@ -1629,7 +1658,7 @@ |
783 | // Check if file has valid @USE attribute. |
784 | if (!empty($_fileUse[(string) $_fptr->attributes()->FILEID])) { |
785 | |
786 | - $_pages[(int) $_pageNode['ORDER']]['files'][strtolower($_fileUse[(string) $_fptr->attributes()->FILEID])] = (string) $_fptr->attributes()->FILEID; |
787 | + $this->physicalPagesInfo[$_pages[(int) $_pageNode['ORDER']]]['files'][strtolower($_fileUse[(string) $_fptr->attributes()->FILEID])] = (string) $_fptr->attributes()->FILEID; |
788 | |
789 | } |
790 | |
791 | @@ -1659,6 +1688,27 @@ |
792 | } |
793 | |
794 | /** |
795 | + * This gives an array of the document's physical pages metadata |
796 | + * |
797 | + * @access protected |
798 | + * |
799 | + * @return array Array of pages' type, label and file representations ordered by @ID attribute |
800 | + */ |
801 | + protected function _getPhysicalPagesInfo() { |
802 | + |
803 | + // Is there no physical pages array yet? |
804 | + if (!$this->physicalPagesLoaded) { |
805 | + |
806 | + // Build physical pages array. |
807 | + $this->_getPhysicalPages(); |
808 | + |
809 | + } |
810 | + |
811 | + return $this->physicalPagesInfo; |
812 | + |
813 | + } |
814 | + |
815 | + /** |
816 | * This returns $this->pid via __get() |
817 | * |
818 | * @access protected |
819 | @@ -1698,15 +1748,77 @@ |
820 | } |
821 | |
822 | /** |
823 | - * This returns $this->sPid via __get() |
824 | - * |
825 | - * @access protected |
826 | - * |
827 | - * @return integer The PID of the structure definitions |
828 | - */ |
829 | - protected function _getSPid() { |
830 | - |
831 | - return $this->sPid; |
832 | + * This returns the smLinks between logical and physical structMap |
833 | + * |
834 | + * @access protected |
835 | + * |
836 | + * @return array The links between logical and physical nodes |
837 | + */ |
838 | + protected function _getSmLinks() { |
839 | + |
840 | + if (!$this->smLinksLoaded) { |
841 | + |
842 | + $smLinks = $this->mets->xpath('./mets:structLink/mets:smLink'); |
843 | + |
844 | + foreach ($smLinks as $smLink) { |
845 | + |
846 | + $this->smLinks['l2p'][(string) $smLink->attributes('http://www.w3.org/1999/xlink')->from][] = (string) $smLink->attributes('http://www.w3.org/1999/xlink')->to; |
847 | + |
848 | + $this->smLinks['p2l'][(string) $smLink->attributes('http://www.w3.org/1999/xlink')->to][] = (string) $smLink->attributes('http://www.w3.org/1999/xlink')->from; |
849 | + |
850 | + } |
851 | + |
852 | + $this->smLinksLoaded = TRUE; |
853 | + |
854 | + } |
855 | + |
856 | + return $this->smLinks; |
857 | + |
858 | + } |
859 | + |
860 | + /** |
861 | + * This returns the ID of the toplevel logical structure node |
862 | + * |
863 | + * @access protected |
864 | + * |
865 | + * @return string The logical structure node's ID |
866 | + */ |
867 | + protected function _getToplevelId() { |
868 | + |
869 | + if (empty($this->toplevelId)) { |
870 | + |
871 | + // Get all logical structure nodes with metadata. |
872 | + if (($divs = $this->mets->xpath('./mets:structMap[@TYPE="LOGICAL"]//mets:div[@DMDID]'))) { |
873 | + |
874 | + // Load smLinks. |
875 | + $this->_getSmLinks(); |
876 | + |
877 | + foreach ($divs as $div) { |
878 | + |
879 | + $id = (string) $div['ID']; |
880 | + |
881 | + // Are there physical structure nodes for this logical structure? |
882 | + if (array_key_exists($id, $this->smLinks['l2p'])) { |
883 | + |
884 | + // Yes. That's what we're looking for. |
885 | + $this->toplevelId = $id; |
886 | + |
887 | + break; |
888 | + |
889 | + } elseif (empty($this->toplevelId)) { |
890 | + |
891 | + // No. Remember this anyway, but keep looking for a better one. |
892 | + $this->toplevelId = $id; |
893 | + |
894 | + } |
895 | + |
896 | + } |
897 | + |
898 | + } |
899 | + |
900 | + } |
901 | + |
902 | + return $this->toplevelId; |
903 | |
904 | } |
905 | |
906 | @@ -1722,23 +1834,8 @@ |
907 | // Is there no logical structure array yet? |
908 | if (!$this->tableOfContentsLoaded) { |
909 | |
910 | - // Does the document have a structMap node of type "LOGICAL"? |
911 | - $_ids = $this->mets->xpath('./mets:structMap[@TYPE="LOGICAL"]/mets:div/@ID'); |
912 | - |
913 | - if ($_ids) { |
914 | - |
915 | - // Yes. So build the logical structure array from the logical structMap node. |
916 | - foreach ($_ids as $_id) { |
917 | - |
918 | - $this->tableOfContents[] = $this->getLogicalStructure((string) $_id, TRUE); |
919 | - |
920 | - } |
921 | - |
922 | - } else { |
923 | - |
924 | - trigger_error('No logical structure found in document', E_USER_WARNING); |
925 | - |
926 | - } |
927 | + // Get all logical structures. |
928 | + $this->getLogicalStructure('', TRUE); |
929 | |
930 | $this->tableOfContentsLoaded = TRUE; |
931 | |
932 | @@ -1762,7 +1859,7 @@ |
933 | } |
934 | |
935 | /** |
936 | - * This sets $this->mPid via __set() |
937 | + * This sets $this->cPid via __set() |
938 | * |
939 | * @access protected |
940 | * |
941 | @@ -1770,24 +1867,9 @@ |
942 | * |
943 | * @return void |
944 | */ |
945 | - protected function _setMPid($value) { |
946 | - |
947 | - $this->mPid = max(intval($value), 0); |
948 | - |
949 | - } |
950 | - |
951 | - /** |
952 | - * This sets $this->sPid via __set() |
953 | - * |
954 | - * @access protected |
955 | - * |
956 | - * @param integer $value: The new PID for the structure definitions |
957 | - * |
958 | - * @return void |
959 | - */ |
960 | - protected function _setSPid($value) { |
961 | - |
962 | - $this->sPid = max(intval($value), 0); |
963 | + protected function _setCPid($value) { |
964 | + |
965 | + $this->cPid = max(intval($value), 0); |
966 | |
967 | } |
968 | |
969 | @@ -1857,7 +1939,7 @@ |
970 | |
971 | } |
972 | |
973 | - if ($this->recordid) { |
974 | + if (!empty($this->recordid)) { |
975 | |
976 | $whereClause = 'tx_dlf_documents.record_id='.$GLOBALS['TYPO3_DB']->fullQuoteStr($this->recordid, 'tx_dlf_documents').tx_dlf_helper::whereClause('tx_dlf_documents'); |
977 | |
978 | |
979 | === modified file 'dlf/common/class.tx_dlf_format.php' |
980 | --- dlf/common/class.tx_dlf_format.php 2011-04-01 15:53:16 +0000 |
981 | +++ dlf/common/class.tx_dlf_format.php 2012-08-09 11:45:27 +0000 |
982 | @@ -1,6 +1,6 @@ |
983 | <?php |
984 | /*************************************************************** |
985 | -* Copyright notice |
986 | + * Copyright notice |
987 | * |
988 | * (c) 2011 Sebastian Meyer <sebastian.meyer@slub-dresden.de> |
989 | * All rights reserved |
990 | @@ -28,14 +28,14 @@ |
991 | |
992 | /** |
993 | * Interface 'tx_dlf_format' for the 'dlf' extension. |
994 | - * |
995 | - * @author Sebastian Meyer <sebastian.meyer@slub-dresden.de> |
996 | - * @copyright Copyright (c) 2011, Sebastian Meyer, SLUB Dresden |
997 | - * @package TYPO3 |
998 | - * @subpackage tx_dlf |
999 | - * @access public |
1000 | - * @abstract |
1001 | - */ |
1002 | +* |
1003 | +* @author Sebastian Meyer <sebastian.meyer@slub-dresden.de> |
1004 | +* @copyright Copyright (c) 2011, Sebastian Meyer, SLUB Dresden |
1005 | +* @package TYPO3 |
1006 | +* @subpackage tx_dlf |
1007 | +* @access public |
1008 | +* @abstract |
1009 | +*/ |
1010 | interface tx_dlf_format { |
1011 | |
1012 | /** |
1013 | @@ -53,8 +53,8 @@ |
1014 | } |
1015 | |
1016 | /* No xclasses for interfaces! |
1017 | -if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dlf/common/class.tx_dlf_format.php']) { |
1018 | - include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dlf/common/class.tx_dlf_format.php']); |
1019 | + if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dlf/common/class.tx_dlf_format.php']) { |
1020 | +include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dlf/common/class.tx_dlf_format.php']); |
1021 | } |
1022 | */ |
1023 | |
1024 | |
1025 | === modified file 'dlf/common/class.tx_dlf_helper.php' |
1026 | --- dlf/common/class.tx_dlf_helper.php 2012-05-07 09:52:15 +0000 |
1027 | +++ dlf/common/class.tx_dlf_helper.php 2012-08-09 11:45:27 +0000 |
1028 | @@ -46,6 +46,24 @@ |
1029 | public static $extKey = 'dlf'; |
1030 | |
1031 | /** |
1032 | + * The encryption key |
1033 | + * @see encrypt() / decrypt() |
1034 | + * |
1035 | + * @var string |
1036 | + * @access private |
1037 | + */ |
1038 | + private static $ENCRYPTION_KEY = 'b8b311560d3e6f8dea0aa445995b1b2b'; |
1039 | + |
1040 | + /** |
1041 | + * The initialization vector for encryption |
1042 | + * @see encrypt() / decrypt() |
1043 | + * |
1044 | + * @var string |
1045 | + * @access private |
1046 | + */ |
1047 | + private static $ENCRYPTION_IV = '381416de30a5c970f8f486aa6d5cc932'; |
1048 | + |
1049 | + /** |
1050 | * Searches the array recursively for a given value and returns the corresponding key if successful |
1051 | * @see http://php.net/array_search |
1052 | * |
1053 | @@ -56,6 +74,8 @@ |
1054 | * @param boolean $strict: Check needle's type, too? |
1055 | * |
1056 | * @return mixed Returns the needle's key if found and FALSE otherwise |
1057 | + * |
1058 | + * @deprecated because of its inefficiency |
1059 | */ |
1060 | public static function array_search_recursive($needle, $haystack, $strict = FALSE) { |
1061 | |
1062 | @@ -194,6 +214,87 @@ |
1063 | } |
1064 | |
1065 | /** |
1066 | + * Decrypt encrypted value with given control hash |
1067 | + * @see http://yavkata.co.uk/weblog/php/securing-html-hidden-input-fields-using-encryption-and-hashing/ |
1068 | + * |
1069 | + * @access public |
1070 | + * |
1071 | + * @param string $encrypted: The encrypted value to decrypt |
1072 | + * @param string $hash: The control hash for decrypting |
1073 | + * |
1074 | + * @return mixed The decrypted value or NULL on error |
1075 | + */ |
1076 | + public static function decrypt($encrypted, $hash) { |
1077 | + |
1078 | + $decrypted = NULL; |
1079 | + |
1080 | + // Check for PHP extension "mcrypt". |
1081 | + if (!extension_loaded('mcrypt')) { |
1082 | + |
1083 | + trigger_error('PHP extension "mcrypt" not available', E_USER_WARNING); |
1084 | + |
1085 | + return NULL; |
1086 | + |
1087 | + } |
1088 | + |
1089 | + if (empty($encrypted) || empty($hash)) { |
1090 | + |
1091 | + return NULL; |
1092 | + |
1093 | + } |
1094 | + |
1095 | + $iv = substr(self::$ENCRYPTION_IV, 0, mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CFB)); |
1096 | + |
1097 | + $decrypted = mcrypt_decrypt(MCRYPT_BLOWFISH, self::$ENCRYPTION_KEY, base64_decode($encrypted), MCRYPT_MODE_CFB, $iv); |
1098 | + |
1099 | + $salt = substr($hash, 0, 10); |
1100 | + |
1101 | + $hashed = $salt.substr(sha1($salt.$decrypted), -10); |
1102 | + |
1103 | + if ($hashed !== $hash) { |
1104 | + |
1105 | + return NULL; |
1106 | + |
1107 | + } |
1108 | + |
1109 | + return $decrypted; |
1110 | + |
1111 | + } |
1112 | + |
1113 | + /** |
1114 | + * Encrypt the given string |
1115 | + * @see http://yavkata.co.uk/weblog/php/securing-html-hidden-input-fields-using-encryption-and-hashing/ |
1116 | + * |
1117 | + * @access public |
1118 | + * |
1119 | + * @param string $string: The string to encrypt |
1120 | + * |
1121 | + * @return array Array with encrypted string and control hash |
1122 | + */ |
1123 | + public static function encrypt($string) { |
1124 | + |
1125 | + // Check for PHP extension "mcrypt". |
1126 | + if (!extension_loaded('mcrypt')) { |
1127 | + |
1128 | + trigger_error('PHP extension "mcrypt" not available', E_USER_WARNING); |
1129 | + |
1130 | + return NULL; |
1131 | + |
1132 | + } |
1133 | + |
1134 | + $iv = substr(self::$ENCRYPTION_IV, 0, mcrypt_get_iv_size(MCRYPT_BLOWFISH, MCRYPT_MODE_CFB)); |
1135 | + |
1136 | + $encrypted = base64_encode(mcrypt_encrypt(MCRYPT_BLOWFISH, self::$ENCRYPTION_KEY, $string, MCRYPT_MODE_CFB, $iv)); |
1137 | + |
1138 | + $salt = substr(md5(uniqid(rand(), TRUE)), 0, 10); |
1139 | + |
1140 | + $hash = $salt.substr(sha1($salt.$string), -10); |
1141 | + |
1142 | + return array ('encrypted' => $encrypted, 'hash' => $hash); |
1143 | + |
1144 | + } |
1145 | + |
1146 | + /** |
1147 | * Get a backend user object (even in frontend mode) |
1148 | * |
1149 | * @access public |
1150 | @@ -234,28 +335,36 @@ |
1151 | * |
1152 | * @param integer $uid: The UID of the record |
1153 | * @param string $table: Get the "index_name" from this table |
1154 | - * @param string $pid: Get the "index_name" from this page |
1155 | + * @param integer $pid: Get the "index_name" from this page |
1156 | * |
1157 | * @return string "index_name" for the given UID |
1158 | */ |
1159 | - public static function getIndexName($uid, $table, $pid) { |
1160 | + public static function getIndexName($uid, $table, $pid = -1) { |
1161 | |
1162 | $uid = max(intval($uid), 0); |
1163 | |
1164 | - $pid = max(intval($pid), 0); |
1165 | - |
1166 | - if (!$uid || !$pid || !in_array($table, array ('tx_dlf_collections', 'tx_dlf_libraries', 'tx_dlf_metadata', 'tx_dlf_structures'))) { |
1167 | - |
1168 | - trigger_error('At least one argument is not valid: UID='.$uid.' PID='.$pid.' TABLE='.$table, E_USER_WARNING); |
1169 | + if (!$uid || !in_array($table, array ('tx_dlf_collections', 'tx_dlf_libraries', 'tx_dlf_metadata', 'tx_dlf_structures', 'tx_dlf_solrcores'))) { |
1170 | + |
1171 | + trigger_error('At least one argument is not valid: UID='.$uid.' or TABLE='.$table, E_USER_WARNING); |
1172 | |
1173 | return ''; |
1174 | |
1175 | } |
1176 | |
1177 | + $where = ''; |
1178 | + |
1179 | + if ($pid !== -1) { |
1180 | + |
1181 | + $pid = max(intval($pid), 0); |
1182 | + |
1183 | + $where = ' AND '.$table.'.pid='.$pid; |
1184 | + |
1185 | + } |
1186 | + |
1187 | $_result = $GLOBALS['TYPO3_DB']->exec_SELECTquery( |
1188 | $table.'.index_name AS index_name', |
1189 | $table, |
1190 | - $table.'.uid='.$uid.' AND '.$table.'.pid='.$pid.self::whereClause($table), |
1191 | + $table.'.uid='.$uid.$where.self::whereClause($table), |
1192 | '', |
1193 | '', |
1194 | '1' |
1195 | @@ -446,23 +555,6 @@ |
1196 | } |
1197 | |
1198 | /** |
1199 | - * Check if given internal "index_name" is translatable |
1200 | - * |
1201 | - * @access public |
1202 | - * |
1203 | - * @param string $index_name: The internal "index_name" to translate |
1204 | - * @param string $table: Get the translation from this table |
1205 | - * @param string $pid: Get the translation from this page |
1206 | - * |
1207 | - * @return boolean Is $index_name translatable? |
1208 | - */ |
1209 | - public static function isTranslatable($index_name, $table, $pid = 0) { |
1210 | - |
1211 | - return self::translate($index_name, $table, $pid, TRUE); |
1212 | - |
1213 | - } |
1214 | - |
1215 | - /** |
1216 | * Load value from user's session. |
1217 | * |
1218 | * @access public |
1219 | @@ -680,11 +772,10 @@ |
1220 | * @param string $index_name: The internal "index_name" to translate |
1221 | * @param string $table: Get the translation from this table |
1222 | * @param string $pid: Get the translation from this page |
1223 | - * @param boolean $checkOnly: Don't translate, only check for translation |
1224 | * |
1225 | * @return mixed Translated label or boolean value if $checkOnly is set |
1226 | */ |
1227 | - public static function translate($index_name, $table, $pid, $checkOnly = FALSE) { |
1228 | + public static function translate($index_name, $table, $pid) { |
1229 | |
1230 | static $labels = array (); |
1231 | |
1232 | @@ -764,27 +855,11 @@ |
1233 | |
1234 | if (!empty($labels[$table][$pid][$GLOBALS['TSFE']->sys_language_content][$index_name])) { |
1235 | |
1236 | - if ($checkOnly) { |
1237 | - |
1238 | - return TRUE; |
1239 | - |
1240 | - } else { |
1241 | - |
1242 | - return $labels[$table][$pid][$GLOBALS['TSFE']->sys_language_content][$index_name]; |
1243 | - |
1244 | - } |
1245 | + return $labels[$table][$pid][$GLOBALS['TSFE']->sys_language_content][$index_name]; |
1246 | |
1247 | } else { |
1248 | |
1249 | - if ($checkOnly) { |
1250 | - |
1251 | - return FALSE; |
1252 | - |
1253 | - } else { |
1254 | - |
1255 | - return $index_name; |
1256 | - |
1257 | - } |
1258 | + return $index_name; |
1259 | |
1260 | } |
1261 | |
1262 | @@ -796,10 +871,11 @@ |
1263 | * @access public |
1264 | * |
1265 | * @param string $table: Table name as defined in TCA |
1266 | + * @param boolean $showHidden: Ignore the hidden flag? |
1267 | * |
1268 | * @return string Additional WHERE clause |
1269 | */ |
1270 | - public static function whereClause($table) { |
1271 | + public static function whereClause($table, $showHidden = FALSE) { |
1272 | |
1273 | if (TYPO3_MODE === 'FE') { |
1274 | |
1275 | @@ -810,10 +886,19 @@ |
1276 | |
1277 | } |
1278 | |
1279 | + // Should we ignore the record's hidden flag? |
1280 | + $ignoreHide = -1; |
1281 | + |
1282 | + if ($showHidden) { |
1283 | + |
1284 | + $ignoreHide = 1; |
1285 | + |
1286 | + } |
1287 | + |
1288 | // $GLOBALS['TSFE']->sys_page is not always available in frontend. |
1289 | if (is_object($GLOBALS['TSFE']->sys_page)) { |
1290 | |
1291 | - return $GLOBALS['TSFE']->sys_page->enableFields($table); |
1292 | + return $GLOBALS['TSFE']->sys_page->enableFields($table, $ignoreHide); |
1293 | |
1294 | } else { |
1295 | |
1296 | @@ -821,7 +906,7 @@ |
1297 | |
1298 | $GLOBALS['TSFE']->includeTCA(); |
1299 | |
1300 | - return $t3lib_pageSelect->enableFields($table); |
1301 | + return $t3lib_pageSelect->enableFields($table, $ignoreHide); |
1302 | |
1303 | } |
1304 | |
1305 | |
1306 | === modified file 'dlf/common/class.tx_dlf_indexing.php' |
1307 | --- dlf/common/class.tx_dlf_indexing.php 2012-04-30 16:05:21 +0000 |
1308 | +++ dlf/common/class.tx_dlf_indexing.php 2012-08-09 11:45:27 +0000 |
1309 | @@ -38,6 +38,15 @@ |
1310 | class tx_dlf_indexing { |
1311 | |
1312 | /** |
1313 | + * Array of autocompletable metadata |
1314 | + * @see loadIndexConf() |
1315 | + * |
1316 | + * @var array |
1317 | + * @access protected |
1318 | + */ |
1319 | + protected static $autocompleted = array (); |
1320 | + |
1321 | + /** |
1322 | * The extension key |
1323 | * |
1324 | * @var string |
1325 | @@ -396,7 +405,7 @@ |
1326 | |
1327 | // Get the metadata indexing options. |
1328 | $_result = $GLOBALS['TYPO3_DB']->exec_SELECTquery( |
1329 | - 'tx_dlf_metadata.index_name AS index_name,tx_dlf_metadata.tokenized AS tokenized,tx_dlf_metadata.stored AS stored,tx_dlf_metadata.indexed AS indexed,tx_dlf_metadata.is_sortable AS is_sortable,tx_dlf_metadata.is_facet AS is_facet,tx_dlf_metadata.is_listed AS is_listed,tx_dlf_metadata.boost AS boost', |
1330 | + 'tx_dlf_metadata.index_name AS index_name,tx_dlf_metadata.tokenized AS tokenized,tx_dlf_metadata.stored AS stored,tx_dlf_metadata.indexed AS indexed,tx_dlf_metadata.is_sortable AS is_sortable,tx_dlf_metadata.is_facet AS is_facet,tx_dlf_metadata.is_listed AS is_listed,tx_dlf_metadata.autocomplete AS autocomplete,tx_dlf_metadata.boost AS boost', |
1331 | 'tx_dlf_metadata', |
1332 | 'tx_dlf_metadata.pid='.intval($pid).tx_dlf_helper::whereClause('tx_dlf_metadata'), |
1333 | '', |
1334 | @@ -436,9 +445,15 @@ |
1335 | |
1336 | } |
1337 | |
1338 | + if ($_indexing['autocomplete']) { |
1339 | + |
1340 | + self::$autocompleted[] = $_indexing['index_name']; |
1341 | + |
1342 | + } |
1343 | + |
1344 | if ($_indexing['boost'] > 0.0) { |
1345 | |
1346 | - self::$fieldboost[$_indexing['index_name']] = $_indexing['boost']; |
1347 | + self::$fieldboost[$_indexing['index_name']] = floatval($_indexing['boost']); |
1348 | |
1349 | } else { |
1350 | |
1351 | @@ -502,12 +517,6 @@ |
1352 | |
1353 | $solrDoc->setField('title', $metadata['title'][0], self::$fieldboost['title']); |
1354 | |
1355 | - $solrDoc->setField('author', $metadata['author'], self::$fieldboost['author']); |
1356 | - |
1357 | - $solrDoc->setField('year', $metadata['year'], self::$fieldboost['year']); |
1358 | - |
1359 | - $solrDoc->setField('place', $metadata['place'], self::$fieldboost['place']); |
1360 | - |
1361 | $solrDoc->setField('volume', $metadata['volume'][0], self::$fieldboost['volume']); |
1362 | |
1363 | foreach ($metadata as $index_name => $data) { |
1364 | @@ -536,6 +545,13 @@ |
1365 | |
1366 | } |
1367 | |
1368 | + if (in_array($index_name, self::$autocompleted)) { |
1369 | + |
1370 | + // Add autocomplete values to index. |
1371 | + $solrDoc->setField($index_name.'_suggest', $data); |
1372 | + |
1373 | + } |
1374 | + |
1375 | } |
1376 | |
1377 | } |
1378 | |
1379 | === modified file 'dlf/common/class.tx_dlf_list.php' |
1380 | --- dlf/common/class.tx_dlf_list.php 2012-03-15 15:53:25 +0000 |
1381 | +++ dlf/common/class.tx_dlf_list.php 2012-08-09 11:45:27 +0000 |
1382 | @@ -111,6 +111,46 @@ |
1383 | } |
1384 | |
1385 | /** |
1386 | + * This moves the element at the given position up or down |
1387 | + * |
1388 | + * @access public |
1389 | + * |
1390 | + * @param integer $position: Numeric position for moving |
1391 | + * @param integer $steps: Amount of steps to move up or down |
1392 | + * |
1393 | + * @return void |
1394 | + */ |
1395 | + public function move($position, $steps) { |
1396 | + |
1397 | + $position = intval($position); |
1398 | + |
1399 | + // Check if list position is valid. |
1400 | + if ($position < 0 || $position >= $this->count) { |
1401 | + |
1402 | + trigger_error('Invalid list position '.$position, E_USER_WARNING); |
1403 | + |
1404 | + return; |
1405 | + |
1406 | + } |
1407 | + |
1408 | + $steps = intval($steps); |
1409 | + |
1410 | + // Check if moving given amount of steps is possible. |
1411 | + if (($position + $steps) < 0 || ($position + $steps) >= $this->count) { |
1412 | + |
1413 | + trigger_error('Element at position '.$position.' can not be moved '.$steps.' steps', E_USER_WARNING); |
1414 | + |
1415 | + return; |
1416 | + |
1417 | + } |
1418 | + |
1419 | + $element = $this->remove($position); |
1420 | + |
1421 | + $this->add(array ($element), $position + $steps); |
1422 | + |
1423 | + } |
1424 | + |
1425 | + /** |
1426 | * This moves the element at the given position up |
1427 | * |
1428 | * @access public |
1429 | @@ -121,26 +161,14 @@ |
1430 | */ |
1431 | public function moveUp($position) { |
1432 | |
1433 | - $position = intval($position); |
1434 | - |
1435 | - if ($position < 1 || $position >= $this->count) { |
1436 | - |
1437 | - trigger_error('No valid list position for moving up', E_USER_WARNING); |
1438 | - |
1439 | - return; |
1440 | - |
1441 | - } |
1442 | - |
1443 | - $element = $this->remove($position); |
1444 | - |
1445 | - $this->add(array ($element), $position - 1); |
1446 | + $this->move($position, -1); |
1447 | |
1448 | } |
1449 | |
1450 | /** |
1451 | * This moves the element at the given position down |
1452 | * |
1453 | - * @access public |
1454 | + * @access public |
1455 | * |
1456 | * @param integer $position: Numeric position for moving |
1457 | * |
1458 | @@ -148,19 +176,7 @@ |
1459 | */ |
1460 | public function moveDown($position) { |
1461 | |
1462 | - $position = intval($position); |
1463 | - |
1464 | - if ($position < 0 || $position >= ($this->count - 1)) { |
1465 | - |
1466 | - trigger_error('No valid list position for moving down', E_USER_WARNING); |
1467 | - |
1468 | - return; |
1469 | - |
1470 | - } |
1471 | - |
1472 | - $element = $this->remove($position); |
1473 | - |
1474 | - $this->add(array ($element), $position + 1); |
1475 | + $this->move($position, 1); |
1476 | |
1477 | } |
1478 | |
1479 | @@ -208,6 +224,60 @@ |
1480 | } |
1481 | |
1482 | /** |
1483 | + * This sorts the current list by the given field |
1484 | + * |
1485 | + * @access public |
1486 | + * |
1487 | + * @param string $by: Sort the list by this field |
1488 | + * @param boolean $asc: Sort ascending? |
1489 | + * |
1490 | + * @return void |
1491 | + */ |
1492 | + public function sort($by, $asc = TRUE) { |
1493 | + |
1494 | + $newOrder = array (); |
1495 | + |
1496 | + $nonSortable = array (); |
1497 | + |
1498 | + foreach ($this->elements as $num => $element) { |
1499 | + |
1500 | + // Is this element sortable? |
1501 | + if (!empty($element['sorting'][$by])) { |
1502 | + |
1503 | + $newOrder[$element['sorting'][$by].str_pad($num, 6, '0', STR_PAD_LEFT)] = $element; |
1504 | + |
1505 | + } else { |
1506 | + |
1507 | + $nonSortable[] = $element; |
1508 | + |
1509 | + } |
1510 | + |
1511 | + } |
1512 | + |
1513 | + // Reorder elements. |
1514 | + if ($asc) { |
1515 | + |
1516 | + ksort($newOrder, SORT_LOCALE_STRING); |
1517 | + |
1518 | + } else { |
1519 | + |
1520 | + krsort($newOrder, SORT_LOCALE_STRING); |
1521 | + |
1522 | + } |
1523 | + |
1524 | + // Add non sortable elements to the end of the list. |
1525 | + $newOrder = array_merge(array_values($newOrder), $nonSortable); |
1526 | + |
1527 | + // Check if something is missing. |
1528 | + if ($this->count == count($newOrder)) { |
1529 | + |
1530 | + $this->elements = $newOrder; |
1531 | + |
1532 | + } |
1533 | + |
1534 | + } |
1535 | + |
1536 | + /** |
1537 | * This returns $this->count via __get() |
1538 | * |
1539 | * @access protected |
1540 | |
1541 | === modified file 'dlf/common/class.tx_dlf_mods.php' |
1542 | --- dlf/common/class.tx_dlf_mods.php 2012-04-30 16:05:21 +0000 |
1543 | +++ dlf/common/class.tx_dlf_mods.php 2012-08-09 11:45:27 +0000 |
1544 | @@ -1,6 +1,6 @@ |
1545 | <?php |
1546 | /*************************************************************** |
1547 | -* Copyright notice |
1548 | + * Copyright notice |
1549 | * |
1550 | * (c) 2011 Sebastian Meyer <sebastian.meyer@slub-dresden.de> |
1551 | * All rights reserved |
1552 | @@ -28,13 +28,13 @@ |
1553 | |
1554 | /** |
1555 | * Metadata format class 'tx_dlf_mods' for the 'dlf' extension. |
1556 | - * |
1557 | - * @author Sebastian Meyer <sebastian.meyer@slub-dresden.de> |
1558 | - * @copyright Copyright (c) 2011, Sebastian Meyer, SLUB Dresden |
1559 | - * @package TYPO3 |
1560 | - * @subpackage tx_dlf |
1561 | - * @access public |
1562 | - */ |
1563 | +* |
1564 | +* @author Sebastian Meyer <sebastian.meyer@slub-dresden.de> |
1565 | +* @copyright Copyright (c) 2011, Sebastian Meyer, SLUB Dresden |
1566 | +* @package TYPO3 |
1567 | +* @subpackage tx_dlf |
1568 | +* @access public |
1569 | +*/ |
1570 | class tx_dlf_mods implements tx_dlf_format { |
1571 | |
1572 | /** |
1573 | |
1574 | === modified file 'dlf/common/class.tx_dlf_module.php' |
1575 | --- dlf/common/class.tx_dlf_module.php 2012-04-30 16:05:21 +0000 |
1576 | +++ dlf/common/class.tx_dlf_module.php 2012-08-09 11:45:27 +0000 |
1577 | @@ -1,6 +1,6 @@ |
1578 | <?php |
1579 | /*************************************************************** |
1580 | -* Copyright notice |
1581 | + * Copyright notice |
1582 | * |
1583 | * (c) 2011 Sebastian Meyer <sebastian.meyer@slub-dresden.de> |
1584 | * All rights reserved |
1585 | @@ -28,14 +28,14 @@ |
1586 | |
1587 | /** |
1588 | * Base class 'tx_dlf_module' for the 'dlf' extension. |
1589 | - * |
1590 | - * @author Sebastian Meyer <sebastian.meyer@slub-dresden.de> |
1591 | - * @copyright Copyright (c) 2011, Sebastian Meyer, SLUB Dresden |
1592 | - * @package TYPO3 |
1593 | - * @subpackage tx_dlf |
1594 | - * @access public |
1595 | - * @abstract |
1596 | - */ |
1597 | +* |
1598 | +* @author Sebastian Meyer <sebastian.meyer@slub-dresden.de> |
1599 | +* @copyright Copyright (c) 2011, Sebastian Meyer, SLUB Dresden |
1600 | +* @package TYPO3 |
1601 | +* @subpackage tx_dlf |
1602 | +* @access public |
1603 | +* @abstract |
1604 | +*/ |
1605 | abstract class tx_dlf_module extends t3lib_SCbase { |
1606 | |
1607 | public $extKey = 'dlf'; |
1608 | @@ -109,7 +109,7 @@ |
1609 | |
1610 | $GLOBALS['BE_USER']->modAccess($GLOBALS['MCONF'], 1); |
1611 | |
1612 | - $GLOBALS['LANG']->includeLLFile('EXT:dlf/modules/'.$this->modPath.'locallang.xml'); |
1613 | + $GLOBALS['LANG']->includeLLFile('EXT:'.$this->extKey.'/modules/'.$this->modPath.'locallang.xml'); |
1614 | |
1615 | $this->setMOD_MENU(); |
1616 | |
1617 | @@ -121,15 +121,15 @@ |
1618 | |
1619 | $this->doc = t3lib_div::makeInstance('template'); |
1620 | |
1621 | - $this->doc->setModuleTemplate('EXT:dlf/modules/'.$this->modPath.'template.tmpl'); |
1622 | + $this->doc->setModuleTemplate('EXT:'.$this->extKey.'/modules/'.$this->modPath.'template.tmpl'); |
1623 | |
1624 | $this->doc->getPageRenderer()->addCssFile(t3lib_extMgm::extRelPath($this->extKey) . 'res/backend.css'); |
1625 | |
1626 | $this->doc->backPath = $GLOBALS['BACK_PATH']; |
1627 | |
1628 | - $this->doc->bodyTagAdditions = 'class="ext-dlf-modules"'; |
1629 | + $this->doc->bodyTagAdditions = 'class="ext-'.$this->extKey.'-modules"'; |
1630 | |
1631 | - $this->doc->form = '<form action="" method="post" enctype="multipart/form-data">'; |
1632 | + $this->doc->form = '<form action="" method="post" enctype="multipart/form-data">'; |
1633 | |
1634 | $this->data = t3lib_div::_GPmerged($this->prefixId); |
1635 | |
1636 | @@ -147,13 +147,13 @@ |
1637 | // Set $this->MOD_MENU array here or leave empty. |
1638 | |
1639 | /* Example code: |
1640 | - $this->MOD_MENU = array ( |
1641 | - 'function' => array ( |
1642 | - '1' => $GLOBALS['LANG']->getLL('function1'), |
1643 | - '2' => $GLOBALS['LANG']->getLL('function2'), |
1644 | - '3' => $GLOBALS['LANG']->getLL('function3'), |
1645 | - ) |
1646 | - ); */ |
1647 | + $this->MOD_MENU = array ( |
1648 | + 'function' => array ( |
1649 | + '1' => $GLOBALS['LANG']->getLL('function1'), |
1650 | + '2' => $GLOBALS['LANG']->getLL('function2'), |
1651 | + '3' => $GLOBALS['LANG']->getLL('function3'), |
1652 | + ) |
1653 | + ); */ |
1654 | |
1655 | } |
1656 | |
1657 | @@ -179,19 +179,19 @@ |
1658 | |
1659 | // Add Javascript for function menu. |
1660 | $this->doc->JScode .= ' |
1661 | - <script type="text/javascript"> |
1662 | - script_ended = 0; |
1663 | - function jumpToUrl(URL) { |
1664 | - document.location = URL; |
1665 | - } |
1666 | - </script> |
1667 | - '; |
1668 | + <script type="text/javascript"> |
1669 | + script_ended = 0; |
1670 | + function jumpToUrl(URL) { |
1671 | + document.location = URL; |
1672 | + } |
1673 | + </script> |
1674 | + '; |
1675 | |
1676 | // Add Javascript for convenient module switch. |
1677 | $this->doc->postCode .= ' |
1678 | - <script type="text/javascript"> |
1679 | - script_ended = 1; |
1680 | - </script> |
1681 | + <script type="text/javascript"> |
1682 | + script_ended = 1; |
1683 | + </script> |
1684 | '; |
1685 | |
1686 | // Render output. |
1687 | @@ -233,8 +233,8 @@ |
1688 | } |
1689 | |
1690 | /* No xclasses for abstract classes! |
1691 | -if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dlf/common/class.tx_dlf_module.php']) { |
1692 | - include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dlf/common/class.tx_dlf_module.php']); |
1693 | + if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dlf/common/class.tx_dlf_module.php']) { |
1694 | +include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dlf/common/class.tx_dlf_module.php']); |
1695 | } |
1696 | */ |
1697 | |
1698 | |
1699 | === modified file 'dlf/common/class.tx_dlf_plugin.php' |
1700 | --- dlf/common/class.tx_dlf_plugin.php 2012-03-09 10:17:07 +0000 |
1701 | +++ dlf/common/class.tx_dlf_plugin.php 2012-08-09 11:45:27 +0000 |
1702 | @@ -1,6 +1,6 @@ |
1703 | <?php |
1704 | /*************************************************************** |
1705 | -* Copyright notice |
1706 | + * Copyright notice |
1707 | * |
1708 | * (c) 2011 Sebastian Meyer <sebastian.meyer@slub-dresden.de> |
1709 | * All rights reserved |
1710 | @@ -28,14 +28,14 @@ |
1711 | |
1712 | /** |
1713 | * Base class 'tx_dlf_plugin' for the 'dlf' extension. |
1714 | - * |
1715 | - * @author Sebastian Meyer <sebastian.meyer@slub-dresden.de> |
1716 | - * @copyright Copyright (c) 2011, Sebastian Meyer, SLUB Dresden |
1717 | - * @package TYPO3 |
1718 | - * @subpackage tx_dlf |
1719 | - * @access public |
1720 | - * @abstract |
1721 | - */ |
1722 | +* |
1723 | +* @author Sebastian Meyer <sebastian.meyer@slub-dresden.de> |
1724 | +* @copyright Copyright (c) 2011, Sebastian Meyer, SLUB Dresden |
1725 | +* @package TYPO3 |
1726 | +* @subpackage tx_dlf |
1727 | +* @access public |
1728 | +* @abstract |
1729 | +*/ |
1730 | abstract class tx_dlf_plugin extends tslib_pibase { |
1731 | |
1732 | public $extKey = 'dlf'; |
1733 | @@ -77,7 +77,27 @@ |
1734 | */ |
1735 | protected function init(array $conf) { |
1736 | |
1737 | - // Read general TS configuration |
1738 | + // Read FlexForm configuration. |
1739 | + $flexFormConf = array (); |
1740 | + |
1741 | + $this->cObj->readFlexformIntoConf($this->cObj->data['pi_flexform'], $flexFormConf); |
1742 | + |
1743 | + if (!empty($flexFormConf)) { |
1744 | + |
1745 | + $conf = t3lib_div::array_merge_recursive_overrule($flexFormConf, $conf); |
1746 | + |
1747 | + } |
1748 | + |
1749 | + // Read plugin TS configuration. |
1750 | + $pluginConf = $GLOBALS['TSFE']->tmpl->setup['plugin.'][get_class($this).'.']; |
1751 | + |
1752 | + if (is_array($pluginConf)) { |
1753 | + |
1754 | + $conf = t3lib_div::array_merge_recursive_overrule($pluginConf, $conf); |
1755 | + |
1756 | + } |
1757 | + |
1758 | + // Read general TS configuration. |
1759 | $generalConf = $GLOBALS['TSFE']->tmpl->setup['plugin.'][$this->prefixId.'.']; |
1760 | |
1761 | if (is_array($generalConf)) { |
1762 | @@ -86,7 +106,7 @@ |
1763 | |
1764 | } |
1765 | |
1766 | - // Read extension configuration |
1767 | + // Read extension configuration. |
1768 | $extConf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf'][$this->extKey]); |
1769 | |
1770 | if (is_array($extConf)) { |
1771 | @@ -95,7 +115,7 @@ |
1772 | |
1773 | } |
1774 | |
1775 | - // Read TYPO3_CONF_VARS configuration |
1776 | + // Read TYPO3_CONF_VARS configuration. |
1777 | $varsConf = $GLOBALS['TYPO3_CONF_VARS']['EXTCONF'][$this->extKey]; |
1778 | |
1779 | if (is_array($varsConf)) { |
1780 | @@ -104,17 +124,6 @@ |
1781 | |
1782 | } |
1783 | |
1784 | - // Read FlexForm configuration |
1785 | - $flexFormConf = array (); |
1786 | - |
1787 | - $this->cObj->readFlexformIntoConf($this->cObj->data['pi_flexform'], $flexFormConf); |
1788 | - |
1789 | - if (!empty($flexFormConf)) { |
1790 | - |
1791 | - $conf = t3lib_div::array_merge_recursive_overrule($conf, $flexFormConf); |
1792 | - |
1793 | - } |
1794 | - |
1795 | $this->conf = $conf; |
1796 | |
1797 | // Set default plugin variables. |
1798 | @@ -135,7 +144,7 @@ |
1799 | protected function loadDocument() { |
1800 | |
1801 | // Check for required variable. |
1802 | - if (!empty($this->piVars['id'])) { |
1803 | + if (!empty($this->piVars['id']) && !empty($this->conf['pages'])) { |
1804 | |
1805 | // Should we exclude documents from other pages than $this->conf['pages']? |
1806 | $pid = (!empty($this->conf['excludeOther']) ? intval($this->conf['pages']) : 0); |
1807 | @@ -145,22 +154,28 @@ |
1808 | |
1809 | if (!$this->doc->ready) { |
1810 | |
1811 | + // Destroy the incomplete object. |
1812 | trigger_error('Failed to load document with UID '.$this->piVars['id'], E_USER_ERROR); |
1813 | |
1814 | $this->doc = NULL; |
1815 | |
1816 | + } else { |
1817 | + |
1818 | + // Set configuration PID. |
1819 | + $this->doc->cPid = $this->conf['pages']; |
1820 | + |
1821 | } |
1822 | |
1823 | } elseif (!empty($this->piVars['recordId'])) { |
1824 | |
1825 | // Get UID of document with given record identifier. |
1826 | $result = $GLOBALS['TYPO3_DB']->exec_SELECTquery( |
1827 | - 'tx_dlf_documents.uid', |
1828 | - 'tx_dlf_documents', |
1829 | - 'tx_dlf_documents.record_id='.$GLOBALS['TYPO3_DB']->fullQuoteStr($this->piVars['recordId'], 'tx_dlf_documents').tx_dlf_helper::whereClause('tx_dlf_documents'), |
1830 | - '', |
1831 | - '', |
1832 | - '1' |
1833 | + 'tx_dlf_documents.uid', |
1834 | + 'tx_dlf_documents', |
1835 | + 'tx_dlf_documents.record_id='.$GLOBALS['TYPO3_DB']->fullQuoteStr($this->piVars['recordId'], 'tx_dlf_documents').tx_dlf_helper::whereClause('tx_dlf_documents'), |
1836 | + '', |
1837 | + '', |
1838 | + '1' |
1839 | ); |
1840 | |
1841 | if ($GLOBALS['TYPO3_DB']->sql_num_rows($result) == 1) { |
1842 | @@ -184,7 +199,7 @@ |
1843 | |
1844 | } else { |
1845 | |
1846 | - trigger_error('No UID given for document', E_USER_ERROR); |
1847 | + trigger_error('No UID or PID given for document', E_USER_ERROR); |
1848 | |
1849 | } |
1850 | |
1851 | @@ -289,8 +304,8 @@ |
1852 | } |
1853 | |
1854 | /* No xclasses for abstract classes! |
1855 | -if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dlf/common/class.tx_dlf_plugin.php']) { |
1856 | - include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dlf/common/class.tx_dlf_plugin.php']); |
1857 | + if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dlf/common/class.tx_dlf_plugin.php']) { |
1858 | +include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dlf/common/class.tx_dlf_plugin.php']); |
1859 | } |
1860 | */ |
1861 | |
1862 | |
1863 | === modified file 'dlf/common/class.tx_dlf_solr.php' |
1864 | --- dlf/common/class.tx_dlf_solr.php 2012-03-30 09:14:14 +0000 |
1865 | +++ dlf/common/class.tx_dlf_solr.php 2012-08-09 11:45:27 +0000 |
1866 | @@ -1,6 +1,6 @@ |
1867 | <?php |
1868 | /*************************************************************** |
1869 | -* Copyright notice |
1870 | + * Copyright notice |
1871 | * |
1872 | * (c) 2011 Sebastian Meyer <sebastian.meyer@slub-dresden.de> |
1873 | * All rights reserved |
1874 | @@ -21,20 +21,21 @@ |
1875 | * |
1876 | * This copyright notice MUST APPEAR in all copies of the script! |
1877 | ***************************************************************/ |
1878 | - |
1879 | +// TODO: Clean up and reduce code duplication. Consider switching to Solarium. |
1880 | /** |
1881 | * [CLASS/FUNCTION INDEX of SCRIPT] |
1882 | - */ |
1883 | +*/ |
1884 | |
1885 | /** |
1886 | * Solr class 'tx_dlf_solr' for the 'dlf' extension. |
1887 | - * |
1888 | - * @author Sebastian Meyer <sebastian.meyer@slub-dresden.de> |
1889 | - * @copyright Copyright (c) 2011, Sebastian Meyer, SLUB Dresden |
1890 | - * @package TYPO3 |
1891 | - * @subpackage tx_dlf |
1892 | - * @access public |
1893 | - */ |
1894 | +* |
1895 | +* @author Sebastian Meyer <sebastian.meyer@slub-dresden.de> |
1896 | +* @author Henrik Lochmann <dev@mentalmotive.com> |
1897 | +* @copyright Copyright (c) 2011, Sebastian Meyer, SLUB Dresden |
1898 | +* @package TYPO3 |
1899 | +* @subpackage tx_dlf |
1900 | +* @access public |
1901 | +*/ |
1902 | class tx_dlf_solr { |
1903 | |
1904 | /** |
1905 | @@ -46,6 +47,41 @@ |
1906 | public static $extKey = 'dlf'; |
1907 | |
1908 | /** |
1909 | + * Returns the request URL for a specific Solr core |
1910 | + * |
1911 | + * @access public |
1912 | + * |
1913 | + * @param string $core: Name of the core to load |
1914 | + * |
1915 | + * @return string The request URL for a specific Solr core |
1916 | + */ |
1917 | + public static function getSolrUrl($core = '') { |
1918 | + |
1919 | + // Extract extension configuration. |
1920 | + $conf = unserialize($GLOBALS['TYPO3_CONF_VARS']['EXT']['extConf'][self::$extKey]); |
1921 | + |
1922 | + // Derive Solr host name. |
1923 | + $host = ($conf['solrHost'] ? $conf['solrHost'] : 'localhost'); |
1924 | + |
1925 | + // Prepend username and password to hostname. |
1926 | + if ($conf['solrUser'] && $conf['solrPass']) { |
1927 | + |
1928 | + $host = $conf['solrUser'].':'.$conf['solrPass'].'@'.$host; |
1929 | + |
1930 | + } |
1931 | + |
1932 | + // Set port if not set. |
1933 | + $port = t3lib_div::intInRange($conf['solrPort'], 1, 65535, 8180); |
1934 | + |
1935 | + // Append core name to path. |
1936 | + $path = trim($conf['solrPath'], '/').'/'.$core; |
1937 | + |
1938 | + // Return entire request URL. |
1939 | + return 'http://'.$host.':'.$port.'/'.$path; |
1940 | + |
1941 | + } |
1942 | + |
1943 | + /** |
1944 | * Get SolrPhpClient service object and establish connection to Solr server |
1945 | * @see EXT:dlf/lib/SolrPhpClient/Apache/Solr/Service.php |
1946 | * |
1947 | @@ -82,20 +118,9 @@ |
1948 | // Get core name if UID is given. |
1949 | if (t3lib_div::testInt($core)) { |
1950 | |
1951 | - $result = $GLOBALS['TYPO3_DB']->exec_SELECTquery( |
1952 | - 'tx_dlf_solrcores.index_name AS index_name', |
1953 | - 'tx_dlf_solrcores', |
1954 | - 'tx_dlf_solrcores.uid='.intval($core).tx_dlf_helper::whereClause('tx_dlf_solrcores'), |
1955 | - '', |
1956 | - '', |
1957 | - '1' |
1958 | - ); |
1959 | - |
1960 | - if ($GLOBALS['TYPO3_DB']->sql_num_rows($result)) { |
1961 | - |
1962 | - list ($core) = $GLOBALS['TYPO3_DB']->sql_fetch_row($result); |
1963 | - |
1964 | - } else { |
1965 | + $core = tx_dlf_helper::getIndexName($core, 'tx_dlf_solrcores'); |
1966 | + |
1967 | + if (empty($core)) { |
1968 | |
1969 | trigger_error('Could not find Solr core with UID '.$core, E_USER_NOTICE); |
1970 | |
1971 | @@ -160,13 +185,14 @@ |
1972 | * |
1973 | * @access protected |
1974 | */ |
1975 | - protected function __construct() {} |
1976 | + protected function __construct() { |
1977 | + } |
1978 | |
1979 | } |
1980 | |
1981 | /* No xclasses for static classes! |
1982 | -if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dlf/common/class.tx_dlf_solr.php']) { |
1983 | - include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dlf/common/class.tx_dlf_solr.php']); |
1984 | + if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dlf/common/class.tx_dlf_solr.php']) { |
1985 | +include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dlf/common/class.tx_dlf_solr.php']); |
1986 | } |
1987 | */ |
1988 | |
1989 | |
1990 | === modified file 'dlf/doc/METS_Anwendungsprofil_2.0.xml' |
1991 | --- dlf/doc/METS_Anwendungsprofil_2.0.xml 2011-03-09 15:36:27 +0000 |
1992 | +++ dlf/doc/METS_Anwendungsprofil_2.0.xml 2012-08-09 11:45:27 +0000 |
1993 | @@ -1,4720 +1,4342 @@ |
1994 | -<?xml version="1.0" encoding="UTF-8"?> |
1995 | - |
1996 | -<!-- |
1997 | - =========================================================================== |
1998 | - == zvdd/DFG-Viewer METS-Profil, Version 2.0, 16.04.2009 |
1999 | - =========================================================================== |
2000 | - |
2001 | - =========================================================================== |
2002 | - == Autoren: Markus Enders, Stefan E. Funk |
2003 | - =========================================================================== |
2004 | - |
2005 | - =========================================================================== |
2006 | - == TODO |
2007 | - =========================================================================== |
2008 | - |
2009 | - =========================================================================== |
2010 | - == CHANGELOG |
2011 | - =========================================================================== |
2012 | - |
2013 | - Version 2.0, 16.04.2009, bearbeitet von Stefan E. Funk |
2014 | - - Kleine Korrekturen (Typos, etc.). |
2015 | - Version 2.0, 01.12.2008, bearbeitet von Stefan E. Funk |
2016 | - - Link zum Downlaod des Gesamt-Dokuments erläutert (erst logische, dann |
2017 | - physische Struct-Map). |
2018 | - - Komplexes Dokumentmodell: |
2019 | - - LABEL für die Strukturelemente erläutert und Beispiele ergänzt. |
2020 | - - Verweis auf die LoC-Strukturtypen entfernt. |
2021 | - - Verweis auf das DFG-Viewer Strukturdatenset hinzugefügt. |
2022 | - - Beispielnummerierung korrigiert. |
2023 | - - URLs ergänzt. |
2024 | - |
2025 | - Version 2.0, 24.11.2008, bearbeitet von Stefan E. Funk |
2026 | - - Adresse ergänzt. |
2027 | - |
2028 | - Version 2.0, 21.11.2008, bearbeitet von Stefan E. Funk |
2029 | - - Version 2.0 fertiggestellt. |
2030 | - |
2031 | - =========================================================================== --> |
2032 | - |
2033 | -<METS_Profile xmlns="http://www.loc.gov/METS_Profile/" xmlns:mets="http://www.loc.gov/METS/" |
2034 | - xmlns:mods="http://www.loc.gov/mods/v3" xmlns:premis="http://www.loc.gov/standards/premis/v1" |
2035 | - xmlns:xlink="http://www.w3c.org/1999/xlink" |
2036 | - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" |
2037 | - xsi:schemaLocation="http://www.loc.gov/METS_Profile/ http://www.loc.gov/standards/mets/profile_docs/mets.profile.v1-2.xsd http://www.loc.gov/METS/ http://www.loc.gov/standards/mets/mets.xsd http://www.loc.gov/standards/premis/v1 http://www.loc.gov/standards/premis/v1/PREMIS-v1-1.xsd http://www.loc.gov/mods/v3 http://www.loc.gov/standards/mods/v3/mods-3-2.xsd http://www.w3.org/1999/xlink http://www.loc.gov/standards/mets/xlink.xsd"> |
2038 | - |
2039 | - <URI LOCTYPE="URL">http://dfg-viewer.de/fileadmin/groups/dfgviewer/METS_Anwendungsprofil_2.0.xml</URI> |
2040 | - |
2041 | - <title>zvdd/DFG-Viewer METS-Profil – Version 2.0</title> |
2042 | - |
2043 | - <abstract>Dieses METS Profil beschreibt das Datenformat für den DFG-Viewer und definiert darüber |
2044 | - hinausgehende Erweiterungen für das zvdd-Portal. Dokumente, die diesem Profil entsprechen, |
2045 | - können sowohl durch den DFG-Viewer angezeigt als auch durch das zvdd-Portal verarbeitet und |
2046 | - indexiert werden. Zu beachten ist, dass sämtliche enthaltene Beispiele das jeweilige |
2047 | - METS-Dokument nur auschnittsweise wiedergeben. Einige komplette Beispiele finden sich in der |
2048 | - XML-Version des Profils am Ende des Abschnitts <Appendix>.</abstract> |
2049 | - |
2050 | - <date>2009-04-16T12:00:00</date> |
2051 | - |
2052 | - <contact> |
2053 | - <name>Stefan E. Funk</name> |
2054 | - <institution>Niedersächsische Staats- und Universitätsbibliothek</institution> |
2055 | - <address>Papendiek 14, 37073 Göttingen, Germany</address> |
2056 | - <phone>+49 (0) 551 12170</phone> |
2057 | - <email>funk@sub.uni-goettingen.de</email> |
2058 | - </contact> |
2059 | - |
2060 | - <related_profile>Dieses Profil ist eigenständig; keine anderen METS-Profile sind mit diesem |
2061 | - Profil verknüpft.</related_profile> |
2062 | - |
2063 | - <!-- |
2064 | - *************************************************************************** |
2065 | - ** Extension schemas |
2066 | - *************************************************************************** --> |
2067 | - |
2068 | - <extension_schema> |
2069 | - <name>Metadata Object and Description Schema (MODS) </name> |
2070 | - <URI>http://www.loc.gov/standards/mods/</URI> |
2071 | - <context>Das Metadata Object and Description Schema wird für alle desriptive Metadaten |
2072 | - benutzt. Andere descriptive Metadaten Schemata können zusätzlich ebenfalls in die METS |
2073 | - Datei inkludiert werden; haben jedoch keinerlei Bedeutung für zvdd oder den DFG-Viewer.</context> |
2074 | - <note /> |
2075 | - </extension_schema> |
2076 | - |
2077 | - <description_rules /> |
2078 | - |
2079 | - <!-- |
2080 | - *************************************************************************** |
2081 | - ** Controlled vocabularies |
2082 | - *************************************************************************** --> |
2083 | - |
2084 | - <controlled_vocabularies> |
2085 | - <vocabulary> |
2086 | - <name>ISO 639-2</name> |
2087 | - <maintenance_agency>International Standard Organization</maintenance_agency> |
2088 | - <URI>http://www.iso.ch/</URI> |
2089 | - <context> |
2090 | - <p>Sämtliche Sprachangaben innerhalb des MODS-Extension Schemas erfolgen gemäß ISO |
2091 | - 639-2 Sprachcodes. Dies betrifft das Element |
2092 | - <mods:languageTerm>.</p> |
2093 | - </context> |
2094 | - <description> |
2095 | - <p>ISO Sprachcodes</p> |
2096 | - </description> |
2097 | - </vocabulary> |
2098 | - |
2099 | - <vocabulary> |
2100 | - <name>zvdd Strukturdatentypologie</name> |
2101 | - <maintenance_agency>zvdd - Zentrales Verzeichnis Digitalisierter Drucke</maintenance_agency> |
2102 | - <URI>http://zvdd.gdz-cms.de/dokumentation/datenformate_im_ueberblick/strukturdaten/</URI> |
2103 | - <context> |
2104 | - <p>Für zvdd verfügen sämtliche <div> über ein TYPE Attribut, dessen |
2105 | - Wert der Strukturdatentypologie entsprechen muss.</p> |
2106 | - </context> |
2107 | - <description> |
2108 | - <p>Die zvdd Strukturdatentypologie enthält alle Strukturtypen, die innerhalb zvdd |
2109 | - vorkommen dürfen. Diese Typen werden von zvdd sowohl für die Anzeige als auch |
2110 | - für die Suche genutzt.</p> |
2111 | - </description> |
2112 | - </vocabulary> |
2113 | - |
2114 | - <vocabulary> |
2115 | - <name>zvdd MODS Anwendungsprofil</name> |
2116 | - <maintenance_agency>zvdd - Zentrales Verzeichnis Digitalisierter Drucke</maintenance_agency> |
2117 | - <URI>http://dfg-viewer.de/fileadmin/groups/dfgviewer/MODS_Anwendungsprofil_1.0.pdf</URI> |
2118 | - <context> |
2119 | - <p>Das zvdd MODS Anwendungsprofil muss mit dem zvdd/DFG-Viewer METS Profil verwendet |
2120 | - werden.</p> |
2121 | - </context> |
2122 | - <description> |
2123 | - <p>Das zvdd MODS Anwendungsprofil beschreibt das Datenformat für Datenlieferungen an |
2124 | - das zvdd-Portal.</p> |
2125 | - </description> |
2126 | - </vocabulary> |
2127 | - </controlled_vocabularies> |
2128 | - |
2129 | - <!-- |
2130 | - *************************************************************************** |
2131 | - ** Structural Requirements |
2132 | - *************************************************************************** --> |
2133 | - |
2134 | - <structural_requirements> |
2135 | - |
2136 | - <!-- |
2137 | - *************************************************************************** |
2138 | - ** Requirement for descriptive Metadata |
2139 | - *************************************************************************** --> |
2140 | - |
2141 | - <dmdSec> |
2142 | - <requirement> |
2143 | - <head>Anzahl und Art der deskriptiven Metadaten</head> |
2144 | - |
2145 | - <p>Jedes Strukturelement (das heißt jedes <div>) kann eine oder |
2146 | - mehrere deskriptive Metadatensektionen <dmdSec> besitzen. Der Typ |
2147 | - einer Metadatensektion muss im MDTYPE Attribut eines jeden <mdRef> |
2148 | - oder <mdWrap> Elements angegeben sein. Sowohl der DFG-Viewer als |
2149 | - auch das zvdd-Portal unterstützten lediglich deskriptive Metadatensektionen vom |
2150 | - Typ MODS. Diese müssen in das METS Dokument eingebunden sein und sich innerhalb |
2151 | - von <mdWrap> befinden. Ferner wird lediglich die erste |
2152 | - Metadatensektion des Typs berücksichtigt. Sollten also mehrere MODS Sektionen |
2153 | - existieren, wird lediglich die Sektion berücksichtigt, dessen Identifier an |
2154 | - erster Stelle im entsprechenden DMDID Attribut des <div> Elements |
2155 | - steht. </p> |
2156 | - |
2157 | - <p>Das oberste <div> Element aus der logischen |
2158 | - <structMap> muss einen entsprechenden MODS Metadatensatz besitzen, |
2159 | - da dieser unter anderem Informationen zur eindeutigen Identifizierung und |
2160 | - Indexierung der Resource sowie zur Anzeige in entsprechenden Page-Turnern |
2161 | - – wie dem DFG-Viewer – enthält. Handelt es sich beim |
2162 | - obersten Element um ein <div> eines übergeordnetes Werkes |
2163 | - (beispielsweise eine Zeitschrift), das keinen MODS Metadatensatz referenziert, |
2164 | - muss das Kind-Element einen solchen besitzen.</p> |
2165 | - |
2166 | - <p>Weitere Metadatensektionen können vorhanden sein, um bspw. weitere |
2167 | - Metadatenformate wie DublinCore aufzunehmen oder aber mittels |
2168 | - <mdRef> auf den entsprechenden Metadatensatz im lokalen OPAC zu |
2169 | - verweisen. Sowohl der DFG-Viewer als auch das zvdd-Portal ignorieren |
2170 | - entsprechende Sektionen. </p> |
2171 | - </requirement> |
2172 | - |
2173 | - <requirement> |
2174 | - <head>MODS Metadaten für logische Objekte</head> |
2175 | - |
2176 | - <p>MODS Metadaten können aufgrund ihres Detailierungsgrades für die Indexierung |
2177 | - eines Dokuments – konkret eines jeden <div> Elements |
2178 | - – genutzt werden. Dies entspricht im wesentlichen der Verwendung durch |
2179 | - das zvdd-Portal.</p> |
2180 | - |
2181 | - <p>Die MODS Metadaten des obersten <div> Elements (bzw. die des ersten |
2182 | - Kind-Elements) werden durch den DFG-Viewer zur Anzeige der bibliographischen |
2183 | - Daten genutzt. Informationen über die MODS Felder, deren Nutzung und deren |
2184 | - Vorhandensein (Pflichtfelder, optionale Felder) finden sich im separaten MODS |
2185 | - Profil. </p> |
2186 | - </requirement> |
2187 | - |
2188 | - <requirement RELATEDMAT="example01"> |
2189 | - <head>Eindeutige Identifizierung des Dokuments mit <mods:identifier></head> |
2190 | - |
2191 | - <p>Jedes Dokument bzw. jede Dokumentstruktur wird mittels des Wertes, welches im |
2192 | - <mods:identifier> Element gespeichert wird, eindeutig |
2193 | - identifiziert. Es können beliebige, unterschiedliche Identifier für ein |
2194 | - <div> Element vorhanden sein. So können neben lokalen |
2195 | - bibliotheksinternen Identifiern auch allgemein gebräuchliche Identifier wie |
2196 | - bspw. die ISBN in diesem Feld gespeichert werden. Für das oberste |
2197 | - <div>-Element (bzw. für dessen erstes Kind-Element) in der |
2198 | - logischen <structMap> ist das Vorhandensein eines entsprechenden |
2199 | - Identifiers Pflicht.</p> |
2200 | - |
2201 | - <p>zvdd fordert an dieser Stelle einen weltweit eindeutigen Identifier wie z.B. URN, |
2202 | - PURL, DOI, Handle oder ARK. Für den Kontext der digitalen Bibliothek hat die URN |
2203 | - in den vergangenen Jahren an Bedeutung gewonnen. Daher wird die URN als |
2204 | - persistenter Identifier vom zvdd-Portal empfohlen.</p> |
2205 | - |
2206 | - <p>Der DFG-Viewer benötigt für die Anzeige eines Werkes keine solche URN. Es wird |
2207 | - trotzdem empfohlen eine solche URN in den MODS Metadaten zu speichern, da anhand |
2208 | - eines solches Identifier weitere Services denkbar sind, die mittels der URN |
2209 | - angesprochen werden können. Sie könnte bspw. zur Verknüpfung zwischen DFG-Viewer |
2210 | - und dem zvdd-Portal dienen. </p> |
2211 | - |
2212 | - <p>Aufgrund der Eindeutigkeit kann die URN auch als Identifier für OAI-PMH genutzt |
2213 | - werden (Protokoll für Metadata-Harvesting). Das heißt der am zvdd-Portal |
2214 | - aufgesetzte OAI-Harvester bedient sich der URN, um die entsprechenden |
2215 | - OAI-Records eindeutig zu identifizieren. Dabei wird jedes <div> |
2216 | - Element, welche eine URN besitzt als eigenständiger OAI-Record betrachtet. </p> |
2217 | - </requirement> |
2218 | - |
2219 | - <requirement RELATEDMAT="example02"> |
2220 | - <head>Hierarchische Verknüpfung von Dokumenten mittels MODS</head> |
2221 | - |
2222 | - <p>Neben der gängigen METS-internen Möglichkeit, Teile von Dokumenten hierarchisch |
2223 | - miteinander zu verknüpfen (siehe Erläuterungen zur optionalen logischen |
2224 | - Dokumentstruktur), existieren auch hierarchische Verknüpfungen zwischen |
2225 | - Dokumenten. Ein Beispiel für eine solche Verknüpfung ist die Beziehung zwischen |
2226 | - einem Mehrbändigen Werk und seinen einzelnen ihm untergeordneten Bänden. |
2227 | - Üblicherweise werden sämtliche Bände eigenständig digitalisiert, so dass für |
2228 | - jeden der Bände eine eigene METS-Datei generiert wird. Um die Bände zu |
2229 | - gruppieren und deren Zusammengehörigkeit abzubilden, wird für das Mehrbändige |
2230 | - Werk eine separate METS-Datei erzeugt. Diese enthält keine Verweise auf |
2231 | - Image-Dateien, sondern nur auf die untergeordneten Bände. Diese hierarchische |
2232 | - Verknüpfung gilt analog für alle anderen <div> Elemente, die auf |
2233 | - ein übergeordnetes Element verweisen – also bspw. auch für eine |
2234 | - Verknüpfung zwischen Zeitschriftenband und Zeitschrift.</p> |
2235 | - |
2236 | - <p>In zvdd wird eine solche Verknüpfung in MODS abgelegt. Das |
2237 | - <relatedItem> Element vom Typ "host" speichert einen Verweis auf |
2238 | - das übergeordnete Werk. Dazu enthält es ein Unterelement vom Typ |
2239 | - <mods:recordInfo><mods:recordIdentifier>, das einen |
2240 | - zur Laufzeit innerhalb des liefernden Repositories gültigen Identifier enthält. |
2241 | - Persistenz wird nicht gefordert. Hierbei ist zu beachten, dass eine solche |
2242 | - Verknüpfung an dieser Stelle grundsätzlich immer nur auf die übergeordnete |
2243 | - Einheit erfolgt.</p> |
2244 | - |
2245 | - <p>Der DFG-Viewer nutzt für die Navigation durch hierarchische Strukturen jedoch |
2246 | - METS-Pointer <mptr>, die jeweils direkt auf über- und auch auf |
2247 | - untergeordnete METS-Dateien verweisen, so kann in beide Richtungen navigiert |
2248 | - werden. Beispielsweise kann von einem Zeitschriften-Element auf alle Bände |
2249 | - verwiesen werden und von den einzelnen Bänden zum übergeordneten |
2250 | - Zeitschriften-Element, siehe auch Kapitel "Behandlung von Zeitschriften und |
2251 | - Mehrbändigen Werken im DFG-Viewer".</p> |
2252 | - </requirement> |
2253 | - |
2254 | - <requirement RELATEDMAT="example03"> |
2255 | - <head>Reihenfolge der Strukturelemente in der logischen Struktur</head> |
2256 | - |
2257 | - <p>Innerhalb eines METS Dokuments wird die Reihenfolge der <div> |
2258 | - Elemente durch deren Anordnung in der logischen <structMap> |
2259 | - bestimmt. Im Fall einer Verknüpfung mittels <relatedItem> muss die |
2260 | - entsprechende Information jedoch an anderer Stelle im MODS Datensatz |
2261 | - abgespeichert werden, da für diese Ebene keine verschachtelten |
2262 | - <div> Elemente existieren. Vielmehr sind die einzelnen |
2263 | - <div> Elemente in unterschiedlichen METS-Dokumenten abgelegt. </p> |
2264 | - |
2265 | - <p>Unter MODS dient das <mods:part> Element dazu, konkrete |
2266 | - Informationen über einen einzelnen Teil und dessen Zugehörigkeit zu einer |
2267 | - größeren Gesamtheit zu speichern. In einer METS-Datei für einen Band sollte an |
2268 | - dieser Stelle die Bandnummer sowohl für die Anzeige als auch für die Sortierung |
2269 | - des Inhaltsverzeichnisses gespeichert werden. Diese Informationen werden sowohl |
2270 | - durch den DFG-Viewer (Anzeige von Bandnummer als bibliographische Information) |
2271 | - als auch durch das zvdd-Portal (Sortierung des Inhaltsverzeichnis des |
2272 | - Mehrbändigen Werks) genutzt. </p> |
2273 | - |
2274 | - <p>Das <mods:part> Element muss über ein ORDER Attribut verfügen, das |
2275 | - die Reihenfolge des jeweiligen <div>s innerhalb der übergeordneten |
2276 | - Einheit angibt. Der Wert dieses Elements muss ganzzahlig sein. Informationen zur |
2277 | - Anzeige der Bandnummer werden innerhalb des <part> Elements unter |
2278 | - <detail><number> gespeichert. Das |
2279 | - <number> Element enthält sämtliche Informationen als Text, das |
2280 | - heißt <number> darf bspw. Zahlenwörter oder sonstige beliebige |
2281 | - Angaben zur Nummerierung enthalten.</p> |
2282 | - |
2283 | - <p>Das <mods:detail> Element muss über ein TYPE Attribut verfügen, das |
2284 | - für zvdd einem Typ der zvdd Strukturdatentypologie entsprechen muss. Für den |
2285 | - DFG-Viewer sollte es einem der in der MODS Dokumentation der Library of Congress |
2286 | - vorgeschlagenen Typen entsprechen: volume, part, issue, chapter, section, |
2287 | - paragraph oder track.</p> |
2288 | - |
2289 | - <p>Innerhalb des <part> Elements müssen immer beide Felder (ORDER |
2290 | - Attribut und <number> Element) vorhanden sein. Sollte die |
2291 | - Information zur Anzeige identisch mit denen zur Sortierung sein, müssen |
2292 | - entsprechende Informationen dupliziert und in beiden Feldern angegeben |
2293 | - werden.</p> |
2294 | - </requirement> |
2295 | - </dmdSec> |
2296 | - |
2297 | - <!-- |
2298 | - *************************************************************************** |
2299 | - ** Requirements for Administrative Metadata |
2300 | - *************************************************************************** --> |
2301 | - |
2302 | - <amdSec> |
2303 | - <requirement RELATEDMAT="example04"> |
2304 | - <head>Metadaten zu Rechteinhaber und Urheber</head> |
2305 | - |
2306 | - <p>Um im zvdd-Portal sowie bei der Anzeige durch den DFG-Viewer den Rechteinhaber |
2307 | - bzw. den Urheber eines Digitalisats zu erwähnen, muss diese Information |
2308 | - innerhalb eines <rightsMD> Element gespeichert werden. Innerhalb |
2309 | - dieses Elements kommt ein eigenes Schema zur Anwendung, welches weiter unten |
2310 | - erläutert wird. </p> |
2311 | - |
2312 | - <p>Da entsprechende Urheber-/Rechteinfromationen in aller Regel für eine komplette |
2313 | - Resource gelten, kann die entsprechende <amdSec> nur von dem |
2314 | - obersten logischen <div> Element (oder von dessen ersten |
2315 | - Kind-Element) einer METS-Datei verknüpft werden. Das <admSec> |
2316 | - Element muss daher also über ein Attribut ID verfügen. Das |
2317 | - <rightMD> muss gemäß METS-Spezifikation zwar vorhanden sein, wird |
2318 | - jedoch nicht aus dem ADMID Attribut des <div> Elements heraus |
2319 | - verlinkt. </p> |
2320 | - |
2321 | - <p>Die entsprechenden Rechte-Metadaten müssen innerhalb des <mdWrap> |
2322 | - Elements gepeichert sein. Eine Referenzierung der Metadaten ist nicht zulässig. |
2323 | - Das MDTYPE Attribut des <mdWrap> Elements muss den Wert "OTHER" |
2324 | - besitzen. Dieser Typ wird im OTHERMDTYPE Attribut konkret spezifiziert. Dieses |
2325 | - muss den Wert "DVRIGHTS" besitzen. </p> |
2326 | - |
2327 | - <p>Innerhalb des <mdWrap> Elements kommt ein eigenes Rechte-Schema zur |
2328 | - Anwendung, welches seinen Inhalt in ein umschließendes <dv:rights> |
2329 | - Element schreibt. Innerhalb dieses Elements gibt es folgende drei Unterelemente, |
2330 | - die jeweils nur genau einmal vorkommen dürfen und müssen. </p> |
2331 | - |
2332 | - <p>owner — Der Urheber des Digitalisats</p> |
2333 | - |
2334 | - <p>logo — Eine URL des Logos des Urhebers; dieses Logo wird durch den |
2335 | - DFG-Viewer sowie das zvdd-Portal entsprechend angezeigt.</p> |
2336 | - |
2337 | - <p>homepage — Eine URL der Homepage des Urhebers.</p> |
2338 | - |
2339 | - <p>Weitere Rechteinformationen können in separaten <rightsMD> |
2340 | - Elementen innerhalb derselben Administrativen Metadatensektion abgelegt werden. |
2341 | - Diese müssen jedoch andere Rights-Schemata verwenden und diese in den Attributen |
2342 | - MDTYPE und OTHERMDTYPE des <mdWrap> Elements dokumentieren. </p> |
2343 | - </requirement> |
2344 | - |
2345 | - <requirement RELATEDMAT="example05"> |
2346 | - <head>Metadaten zu Herkunft und Online-Präsentation</head> |
2347 | - |
2348 | - <p>Informationen zu Herkunft und Präsentation eines Digitalisats werden innerhalb |
2349 | - eines <digiprovMD> Elements in der <amdSec> |
2350 | - gespeichert.</p> |
2351 | - |
2352 | - <p>Analog zu den Metadaten zu Rechteinhaber und Urheber müssen die entsprechenden |
2353 | - Herkunfts-Metadaten innerhalb des <mdWrap> Elements gepeichert |
2354 | - sein. Eine Referenzierung der Metadaten ist ebenfalls nicht zulässig. Das MDTYPE |
2355 | - Attribut des <mdWrap> Elements muss den Wert "OTHER" besitzen. |
2356 | - Dieser Typ wird im OTHERMDTYPE Attribut konkret spezifiziert. Dieses muss hier |
2357 | - den Wert "DVLINKS" besitzen. </p> |
2358 | - |
2359 | - <p>Innerhalb des <mdWrap> Elements kommt ein eigenes Herkunfts-Schema |
2360 | - zur Anwendung, welches seinen Inhalt in ein umschließendes |
2361 | - <dv:links> Element schreibt. Innerhalb dieses Elements gibt es |
2362 | - folgende zwei Unterelemente, die jeweils nur genau einmal vorkommen dürfen und |
2363 | - müssen. </p> |
2364 | - |
2365 | - <p>reference — Eine URL auf den Katalogeintrag des Digitaslisats</p> |
2366 | - |
2367 | - <p>presentation — Eine URL auf die Online-Präsentation des Digitalisats.</p> |
2368 | - |
2369 | - <p>Weitere Herkunftsinformationen können in separaten <digiprovMD> |
2370 | - Elementen innerhalb derselben Administrativen Metadatensektion abgelegt werden. |
2371 | - Diese müssen jedoch andere Links-Schemata verwenden und diese in den Attributen |
2372 | - MDTYPE und OTHERMDTYPE des <mdWrap> Elements dokumentieren. </p> |
2373 | - </requirement> |
2374 | - </amdSec> |
2375 | - |
2376 | - <!-- |
2377 | - *************************************************************************** |
2378 | - ** Requirements for the fileSec |
2379 | - *************************************************************************** --> |
2380 | - |
2381 | - <fileSec> |
2382 | - <requirement> |
2383 | - <head>File-Section</head> |
2384 | - |
2385 | - <p>In der File-Section <fileSec> sind alle Inhaltsdateien aufgeführt, |
2386 | - aus dem das Dokument besteht. Inhaltsdateien sind Dateien, die den semantischen |
2387 | - Inhalt der Resource enthalten. Dateien, die bspw. Metadaten zu diesem Dokument |
2388 | - enthalten, werden nicht aus der File-Sektion heraus verlinkt. </p> |
2389 | - </requirement> |
2390 | - |
2391 | - <requirement> |
2392 | - <head>File-Groups</head> |
2393 | - |
2394 | - <p>Die Dateien selber können in unterschiedliche Gruppen gegliedert sein. Jede |
2395 | - Gruppe beinhaltet Dateien ähnlichen Typs zu ähnlichen Verwendungszwecken. In |
2396 | - einem METS-Dokument muss mindestens eine Gruppe existieren. Die Anzahl der |
2397 | - Gruppen ist nicht beschränkt. Für die Nutzung der METS-Datei im DFG-Viewer sind |
2398 | - jedoch mindestens zwei der unten stehenden Dateigruppen zu implementieren. </p> |
2399 | - |
2400 | - <p>Jede File-Group wird durch ein <fileGrp> Element deklariert und ist |
2401 | - direkt dem <fileSec> Element untergeordnet. Untergruppen sind |
2402 | - nicht möglich, das heißt ein <fileGrp> Element darf keine weiteren |
2403 | - <fileGrp> Elemente enthalten. </p> |
2404 | - |
2405 | - <p>Existieren mehrere File-Groups, so ist jedes <fileGrp> Element mit |
2406 | - einem Attribut USE zu versehen, das Informationen über die Verwendung enthält. |
2407 | - </p> |
2408 | - </requirement> |
2409 | - |
2410 | - <requirement RELATEDMAT="example06"> |
2411 | - <head>Files</head> |
2412 | - |
2413 | - <p>Jede Datei wird durch ein <file> Element deklariert. Dieses |
2414 | - <file> Element ist Kind-Element eines <fileGrp> |
2415 | - Elements, das heißt jede Datei muss zu genau einer Gruppe gehören. Die |
2416 | - Zugehörigkeit einer Datei zu mehreren Gruppen ist nicht möglich. </p> |
2417 | - |
2418 | - <p>Der eigentliche Inhalt der Datei (der Bytestream) wird außerhalb des |
2419 | - METS-Dokuments gespeichert, jedoch so persistent mit der METS-Datei mittels |
2420 | - <FLocat> verknüpft, dass der DFG-Viewer die Datei bei Bedarf aus |
2421 | - dem ursprünglichen Repository laden und anzeigen kann. Dazu muss das |
2422 | - <file> Element als einziges Kind-Element ein |
2423 | - <FLocat> Element enthalten, welches mittels einer URL, die in dem |
2424 | - Attribut xlink:href gespeichert ist, referenziert wird. Das Attribut LOCTYPE |
2425 | - muss daher den Wert "URL" besitzen. Für die Gültigkeit der in der METS-Datei |
2426 | - enthaltenen URL ist das Repository verantwortlich, welche die METS-Datei |
2427 | - produziert und in Umlauf gebracht hat. In die METS-Datei eingebetteter Content |
2428 | - unter Verwendung des <FContent> Elements wird nicht unterstützt. </p> |
2429 | - |
2430 | - <p>Jedes <file> Element enthält ein Attribut ID, welches als |
2431 | - eindeutiger Verweis innerhalb des METS-Dokuments dient. Diese IDs werden von den |
2432 | - <fptr> Elementen in <structMap> referenziert und |
2433 | - weisen den <div> Elementen das entsprechende <file> |
2434 | - Element zu. </p> |
2435 | - |
2436 | - <p>Jedes <file> muss ein MIMETYPE Attribut beinhalten, welches den |
2437 | - Mime-Type der Inhaltsdatei enthält. Als weitere technische Metadaten sollten |
2438 | - CHECKSUM, CHECKSUMTYPE und SIZE vorhanden sein. Sie beinhalten einen Hashwert |
2439 | - des Content-Files bzw. entsprechende Informationen zu dem verwendeten |
2440 | - Algorithmus sowie die Länge der Datei in Bytes. Diese Informationen sind vor |
2441 | - allem für den DFG-Viewer hilfreich, um die Authentizität der gelieferten |
2442 | - Contentdateien vor der Anzeige zu beurteilen. </p> |
2443 | - |
2444 | - <p>Derzeit werden keine technischen Metadaten für einzelne Dateien unterstützt. |
2445 | - Sollten dies gewünscht sein, können sie in einer separaten administrativen |
2446 | - Metadatensektion (admSec) abgespeichert werden und mittels des ADMID Attributs |
2447 | - des <file> Elements verknüpft werden. Die Verwendung von |
2448 | - technischen Metadaten ist also optional. </p> |
2449 | - </requirement> |
2450 | - |
2451 | - <requirement RELATEDMAT="example07"> |
2452 | - <head>Dateigruppen</head> |
2453 | - |
2454 | - <p>Die Verwendung unterschiedlicher Dateigruppen hat den Zweck, Dateien mit |
2455 | - ähnlichen Merkmalen unter dem Aspekt identischer Nutzung zusammenzufassen. Auf |
2456 | - den DFG-Viewer übertragen bedeutet dies, dass Imagedaten mit identischer |
2457 | - Imagebreite zu einer Gruppe zusammengefasst werden. Hierbei ist zu beachten, |
2458 | - dass alle Dateien dieser Gruppen Derivate der Originaldateien sind, die zur |
2459 | - Anzeige in verschiedenen Größen berechnet wurden. Daher muss eine Dateigruppe |
2460 | - auch immer ein komplettes Set an Imagedaten enthalten – für jede Seite |
2461 | - muss in jeder Dateigruppe genau ein Image existieren. </p> |
2462 | - |
2463 | - <p>Der DFG-Viewer kann diese unterschiedlichen Derivate entsprechend ihrer |
2464 | - Imagebreite ordnen. Entsprechend der vorhandenen Imagebreiten stellt der |
2465 | - DFG-Viewer die Images in unterschiedlichen Zoomstufen dar. Zu diesem Zweck gibt |
2466 | - das Attribut USE des <fileGrp> Elements die Pixelbreite der |
2467 | - enthaltenen Images an. Die möglichen Werte des USE Attributs sind für den |
2468 | - DFG-Viewer standarisiert. Dateigruppen mit abweichenden Werten werden vom |
2469 | - DFG-Viewer ignoriert und können so bspw. Verweise auf Volltextdaten oder lokale |
2470 | - Dateien enthalten. Die möglichen Werte für den DFG-Viewer sind: </p> |
2471 | - |
2472 | - <p>DEFAULT — enthält Imagedateien mit einer Breite zwischen 1000 und 1500 |
2473 | - Pixel. Dies ist die Bildgröße, die beim ersten Aufruf des Dokuments im |
2474 | - DFG-Viewer angezeigt wird. </p> |
2475 | - |
2476 | - <p>MIN — enthält Imagedateien mit einer Breite zwischen 600 und 1000 |
2477 | - Pixel. Diese Bildgröße wird angezeigt, wenn im DFG-Viewer aus dem Dokument |
2478 | - herausgezoomt wird. </p> |
2479 | - |
2480 | - <p>MAX — enthält Imagedateien der größtmöglichen online verfügbaren |
2481 | - Auflösung. Diese Bildgröße wird angezeigt, wenn im DFG-Viewer in das Dokument |
2482 | - hineingezoomt wird. </p> |
2483 | - |
2484 | - <p>THUMBS — enthält alle Seiten als kleines Übersichtsbild mit genau 150 |
2485 | - Pixel Breite oder 150 Pixel Höhe. Bei Hochkant-Bildern ist also die Höhe auf 150 |
2486 | - Pixel beschränkt, bei Querformat-Bildern dagegen die Breite. Die jeweils andere |
2487 | - Größe sollte so gewählt werden, dass die Proportionen erhalten bleiben. Das |
2488 | - Bildformat für die Thumbnails muss entweder PNG oder JPG sein. Daraus wird der |
2489 | - DFG-Viewer zukünftig eine Übersicht aller Seiten erstellen. Daher ist es |
2490 | - wichtig, dass diese <fileGrp> ein entsprechendes verkleinertes |
2491 | - Derivat eines jeden Seitenimages enthält. </p> |
2492 | - |
2493 | - <p>DOWNLOAD — enthält Dateien, die für den Download vorgesehen sind. Zu |
2494 | - beachten ist hier die korrekte Angabe des entsprechenden MIMETYPE Attributs der |
2495 | - <file> Elemente, bei einer PDF-Datei muss beispielsweise der Wert |
2496 | - "application/pdf" angegeben sein. Die einzelnen Dateien können sowohl physischen |
2497 | - wie auch logischen Strukturelementen zugeordnet werden.</p> |
2498 | - |
2499 | - <p>Es müssen mindestens die entsprechenden File-Groups für die Auflösungen "MIN" und |
2500 | - "DEFAULT" in der METS-Datei enthalten sein, alle weiteren File-Groups sind |
2501 | - optional. </p> |
2502 | - <p /> |
2503 | - </requirement> |
2504 | - </fileSec> |
2505 | - |
2506 | - <!-- |
2507 | - *************************************************************************** |
2508 | - ** Requirements for the structMap |
2509 | - *************************************************************************** --> |
2510 | - |
2511 | - <structMap> |
2512 | - <requirement RELATEDMAT="example08"> |
2513 | - <head>Bibliographisches Dokumentenmodell</head> |
2514 | - |
2515 | - <p>Wird ein Dokument gemäß des Bibliographischen Dokumentenmodells erfasst, |
2516 | - existiert lediglich eine logische <structMap>. Daher muss das TYPE |
2517 | - Attribut des einzigen <structMap> Elements den Wert "LOGICAL" |
2518 | - besitzen. Die logische <structMap> enthält bei Monographien |
2519 | - lediglich ein einziges <div> Element, welches das jeweilige Werk |
2520 | - repräsentiert. In diesem Modell existieren keinerlei <div> |
2521 | - Elemente als Kind-Elemente.</p> |
2522 | - |
2523 | - <p>Demzufolge ist dem <div> mindestens ein MODS Metadatensatz |
2524 | - zugeordnet. Entsprechend hat das DMDID Attribut des <div> Elements |
2525 | - einen Eintrag. Das TYPE Attribut muss einen Wert aus der |
2526 | - zvdd-Strukturdatentypologie enthalten. </p> |
2527 | - |
2528 | - <p>Da keine entsprechenden Seiten definiert sind, ist dieses Modell für den |
2529 | - DFG-Viewer NICHT geeignet. Es existiert lediglich als notdürftige Lösung für das |
2530 | - zvdd-Portal, um Dokumente, die lediglich als PDF vorliegen und zu denen |
2531 | - rudimentäre Metadaten existieren, in das Portal aufnehmen und dort indexieren zu |
2532 | - können.</p> |
2533 | - </requirement> |
2534 | - |
2535 | - <requirement RELATEDMAT="example9"> |
2536 | - <head>Seitenbasiertes Dokumentenmodell</head> |
2537 | - |
2538 | - <p>Das Seitenbasierte Dokumentmodell ist das Minimalmodell, welches vom DFG-Viewer |
2539 | - unterstüzt wird. Es definiert einzelne Seiten, die durch den DFG-Viewer |
2540 | - angezeigt werden können. Zu jeder dieser Seiten müssen mindestens zwei |
2541 | - entsprechende Dateiverweise existieren (einer in die File-Group "DEFAULT" und |
2542 | - einer in die File-Group "MIN"). </p> |
2543 | - |
2544 | - <p>Das Seitenbasierte Dokumentenmodell zeichnet sich durch zwei |
2545 | - <structMap> Elemente aus. Ein <structMap> Element |
2546 | - enthält die logische Struktur, dessen TYPE Attribut besitzt den Werk "LOGICAL". |
2547 | - Das andere <structMap> Element enthält die physische Struktur, das |
2548 | - TYPE Attribut hat den Wert "PHYSICAL". Weitere <structMap> |
2549 | - Elemente dürfen nicht existieren. Die <structLink> Sektion muss in |
2550 | - diesem Modell vorhanden sein und entsprechende logische und physische Strukturen |
2551 | - verknüpfen. Dabei muss jedes <div> Element aus der physischen |
2552 | - Struktur mindestens einem <div> Element aus der logischen Struktur |
2553 | - direkt oder indirekt zugeordnet sein. Als Ausnahme gilt lediglich das erste |
2554 | - logische <div> Element eines Mehrbändigen Werkes oder einer |
2555 | - Zeitschrift, da dieses das übergeordnete Werk bezeichnet und kein physisches |
2556 | - Strukturelement dafür existiert. Weitere Informationen zur Verknüpfung der |
2557 | - logischen und physischen Struktur sind dem <structLink> Abschnitt |
2558 | - zu entnehmen. </p> |
2559 | - |
2560 | - <p>Innerhalb des physischen <structMap> Elements wird die |
2561 | - Seitenstruktur durch <div> Elemente wiedergegeben, die einem |
2562 | - obersten <div> Element untergeordnet sind. Dieses oberste |
2563 | - <div> Element umfasst die Seiten, die die bibliographische Einheit |
2564 | - repräsentieren. Daher muss dessen TYPE Attribut immer den Wert "physSequence" |
2565 | - besitzen. </p> |
2566 | - |
2567 | - <p>Die darunterliegenden Strukturelemente repräsentieren die Seiten bzw. den |
2568 | - Einband. Einband und Seiten werden auf derselben hierarchischen Ebene |
2569 | - angesiedelt. Im Fall einer Seiten-Repräsentation enthält das jeweilige |
2570 | - <div> Element den Wert "page" im TYPE Attribut. Eine weitere |
2571 | - Verschachtelung bspw. zum Abbilden von Seitenbereichen wie Spalten etc. ist |
2572 | - ebenfalls denkbar und können als den Seiten untergeordnete <div> |
2573 | - Elemente implementiert werden. Der DFG-Viewer berücksichtigt entsprechende |
2574 | - <div> Elemente unterhalb der Seitenebene jedoch nicht. </p> |
2575 | - |
2576 | - <p>Jedes <div> Element innerhalb der physischen Struktur muss über ein |
2577 | - ID Attribut verfügen, welches einen eindeutigen Wert besitzt. Die Eindeutigkeit |
2578 | - dieses Wertes gilt für das komplette METS-Dokument. </p> |
2579 | - |
2580 | - <p>Obwohl es auf Seitenebene sinnvoll erscheint, die <div> Elemente in |
2581 | - derselben Reihenfolge anzuordnen, wie die Seiten innerhalb der gebundenen |
2582 | - Einheit angeordnet sind, muss diese Reihenfolge im ORDER Attribut eines jeden |
2583 | - <div> Elements auf Seitenebene explizit angegeben werden. Das |
2584 | - ORDER Attribut darf lediglich einen ganzzahligen Wert (Integer) enthalten, der |
2585 | - auf Ebene der Seiten eindeutig sein muss. Für die Reihenfolge der Seiten sind |
2586 | - einzig die Werte der ORDER Attribute ausschlaggebend; die Reihenfolge der |
2587 | - <div> Elemente bleibt unberücksichtigt. Für den Seiten |
2588 | - untergeordnete Strukturelemente wird die Verwendung des ORDER Attributs |
2589 | - ebenfalls empfohlen. </p> |
2590 | - |
2591 | - <p>Besitzt eine Seite eine aufgedruckte Seitenzahl, so ist diese in Vorlagenform im |
2592 | - ORDERLABEL Attribut des <div> Elements zu speichern. Seiten, die |
2593 | - nicht in der Paginierung berücksichtigt sind (ungezählte Seiten) benötigen kein |
2594 | - ORDERLABEL Attribut. Das Ausfüllen des LABEL Attributs ist optional möglich. Der |
2595 | - DFG-Viewer benutzt den Wert des ORDERLABEL Attributs zur Anzeige und Navigation |
2596 | - (gezieltes Anspringen von Seiten), wenn das Attribt vorhanden ist. </p> |
2597 | - |
2598 | - <p>Das Attribut CONTENTIDS gibt einen (oder mehrere) persistente Identifier für jede |
2599 | - einzelnen Seite des Dokuments an und besteht aus einer URI oder einer Liste von |
2600 | - URIs. Diese werden vom DFG-Viewer als persistente IDs für die jeweilige Seite |
2601 | - angezeigt und können als dauerhafter Link für Zitationen direkt auf die |
2602 | - entsprechende Seite genutzt werden.</p> |
2603 | - |
2604 | - <p>Mit Hilfe des File-Pointers <fptr> können Dateien für den Download |
2605 | - referenziert werden. In der physischen Struct-Map ist dies nur für einzelne |
2606 | - Seiten möglich, siehe auch Kapitel "Verweise auf Dateien – physische |
2607 | - Struktur". Eine Datei des kompletten Werkes kann in der logischen Struct-Map |
2608 | - referenziert werden, siehe Kapitel "Verweise auf Dateien – logische |
2609 | - Struktur".</p> |
2610 | - </requirement> |
2611 | - |
2612 | - <requirement RELATEDMAT="example10"> |
2613 | - <head>Komplexes Dokumentenmodell</head> |
2614 | - |
2615 | - <p>Das Komplexe Dokumentenmodell erweitert das Seitenbasierte Modell um weitere |
2616 | - Strukturinformationen auf logischer Ebene. Für die physische Struktur |
2617 | - (<structMap TYPE="PHYSICAL">) gilt im Komplexen Dokumentenmodell |
2618 | - all jenes, was bereits oben für das Seitenbasierte Modell beschrieben wurde. </p> |
2619 | - |
2620 | - <p>Der DFG-Viewer nutzt die zusätzlichen Strukturinformationen, um das |
2621 | - Inhaltsverzeichnis zu erstellen und ermöglicht eine Navigation in der Struktur. |
2622 | - Das zvdd-Portal verarbeitet die logischen Strukturdaten und nutzt sie zur |
2623 | - Indizierung und zur Suche.</p> |
2624 | - |
2625 | - <p>Die oberste logische Struktureinheit ist das bereits im Bibliographischen |
2626 | - Dokumentenmodell erwähnte <div> Element, welches die |
2627 | - bibliographische Einheit repräsentiert. Diesem <div> werden |
2628 | - weitere <div> Elemente untergeordnet, so dass sich durch die |
2629 | - verschachtelten Elemente die logische Struktur des Dokuments abbildet. Die Tiefe |
2630 | - der Verschachtelung ist nicht beschränkt. In der logischen Struktur gibt die |
2631 | - Reihenfolge der <div> Elemente die tatsächliche Reihenfolge der zu |
2632 | - repräsentierenden Strukturen wieder. Es ist nicht notwendig, das ORDER oder |
2633 | - ORDERLABEL Attribut zu benutzen; deren Werte werden im Kontext des DFG-Viewers |
2634 | - sowie des zvdd-Portals ignoriert. </p> |
2635 | - |
2636 | - <p>Jedes <div> Element innerhalb der logischen Struktur muss ebenfalls |
2637 | - über ein ID Attribut verfügen, welches einen eindeutigen Wert besitzt. Die |
2638 | - Eindeutigkeit dieses Wertes gilt für das komplette METS-Dokument. </p> |
2639 | - |
2640 | - <p>Weiterhin muss jedes <div> Element innerhalb der logischen Struktur |
2641 | - über ein TYPE Attribut verfügen. Für zvdd muss dessen Inhalt einem Typ der zvdd |
2642 | - Strukturdatentypologie entsprechen. Werden die Strukturtypen des DFG-Viewer |
2643 | - Strukturdatensets verwendet, werden diese Strukturen – je nach |
2644 | - Sprachauswahl des Nutzers – auch übersetzt angezeigt. Ist ein Attribut |
2645 | - LABEL vorhanden, wird dieses zur Anzeige des jeweiligen Strukturtyps in der |
2646 | - Übersicht genutzt.</p> |
2647 | - |
2648 | - <p>Mit dem Attribut CONTENTIDS können auch in diesem Modell persistente Identifier |
2649 | - für alle logischen Elemente angegeben werden, beispielsweise für die gesamte |
2650 | - Monographie oder für einzelne Kapitel. Diese werden ebenfalls vom DFG-Viewer als |
2651 | - persistente IDs für Zitationen angezeigt.</p> |
2652 | - |
2653 | - <p>Zusätzlich zu den Download-Referenzen in der physischen Struct-Map können auch in |
2654 | - der logischen Struct-Map Dateien per <fptr> referenziert werden, |
2655 | - beispielsweise PDF-Dateien des kompletten Werkes, von Artikeln oder Kapiteln. |
2656 | - Der DFG-Viewer wertet zur Zeit nur die Referenz auf das Gesamtwerk aus, siehe |
2657 | - auch Kapitel "Verweise auf Dateien – logische Struktur".</p> |
2658 | - </requirement> |
2659 | - |
2660 | - <requirement RELATEDMAT="example11"> |
2661 | - <head>Behandlung von Zeitschriften und Mehrbändigen Werken im DFG-Viewer</head> |
2662 | - |
2663 | - <p>Bandübergreifende Navigation im DFG-Viewer wird ermöglicht, indem die Bände und |
2664 | - ihre übergeordnete Struktur mittels METS-Pointern untereinander verknüpft |
2665 | - werden. Dies geschieht über eine weitere METS-Datei, die nur die Zeitschrift |
2666 | - oder das Mehrbändgie Werk beschreibt. Hier sind nur die Metadaten der |
2667 | - Zeitschrift sowie eine logische <structMap> enthalten, in der alle |
2668 | - <div> Elemente der Bände verzeichnet sind. Die Reihenfolge der |
2669 | - <div> Elemente entspricht der Reihenfolge der Bände. Es sind keine |
2670 | - Inhaltsdateien von dieser Datei aus verlinkt.</p> |
2671 | - |
2672 | - <p>Die Verknüpfung zwischen den METS-Dateien der Zeitschrift und den METS-Dateien |
2673 | - der Bände erfolgt mittels METS-Pointer Elementen <mptr>, die den |
2674 | - einzelnen <div> Elementen untergeordnet sind. Aus der METS-Datei |
2675 | - des Bandes weist ein METS-Pointer auf die METS-Datei der Zeitschrift und von der |
2676 | - METS-Datei der Zeitschrift weist jeweils ein METS-Pointer auf die zugehörige |
2677 | - METS-Datei eines jeden Bandes.</p> |
2678 | - </requirement> |
2679 | - |
2680 | - <requirement> |
2681 | - <head>Metadaten für Strukturelemente</head> |
2682 | - |
2683 | - <p>Grundsätzlich können jedem <div> Element ein oder mehrere |
2684 | - Metadatensektionen zugeordnet werden. Dies ist unabhängig davon, ob sich das |
2685 | - Element in einer logischen oder einer physischen Struktur befindet. Sowohl das |
2686 | - zvdd-Portal als auch der DFG-Viewer nutzen allerdings lediglich deskriptive |
2687 | - Metadaten gemäß der in der Sektion "Deskriptive Metadaten" genannten Bedingungen |
2688 | - (siehe MODS-Metadatenschema), die von der logischen <structMap> |
2689 | - aus referenziert werden. Andere Metadatensektionen werden ignoriert. </p> |
2690 | - </requirement> |
2691 | - |
2692 | - <requirement RELATEDMAT="example12"> |
2693 | - <head>Verweise auf Dateien – physische Struktur</head> |
2694 | - |
2695 | - <p>Um von einem <div> Element auf zugehörige Dateien zu verweisen, |
2696 | - wird das File-Pointer Element <fptr> benutzt. Dieses Element ist |
2697 | - daher immer Kind-Element des <div> Elements, für welches es die |
2698 | - Dateien verlinkt. Jedes <div> Element kann einen oder mehrere |
2699 | - File-Pointer besitzen. </p> |
2700 | - |
2701 | - <p>Ein File-Pointer verweist immer auf eine Datei, die in der File-Sektion an |
2702 | - beliebiger Stelle aufgeführt ist; das heißt, die Dateien können in verschiedenen |
2703 | - File-Groups enthalten sein. Die Verknüpfung erfolgt über das FILEID Attribut. |
2704 | - Jedes <fptr> Element muss ein FILEID Attribut besitzen. </p> |
2705 | - |
2706 | - <p>Dateien, die lediglich den Inhalt einer Seite wiedergeben (bspw. Seiten), werden |
2707 | - nur aus der physischen Dokumentenstruktur heraus verlinkt – konkret: |
2708 | - nur aus den <div> Elementen heraus, die die jeweilige Seite |
2709 | - repräsentieren. Durch die hierarchische Struktur wird eine Verknüpfung der den |
2710 | - Seiten zugeordneten Dateien (Seitenimages) zur gebundenen Einheit implizit |
2711 | - ausgedrückt. Den unterliegenden Strukturen (bspw. Seiten) zugeordneten Dateien |
2712 | - dürfen den überliegenden Strukturen nicht explizit ein weiteres Mal zugeordnet |
2713 | - werden. </p> |
2714 | - |
2715 | - <p>Generell dürfen nur <file> Elemente verlinkt werden, Verknüpfungen |
2716 | - zu <fileGrp> Elemente sind unzulässig. Damit der DFG-Viewer |
2717 | - entsprechende Seiten anzeigen kann, müssen zu jedem <div> vom Typ |
2718 | - "page" mindestens zwei Verknüpfungen vorhanden sein. Eine Verknüpfung muss |
2719 | - jeweils auf je eine Datei aus den beiden Pflichtdateigruppen "DEFAULT" und "MIN" |
2720 | - erfolgen. Wenn weitere File-Groups vorhanden sind, werden auch diese hier |
2721 | - verlinkt.</p> |
2722 | - |
2723 | - <p>Für den DFG-Viewer können in der physischen Struct-Map Verweise auf Dateien für |
2724 | - den Download einzelner Seiten referenziert werden, ein solcher |
2725 | - Einzelseiten-Download wird dann entsprechend im DFG-Viewer angeboten. Ein |
2726 | - Verweis auf einen Gesamt-Download im obersten <div> wird nur dann |
2727 | - angezeigt, wenn kein entsprechender Verweis in der logischen Struct-Map |
2728 | - vorhanden ist. Siehe auch Kapitel "Verweise auf Dateien – logische |
2729 | - Struktur".</p> |
2730 | - </requirement> |
2731 | - |
2732 | - <requirement RELATEDMAT="example13"> |
2733 | - <head>Verweise auf Dateien – logische Struktur</head> |
2734 | - |
2735 | - <p>Ebenso wie aus der physischen Struktur können Verknüpfungen auf Dateien aus der |
2736 | - logischen Struktur heraus gesetzt werden. Eine aus der logischen Struktur heraus |
2737 | - verknüpfte Datei muss jedoch den kompletten Inhalt der entsprechenden logischen |
2738 | - Dokumentstruktur enthalten. Beispiel für eine solche Verknüpfung kann bspw. der |
2739 | - Link auf eine PDF-Datei sein, die eine komplette Monographie oder ein einzelnes |
2740 | - Kapitel derselben enthält. Es ist nicht erlaubt, Verweise auf mehrere Dateien, |
2741 | - die erst als Sequenz den kompletten Inhalt der logischen Struktur wiedergeben |
2742 | - für dieses <div> Element zu setzen. </p> |
2743 | - |
2744 | - <p>Sinnvoll ist ein solcher Verweis immer dann, wenn die verknüpfte Datei nicht |
2745 | - granular genug adressiert werden kann, um sie aus der physischen Struktur heraus |
2746 | - zu verlinken; bspw. wenn keine entsprechenden Seitenumbrüche in der Datei |
2747 | - enthalten sind oder diese den Download kompletter logischer Strukturen |
2748 | - ermöglicht. </p> |
2749 | - |
2750 | - <p>Der DFG-Viewer nutzt gezielt die Verknüpfungen von logischen Strukturelementen |
2751 | - auf Dateien der File-Group vom Typ DOWNLOAD, um den Download einzelner Kapitel |
2752 | - und kompletter Werke zu ermöglichen. Ist an dieser Stelle ein Verweis auf das |
2753 | - komplette Werk vorhanden, wird dieser vom DFG-Viewer bevorzugt als Link zum |
2754 | - Herunterladen des gesamten Dokuments angezeigt. Die entsprechenden Dateien |
2755 | - müssen innerhalb der <fileSec> definiert sein und dessen |
2756 | - <file> Elemente müssen über entsprechende MIMETYPE Attribute |
2757 | - verfügen. Pro logischer Struktureinheit wird nur eine – die erste |
2758 | - – Verknüpfung mit einer Datei unterstützt. Eine solche Verknüpfung ist |
2759 | - für den DFG-Viewer optional, wenn das Dokument das Seitenbasierte oder das |
2760 | - Komplexe Dokumentenmodell implementiert. Wird das Bibliographische |
2761 | - Dokumentenmodell implementiert, ist ein solcher Link verpflichtend, da er die |
2762 | - einzige Verknüpfung zum Inhalt darstellt. </p> |
2763 | - |
2764 | - <p>Inhalte dürfen entweder direkt aus der logischen Struktur heraus oder aber |
2765 | - indirekt über eine Verknüpfung der logischen Struktur mit der physischen |
2766 | - Struktur verknüpft werden. Eine Redundanz der Verknüpfung auf eine Datei aus |
2767 | - beiden Strukturen heraus ist auf alle Fälle zu vermeiden. Eine Verknüpfung auf |
2768 | - einzelne Seiten-Images für ein logisches <div> ist nicht erlaubt, |
2769 | - wenn bereits von einem physischen Strukturelement (bspw. einer Seite) auf |
2770 | - dasselbe Seitenimage verwiesen wird. Stattdessen ist das logische |
2771 | - <div> Element mit der Seite über die <structLink> |
2772 | - Sektion zu verknüpfen und von der Seite auf das entsprechende Image zu |
2773 | - verweisen. Für das Blättern der Seiten im DFG-Viewer ist eine entsprechende |
2774 | - Verknüpfung nicht relevant. Jedoch könnte der DFG-Viewer dem Benutzer ein Link |
2775 | - auf das PDF im Originalrepository anbieten. </p> |
2776 | - </requirement> |
2777 | - |
2778 | - <requirement> |
2779 | - <head>Mehrfache Verknüpfungen aus einer <div> Sektion</head> |
2780 | - |
2781 | - <p>Werden mehrere Dateien aus einem <div> Element heraus verknüpft, so |
2782 | - müssen diese Dateien denselben semantischen Inhalt beinhalten. Die |
2783 | - Darstellungsform kann jedoch unterschiedlich sein. Dazu ist es notwendig, dass |
2784 | - sich die verknüpften Dateien in unterschiedlichen File-Groups befinden. Somit |
2785 | - lassen sich für ein <div> unterschiedliche Auflösungen ein und |
2786 | - dergleichen Seite in unterschiedlichen <file> Elemente speichern |
2787 | - und dieser Seite zuordnen. </p> |
2788 | - |
2789 | - <p>Parallel oder in sequentieller Reihenfolge darstellbare Dateien werden nicht |
2790 | - unterstützt, das heißt <par> und <seq> Elemente |
2791 | - dürfen in der METS-Datei nicht enthalten sein. </p> |
2792 | - </requirement> |
2793 | - |
2794 | - <requirement RELATEDMAT="example14"> |
2795 | - <head>Verknüpfungen in Dateien</head> |
2796 | - |
2797 | - <p>Teilweise unterscheidet sich die Granularität des Dokuments von der Granularität |
2798 | - der einzelnen Content-Files. So kann es sinnvoll sein, Dokumente in der |
2799 | - logischen oder physischen Struktur feiner granuliert zu erfassen, als dies für |
2800 | - eine Speicherung der Inhalte sinnvoll ist. Als Beispiel ist hier die Speicherung |
2801 | - von Volltexten zu nennen. In aller Regel werden Volltexte gemäß der |
2802 | - TEI-Spezifikation immer komplett für ein Dokument in einer XML-Datei |
2803 | - gespeichert, das heißt der Volltext umfasst mehrere Seiten, die innerhalb des |
2804 | - Textes markiert sind. Daher stellt METS Möglichkeiten bereit, direkt in eine |
2805 | - solche Datei hinein zu verweisen, um den Start und das Ende des jeweiligen |
2806 | - Inhalts des <div> Elements in der Inhaltsdatei zu markieren. </p> |
2807 | - |
2808 | - <p>Mittels einer solchen granularen Verknüpfung kann das zvdd-Portal Volltexte |
2809 | - seitenbasiert indexieren und den Volltext entsprechenden Strukturelementen |
2810 | - (<div>s) zuordnen. Der DFG-Viewer könnte in späteren Versionen in |
2811 | - der Lage sein, neben reinen Images auch Volltexte seitenbasiert dazustellen bzw. |
2812 | - mittels solcher Information Suchtreffer in den Images zu markieren. Die |
2813 | - Unterstützung von Volltext ist generell sowohl im DFG-Viewer als auch im |
2814 | - zvdd-Portal optional. </p> |
2815 | - |
2816 | - <p>Eine solche Verknüpfung erfolgt über das <area> Element, welches |
2817 | - als Kind-Element des jeweiligen File-Pointes (<fptr> Element) |
2818 | - existiert. Ist ein <area> Element vorhanden, so wird von diesem |
2819 | - Element mittels des FILEID Attributs auf die Inhaltsdatei verwiesen. In diesem |
2820 | - Fall darf das <fptr> Element selber kein FILEID Element besitzen. </p> |
2821 | - |
2822 | - <p>Als erste Verweisart wird der Verweis in Imagebereiche unterstüzt. Hierbei |
2823 | - enthält der Verweis Pixelkoordinaten, um einen Bereich innerhalb des |
2824 | - referenzierten Images zu markieren, welcher den Inhalt des jeweiligen |
2825 | - <div> Elements wiedergibt. Ein solcher Verweis muss folgende |
2826 | - Attribute für das <area> beinhalten:</p> |
2827 | - |
2828 | - <p>SHAPE — Die Form des Bereiches: "RECT", "CIRCLE" oder "POLY".</p> |
2829 | - |
2830 | - <p>COORDS — Die Koordinateninformation des Bereichs gemäß HTML 4.0.</p> |
2831 | - |
2832 | - <p>Als zweite Verweisart wird der Verweis in XML-Dateien hinein untersützt. Ein |
2833 | - solcher Verweis wird mittels ID Attributen durchgeführt. Das heißt in der |
2834 | - Ziel-Datei müssen XML-Elemente existieren, die über ID Attribute mit den |
2835 | - angegebenen Werten verfügen. In diesem Fall muss das <area> |
2836 | - Element die Attribute BETYPE mit dem Wert "IDREF" enthalten und die Attribute |
2837 | - BEGIN und END müssen die jeweiligen Werte der ID Attribute der Volltextdatei |
2838 | - enthalten. Soll nur auf ein einzelnes Element verwiesen werden, so enthalten die |
2839 | - BEGIN und END Attribute denselben Wert.</p> |
2840 | - |
2841 | - <p>Andere Verweisarten bspw. über Timecode oder Binär-Offsets dürfen in der |
2842 | - METS-Datei nicht vorkommen.</p> |
2843 | - </requirement> |
2844 | - </structMap> |
2845 | - |
2846 | - <!-- |
2847 | - *************************************************************************** |
2848 | - ** Requirements for the structLink |
2849 | - *************************************************************************** --> |
2850 | - |
2851 | - <structLink> |
2852 | - <requirement RELATEDMAT="example15"> |
2853 | - <head>Verknüpfung von logischer und physischer Struktur</head> |
2854 | - |
2855 | - <p>Jedes METS-Dokument, welches sowohl eine logische als auch eine physische |
2856 | - <structMap> besitzt, muss eine <structLink> Sektion |
2857 | - haben. Dies betrifft also alle METS-Dokumente, die entsprechend des |
2858 | - Seitenbasierten sowie des Komplexen Dokumentmodells erstellt wurden. </p> |
2859 | - |
2860 | - <p>Die <structLink> Sektion speichert Verknüpfungen zwischen logischer |
2861 | - und physischer Struktur. Für jede einzelne Verknüpfung wird ein eigenes |
2862 | - <smLink> Element genutzt. Jedes dieser Elemente verfügt über |
2863 | - xlink:from and xlink:to Attribute, welche die Werte der ID Attribute der |
2864 | - jeweiligen <div> Elemente aus der logischen und physischen |
2865 | - Struktur beinhalten. </p> |
2866 | - |
2867 | - <p>Es wird immer von der logischen Struktur auf die physische Struktur verwiesen. |
2868 | - Dies bedeutet, dass das xlink:from Attribut den ID-Wert eines |
2869 | - <div> Elements aus der logischen Struktur enthalten muss; xlink:to |
2870 | - beinhaltet demzufolge also den Wert des ID Attributs eines <div>s |
2871 | - aus der physischen Struktur. </p> |
2872 | - </requirement> |
2873 | - |
2874 | - <requirement RELATEDMAT="example16"> |
2875 | - <head>Vererbung von Strukturverknüpfungen</head> |
2876 | - |
2877 | - <p>Eine Verknüfung auf eine physische Struktur bezieht sich auch immer auf alle |
2878 | - unterliegenden Strukturelemente. Eine Verknüpfung von der obersten logischen |
2879 | - Struktureinheit (bspw. Monographie) auf die physische Sequenz (physSequence) |
2880 | - impliziert also auch alle Verknüpfungen auf die einzelnen Seiten, die dem |
2881 | - physischen Sequenz untergeordnet sind. Eine explizite Verknüpfung zwischen |
2882 | - Monographie und den einzelnen Seiten sind nicht notwendig. </p> |
2883 | - |
2884 | - <p>Dagegen werden Verknüpfungen auf logischer Struktur NICHT vererbt. Das heißt für |
2885 | - jedes logische <div> Element sind alle Verknüpfungen erneut wieder |
2886 | - aufzuführen. Die Gesamtheit aller unterliegenden <div> Elemente |
2887 | - muss jedoch nicht zwangsläufig alle Verknüpfungen des übergeordneten |
2888 | - <div> Elements enthalten. </p> |
2889 | - |
2890 | - <p>Dies bedeutet, dass für das Seitenbasierte Dokumentenmodell, welches vom |
2891 | - DFG-Viewer implementiert wird, lediglich eine Verknüpfung von der obersten |
2892 | - logischen Dokumentstruktur auf die physSequence notwendig ist. Die definierten |
2893 | - Seiten müssen nicht aus der logischen Struktur heraus verknüpft werden. Der |
2894 | - DFG-Viewer ist in der Lage, den impliziten Verknüpfungen zu folgen. </p> |
2895 | - </requirement> |
2896 | - </structLink> |
2897 | - </structural_requirements> |
2898 | - |
2899 | - <!-- |
2900 | - *************************************************************************** |
2901 | - ** Technical Requirements |
2902 | - *************************************************************************** --> |
2903 | - |
2904 | - <technical_requirements> |
2905 | - <content_files> |
2906 | - <requirement> |
2907 | - <head>Images</head> |
2908 | - |
2909 | - <p>Alle Images, die in den vom DFG-Viewer genutzten File-Groups als Content-File |
2910 | - referenziert werden, müssen in einem Format vorliegen, welches direkt durch |
2911 | - einen Web-Browser darstellbar ist. Als solche Formate gelten derzeit JPG, GIF |
2912 | - und PNG. Andere Formate werden nicht unterstüzt. Eine Ausnahme bilden all jene |
2913 | - Dateien, die in der File-Group vom Typ DOWNLOAD enthalten sind. Hierbei handelt |
2914 | - es sich überwiegend um Dateien, die dem Nutzer zum Download angeboten werden, |
2915 | - beispielsweise PDF.</p> |
2916 | - </requirement> |
2917 | - |
2918 | - <requirement> |
2919 | - <head>Volltexte</head> |
2920 | - |
2921 | - <p>Derzeit existiert noch keine Beschreibung eines standarisierten Formats für den |
2922 | - Volltext zur Präsentation im DFG-Viewer oder zur Indexierung im zvdd-Portal. |
2923 | - Entsprechend wird Volltext, so er denn als Content-File referenziert wird, durch |
2924 | - beide Applikationen nicht berücksichtigt. </p> |
2925 | - </requirement> |
2926 | - </content_files> |
2927 | - |
2928 | - <metadata_files> |
2929 | - <requirement> |
2930 | - <head>Metadaten-Dateien</head> |
2931 | - |
2932 | - <p>Alle durch den DFG-Viewer und das zvdd-Portal zu berücksichtigen Metadaten müssen |
2933 | - direkt in die METS-Datei eingefügt werden. Referenzierungen werden nicht |
2934 | - berücksichtigt. Es existieren also keine Metadaten-Dateien.</p> |
2935 | - </requirement> |
2936 | - </metadata_files> |
2937 | - </technical_requirements> |
2938 | - |
2939 | - <!-- |
2940 | - *************************************************************************** |
2941 | - ** Tool |
2942 | - *************************************************************************** --> |
2943 | - |
2944 | - <tool /> |
2945 | - |
2946 | - <!-- |
2947 | - *************************************************************************** |
2948 | - ** Appendix |
2949 | - *************************************************************************** --> |
2950 | - |
2951 | - <!-- |
2952 | - =========================================================================== |
2953 | - == Beispiel Nr.1: Identifizierung eines <div> |
2954 | - =========================================================================== --> |
2955 | - |
2956 | - <Appendix ID="example01" LABEL="Identifizierung eines <div>" NUMBER="1"> |
2957 | - |
2958 | - <mets:mets> |
2959 | - <mets:dmdSec ID="DMD_00"> |
2960 | - <mets:mdWrap MDTYPE="MODS"> |
2961 | - <mets:xmlData> |
2962 | - <!-- Der MODS-spezifische Metadatenblock beginnt hier --> |
2963 | - <mods:mods> |
2964 | - <!-- Eindeutige Identifizierung des entsprechenden <div> Elements --> |
2965 | - <mods:identifier type="urn">urn:nbn:gbv-7-PPN481399712</mods:identifier> |
2966 | - </mods:mods> |
2967 | - </mets:xmlData> |
2968 | - </mets:mdWrap> |
2969 | - </mets:dmdSec> |
2970 | - |
2971 | - <!-- Logische Struct-Map --> |
2972 | - <mets:structMap TYPE="LOGICAL"> |
2973 | - <mets:div DMDID="DMD_00" TYPE="Monograph" /> |
2974 | - </mets:structMap> |
2975 | - </mets:mets> |
2976 | - |
2977 | - </Appendix> |
2978 | - |
2979 | - <!-- |
2980 | - =========================================================================== |
2981 | - == Beispiel Nr.2: Hierarchische Verknüpfung zweier Dokumente mittels MODS |
2982 | - == - nachfolgendes und übergeordnetes Element |
2983 | - =========================================================================== --> |
2984 | - |
2985 | - <Appendix ID="example02" |
2986 | - LABEL="Hierarchische Verknüpfung zweier Dokumente mittels MODS - nachfolgendes und übergeordnetes Element" |
2987 | - NUMBER="2"> |
2988 | - |
2989 | - <!-- Nachfolgendes Element --> |
2990 | - <mets:mets> |
2991 | - <mets:dmdSec ID="DMD_01"> |
2992 | - <mets:mdWrap MDTYPE="MODS"> |
2993 | - <mets:xmlData> |
2994 | - <mods:mods> |
2995 | - <!-- Eindeutige Identifizierung des <div> Elements --> |
2996 | - <mods:identifier type="urn">urn:nbn:gbv-7-PPN481399712</mods:identifier> |
2997 | - <!-- Identifizierung des Elements --> |
2998 | - <mods:recordInfo> |
2999 | - <mods:recordIdentifier source="gbv-ppn" |
3000 | - >PPN481399712</mods:recordIdentifier> |
3001 | - </mods:recordInfo> |
3002 | - <!-- Verknüpfung zum übergeordneten Element --> |
3003 | - <mods:relatedItem type="host"> |
3004 | - <mods:recordInfo> |
3005 | - <mods:recordIdentifier source="gbv-ppn" |
3006 | - >PPN515678759</mods:recordIdentifier> |
3007 | - </mods:recordInfo> |
3008 | - </mods:relatedItem> |
3009 | - </mods:mods> |
3010 | - </mets:xmlData> |
3011 | - </mets:mdWrap> |
3012 | - </mets:dmdSec> |
3013 | - |
3014 | - <!-- Logische Struct-Map --> |
3015 | - <mets:structMap TYPE="LOGICAL"> |
3016 | - <mets:div DMDID="DMD_01" /> |
3017 | - </mets:structMap> |
3018 | - </mets:mets> |
3019 | - |
3020 | - <!-- Übergeordnetes Element --> |
3021 | - <mets:mets> |
3022 | - <mets:dmdSec ID="DMD_02"> |
3023 | - <mets:mdWrap MDTYPE="MODS"> |
3024 | - <mets:xmlData> |
3025 | - <mods:mods> |
3026 | - <!-- Eindeutige Identifizierung des <div> Elements --> |
3027 | - <mods:identifier type="urn">urn:nbn:gbv-7-PPN515678759</mods:identifier> |
3028 | - <!-- Identifizierung des Elements --> |
3029 | - <mods:recordInfo> |
3030 | - <mods:recordIdentifier source="gbv-ppn" |
3031 | - >PPN515678759</mods:recordIdentifier> |
3032 | - </mods:recordInfo> |
3033 | - </mods:mods> |
3034 | - </mets:xmlData> |
3035 | - </mets:mdWrap> |
3036 | - </mets:dmdSec> |
3037 | - |
3038 | - <!-- Logische Struct-Map --> |
3039 | - <mets:structMap TYPE="LOGICAL"> |
3040 | - <mets:div DMDID="DMD_02" /> |
3041 | - </mets:structMap> |
3042 | - </mets:mets> |
3043 | - |
3044 | - </Appendix> |
3045 | - |
3046 | - <!-- |
3047 | - =========================================================================== |
3048 | - == Beispiel Nr.3: Verweis auf die Bandnummer des übergeordneten Werkes |
3049 | - =========================================================================== --> |
3050 | - |
3051 | - <Appendix ID="example03" LABEL="Verweis auf die Bandnummer des übergeordneten Werkes" NUMBER="3"> |
3052 | - |
3053 | - <mets:mets> |
3054 | - <mets:dmdSec ID="DMD_03"> |
3055 | - <mets:mdWrap MDTYPE="MODS"> |
3056 | - <mets:xmlData> |
3057 | - <mods:mods> |
3058 | - <!-- Eindeutige Identifizierung des entsprechenden <div> Elements --> |
3059 | - <mods:identifier type="urn">urn:nbn:gbv-7-481399712</mods:identifier> |
3060 | - <!-- Verknüpfung zum übergeordneten Element --> |
3061 | - <mods:relatedItem type="host"> |
3062 | - <mods:recordInfo> |
3063 | - <mods:recordIdentifier source="gbv-ppn" |
3064 | - >PPN515678759</mods:recordIdentifier> |
3065 | - </mods:recordInfo> |
3066 | - </mods:relatedItem> |
3067 | - <!-- Einordnung innerhalb des übergeordneten Elements --> |
3068 | - <mods:part order="80"> |
3069 | - <mods:detail type="volume"> |
3070 | - <mods:number>Achte Theil</mods:number> |
3071 | - </mods:detail> |
3072 | - </mods:part> |
3073 | - </mods:mods> |
3074 | - </mets:xmlData> |
3075 | - </mets:mdWrap> |
3076 | - </mets:dmdSec> |
3077 | - |
3078 | - <!-- Logische Struct-Map --> |
3079 | - <mets:structMap TYPE="LOGICAL"> |
3080 | - <mets:div DMDID="DMD_03" /> |
3081 | - </mets:structMap> |
3082 | - </mets:mets> |
3083 | - |
3084 | - </Appendix> |
3085 | - |
3086 | - <!-- |
3087 | - =========================================================================== |
3088 | - == Beispiel Nr.4: Metadaten zu Rechteinhaber und Urheber |
3089 | - =========================================================================== --> |
3090 | - |
3091 | - <Appendix ID="example04" LABEL="Metadaten zu Rechteinhaber und Urheber" NUMBER="4"> |
3092 | - |
3093 | - <mets:mets> |
3094 | - <mets:amdSec ID="ex04__AMD_00"> |
3095 | - <!-- rightsMD Sektion --> |
3096 | - <mets:rightsMD ID="ex04__RIGHTSMD_00"> |
3097 | - <mets:mdWrap MDTYPE="OTHER" OTHERMDTYPE="DFGRIGHTS"> |
3098 | - <mets:xmlData> |
3099 | - <!-- Hier wird der DFG-Namespace definiert; |
3100 | - momentan existiert noch kein Schema dafür --> |
3101 | - <dv:rights xmlns:dv="http://dfg-viewer.de/"> |
3102 | - <dv:owner>Digitalisierungszentrum der Niedersächsischen Staats- und |
3103 | - Universitätsbibliothek Göttingen</dv:owner> |
3104 | - <dv:ownerLogo>http://gdz.sub.uni-goettingen.de/logo_gdz_dfgv.png</dv:ownerLogo> |
3105 | - <dv:ownerSiteURL>http://gdz.sub.uni-goettingen.de</dv:ownerSiteURL> |
3106 | - </dv:rights> |
3107 | - </mets:xmlData> |
3108 | - </mets:mdWrap> |
3109 | - </mets:rightsMD> |
3110 | - <!-- digiprovMD Sektion siehe unten --> |
3111 | - </mets:amdSec> |
3112 | - |
3113 | - <!-- Logische Struct-Map --> |
3114 | - <mets:structMap TYPE="LOGICAL"> |
3115 | - <mets:div ADMID="ex04__AMD_00" TYPE="Monograph" /> |
3116 | - </mets:structMap> |
3117 | - </mets:mets> |
3118 | - |
3119 | - </Appendix> |
3120 | - |
3121 | - <!-- |
3122 | - =========================================================================== |
3123 | - == Beispiel Nr.5: Metadaten zu Herkunft und Online-Präsentation |
3124 | - =========================================================================== --> |
3125 | - |
3126 | - <Appendix ID="example05" LABEL="Metadaten zu Herkunft und Online-Präsentation" NUMBER="5"> |
3127 | - |
3128 | - <mets:mets> |
3129 | - <mets:amdSec ID="ex05__AMD_00"> |
3130 | - <!-- rightsMD Sektion siehe oben --> |
3131 | - <!-- digiprovMD Sektion --> |
3132 | - <mets:digiprovMD ID="ex05__DIGIPROVMD_00"> |
3133 | - <mets:mdWrap MDTYPE="OTHER" MIMETYPE="text/xml" OTHERMDTYPE="DVLINKS"> |
3134 | - <mets:xmlData> |
3135 | - <!-- Hier wird der DFG-Namespace definiert; |
3136 | - momentan existiert noch kein Schema dafür --> |
3137 | - <dv:links xmlns:dv="http://dfg-viewer.de/"> |
3138 | - <dv:reference>http://opac.sub.uni-goettingen.de/DB=1/PPN?PPN=394930762</dv:reference> |
3139 | - <dv:presentation>http://resolver.sub.uni-goettingen.de/purl?PPN394930762</dv:presentation> |
3140 | - </dv:links> |
3141 | - </mets:xmlData> |
3142 | - </mets:mdWrap> |
3143 | - </mets:digiprovMD> |
3144 | - </mets:amdSec> |
3145 | - |
3146 | - <!-- Logische Struct-Map --> |
3147 | - <mets:structMap TYPE="LOGICAL"> |
3148 | - <mets:div ADMID="ex05__AMD_00" TYPE="Periodical" /> |
3149 | - </mets:structMap> |
3150 | - </mets:mets> |
3151 | - |
3152 | - </Appendix> |
3153 | - |
3154 | - <!-- |
3155 | - =========================================================================== |
3156 | - == Beispiel Nr.6: Definition von Inhaltsdateien in verschiedenen Gruppen |
3157 | - =========================================================================== --> |
3158 | - |
3159 | - <Appendix ID="example06" LABEL="Definition von Inhaltsdateien in verschiedenen File-Groups" |
3160 | - NUMBER="6"> |
3161 | - |
3162 | - <mets:mets xmlns:xlink="http://www.w3.org/1999/xlink"> |
3163 | - <mets:fileSec> |
3164 | - |
3165 | - <!-- Enthält alle Images in der beim Start des Viewers angezeigten Version --> |
3166 | - <mets:fileGrp USE="DEFAULT"> |
3167 | - <mets:file ID="ex06__FILE00_DEF" MIMETYPE="image/tiff" SIZE="43630"> |
3168 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/default/image/00.tif" |
3169 | - /> |
3170 | - </mets:file> |
3171 | - <mets:file ID="ex06__FILE01_DEF" MIMETYPE="image/tiff" SIZE="63235"> |
3172 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/default/image/01.tif" |
3173 | - /> |
3174 | - </mets:file> |
3175 | - <mets:file ID="ex06__FILE02_DEF" MIMETYPE="image/tiff" SIZE="225434"> |
3176 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/default/image/02.tif" |
3177 | - /> |
3178 | - </mets:file> |
3179 | - </mets:fileGrp> |
3180 | - |
3181 | - <!-- Enthält alle Images in einer kleineren Version. Diese fileGrp muss genauso |
3182 | - viele Images enthalten wie alle anderen fileGrps --> |
3183 | - <mets:fileGrp USE="MIN"> |
3184 | - <mets:file ID="ex06__FILE00_MIN" MIMETYPE="image/png" SIZE="2356"> |
3185 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/smaller/image/00.png" |
3186 | - xmlns:xlink="http://www.w3.org/1999/xlink" /> |
3187 | - </mets:file> |
3188 | - <mets:file ID="ex06__FILE01_MIN" MIMETYPE="image/png" SIZE="3976"> |
3189 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/smaller/image/01.png" |
3190 | - xmlns:xlink="http://www.w3.org/1999/xlink" /> |
3191 | - </mets:file> |
3192 | - <mets:file ID="ex06__FILE02_MIN" MIMETYPE="image/png" SIZE="6472"> |
3193 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/smaller/image/02.png" |
3194 | - xmlns:xlink="http://www.w3.org/1999/xlink" /> |
3195 | - </mets:file> |
3196 | - </mets:fileGrp> |
3197 | - |
3198 | - <!-- Die weiteren (optionalen) fileGrps folgen hier --> |
3199 | - </mets:fileSec> |
3200 | - |
3201 | - <!-- Physische Struct-Map --> |
3202 | - <mets:structMap TYPE="PHYSICAL"> |
3203 | - <mets:div TYPE="physSequence" /> |
3204 | - </mets:structMap> |
3205 | - </mets:mets> |
3206 | - |
3207 | - </Appendix> |
3208 | - |
3209 | - <!-- |
3210 | - =========================================================================== |
3211 | - == Beispiel Nr.7: Die vom DFG-Viewer unterstützten <FileGrp> Elemente |
3212 | - =========================================================================== --> |
3213 | - |
3214 | - <Appendix ID="example07" |
3215 | - LABEL="Die vom DFG-Viewer unterstützten <FileGrp> Elemente" NUMBER="7"> |
3216 | - |
3217 | - <mets:mets xmlns:xlink="http://www.w3.org/1999/xlink"> |
3218 | - <mets:fileSec> |
3219 | - |
3220 | - <!-- Enthält alle Images in der beim Start des DFG-Viewers angezeigten Version --> |
3221 | - <mets:fileGrp USE="DEFAULT"> |
3222 | - <mets:file ID="ex07__FILE00_DEF" MIMETYPE="image/jpeg" SIZE="51654"> |
3223 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/default/image/00.jpg" |
3224 | - /> |
3225 | - </mets:file> |
3226 | - <mets:file ID="ex07__FILE01_DEF" MIMETYPE="image/jpeg" SIZE="46566"> |
3227 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/default/image/01.jpg" |
3228 | - /> |
3229 | - </mets:file> |
3230 | - </mets:fileGrp> |
3231 | - |
3232 | - <!-- Enthält alle Images in einer kleineren Version --> |
3233 | - <mets:fileGrp USE="MIN"> |
3234 | - <mets:file ID="ex07__FILE00_MIN" MIMETYPE="image/jpeg" SIZE="23630"> |
3235 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/smaller/image/00.jpg" |
3236 | - /> |
3237 | - </mets:file> |
3238 | - <mets:file ID="ex07__FILE01_MIN" MIMETYPE="image/jpeg" SIZE="19233"> |
3239 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/smaller/image/01.jpg" |
3240 | - /> |
3241 | - </mets:file> |
3242 | - </mets:fileGrp> |
3243 | - |
3244 | - <!-- Enthält alle Images in der größt möglichen Version --> |
3245 | - <mets:fileGrp USE="MAX"> |
3246 | - <mets:file ID="ex07__FILE00_MAX" MIMETYPE="image/jpeg" SIZE="643630"> |
3247 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/bigger/image/00.jpg" |
3248 | - /> |
3249 | - </mets:file> |
3250 | - <mets:file ID="ex07__FILE01_MAX" MIMETYPE="image/jpeg" SIZE="591244"> |
3251 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/bigger/image/01.jpg" |
3252 | - /> |
3253 | - </mets:file> |
3254 | - </mets:fileGrp> |
3255 | - |
3256 | - <!-- Enthält alle Images in einer kleinen Vorschau-Version --> |
3257 | - <mets:fileGrp USE="THUMBS"> |
3258 | - <mets:file ID="ex07__FILE00_THB" MIMETYPE="image/png" SIZE="8234"> |
3259 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/thumb/image/00.png" /> |
3260 | - </mets:file> |
3261 | - <mets:file ID="ex07__FILE01_THB" MIMETYPE="image/png" SIZE="8775"> |
3262 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/thumb/image/01.png" /> |
3263 | - </mets:file> |
3264 | - </mets:fileGrp> |
3265 | - |
3266 | - <!-- Enthält zum Download angebotenen Dateien, beispielsweise PDF- oder |
3267 | - TIFF-Dateien --> |
3268 | - <mets:fileGrp USE="DOWNLOAD"> |
3269 | - <mets:file ID="ex07__FILE00_DWL" MIMETYPE="application/pdf" SIZE="12057"> |
3270 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/pdf/00.pdf" /> |
3271 | - </mets:file> |
3272 | - <mets:file ID="ex07__FILE01_DWL" MIMETYPE="application/pdf" SIZE="13001"> |
3273 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/pdf/01.pdf" /> |
3274 | - </mets:file> |
3275 | - </mets:fileGrp> |
3276 | - </mets:fileSec> |
3277 | - |
3278 | - <!-- Physische Struct-Map --> |
3279 | - <mets:structMap TYPE="PHYSICAL"> |
3280 | - <mets:div TYPE="physSequence" /> |
3281 | - </mets:structMap> |
3282 | - </mets:mets> |
3283 | - |
3284 | - </Appendix> |
3285 | - |
3286 | - <!-- |
3287 | - =========================================================================== |
3288 | - == Beispiel Nr.8: <structMap> beim Bibliographischen Dokumentenmodell |
3289 | - =========================================================================== --> |
3290 | - |
3291 | - <Appendix ID="example08" |
3292 | - LABEL="<structMap> beim Bibliographischen Dokumentenmodell" NUMBER="8"> |
3293 | - |
3294 | - <mets:mets> |
3295 | - <mets:structMap TYPE="LOGICAL"> |
3296 | - <mets:div DMDID="DMD_00" TYPE="Monograph" /> |
3297 | - </mets:structMap> |
3298 | - </mets:mets> |
3299 | - |
3300 | - </Appendix> |
3301 | - |
3302 | - <!-- |
3303 | - =========================================================================== |
3304 | - == Beispiel Nr.9: <structMap> der physischen Struktur |
3305 | - =========================================================================== --> |
3306 | - |
3307 | - <Appendix ID="example9" LABEL="<structMap> der physischen Struktur" NUMBER="9"> |
3308 | - |
3309 | - <mets:mets> |
3310 | - <!-- Logische Struct-Map --> |
3311 | - <mets:structMap TYPE="LOGICAL"> |
3312 | - <mets:div DMDID="DMD_00" ID="ex09__LOG_00" TYPE="Monograph" /> |
3313 | - </mets:structMap> |
3314 | - |
3315 | - <!-- Physische Struct-Map --> |
3316 | - <mets:structMap TYPE="PHYSICAL"> |
3317 | - <mets:div ID="ex09__PHYS_00" TYPE="physSequence"> |
3318 | - <mets:div CONTENTIDS="urn:nbn:de:gbv-7-gdz-12345678-ex10__PHYS_01" |
3319 | - ID="ex09__PHYS_01" ORDER="1" ORDERLABEL="I" TYPE="page" /> |
3320 | - <mets:div CONTENTIDS="urn:nbn:de:gbv-7-gdz-12345678-ex10__PHYS_02" |
3321 | - ID="ex09__PHYS_02" ORDER="2" ORDERLABEL="II" TYPE="page" /> |
3322 | - <mets:div CONTENTIDS="urn:nbn:de:gbv-7-gdz-12345678-ex10__PHYS_03" |
3323 | - ID="ex09__PHYS_03" ORDER="3" ORDERLABEL="III" TYPE="page" /> |
3324 | - <mets:div CONTENTIDS="urn:nbn:de:gbv-7-gdz-12345678-ex10__PHYS_04" |
3325 | - ID="ex09__PHYS_04" ORDER="4" ORDERLABEL="1" TYPE="page" /> |
3326 | - <mets:div CONTENTIDS="urn:nbn:de:gbv-7-gdz-12345678-ex10__PHYS_05" |
3327 | - ID="ex09__PHYS_05" ORDER="5" ORDERLABEL="2" TYPE="page" /> |
3328 | - </mets:div> |
3329 | - </mets:structMap> |
3330 | - </mets:mets> |
3331 | - |
3332 | - </Appendix> |
3333 | - |
3334 | - <!-- |
3335 | - =========================================================================== |
3336 | - == Beispiel Nr.10: Verschachtelung der <structMap> Elemente der logische |
3337 | - == Dokumentstruktur |
3338 | - =========================================================================== --> |
3339 | - |
3340 | - <Appendix ID="example10" |
3341 | - LABEL="Verschachtelung der <structMap> Elemente der logische Dokumentstruktur" |
3342 | - NUMBER="10"> |
3343 | - |
3344 | - <mets:mets> |
3345 | - <mets:structMap TYPE="LOGICAL"> |
3346 | - <!-- Logisches Strukturelement für die Monographie --> |
3347 | - <mets:div CONTENTIDS="urn:nbn:de:gbv-7-gdz-12345678-" DMDID="DMD_00" |
3348 | - ID="ex10__LOG_00" LABEL="Monographie" TYPE="Monograph"> |
3349 | - |
3350 | - <!-- Logisches Strukturelement für das erste Kapitel mit Unterteilung --> |
3351 | - <mets:div CONTENTIDS="urn:nbn:de:gbv-7-gdz-12345678-ex10__LOG_01" DMDID="DMD_01" |
3352 | - ID="ex10__LOG_01" LABEL="Erstes Kapitel" TYPE="Chapter"> |
3353 | - <!-- Logisches Strukturelement für ein Inhaltsverzeichnis --> |
3354 | - <mets:div CONTENTIDS="urn:nbn:de:gbv-7-gdz-12345678-ex10__LOG_02" |
3355 | - ID="ex10__LOG_02" LABEL="Illustration" TYPE="Illustration" /> |
3356 | - <!-- Logisches Strukturelement für eine Textpassage --> |
3357 | - <mets:div CONTENTIDS="urn:nbn:de:gbv-7-gdz-12345678-ex10__LOG_03" |
3358 | - ID="ex10__LOG_03" LABEL="Textabschnitt" TYPE="TextSection" /> |
3359 | - </mets:div> |
3360 | - |
3361 | - <!-- Logische Strukturelemente für zwei weitere Kapitel ohne weitere |
3362 | - Unterteilung --> |
3363 | - <mets:div CONTENTIDS="urn:nbn:de:gbv-7-gdz-12345678-ex10__LOG_04" DMDID="DMD_02" |
3364 | - ID="ex10__LOG_04" LABEL="Zweites Kapitel" TYPE="Chapter" /> |
3365 | - <mets:div CONTENTIDS="urn:nbn:de:gbv-7-gdz-12345678-ex10__LOG_05" |
3366 | - ID="ex10__LOG_05" LABEL="Drittes Kapitel" TYPE="Chapter" /> |
3367 | - </mets:div> |
3368 | - </mets:structMap> |
3369 | - </mets:mets> |
3370 | - |
3371 | - </Appendix> |
3372 | - |
3373 | - <!-- |
3374 | - =========================================================================== |
3375 | - == Beispiel Nr.11: Logische Struct-Map für einen Band und eine |
3376 | - == übergeordnete Zeitschrift (der Übersichtlichkeit halber ohne |
3377 | - == CONTENTIDS) |
3378 | - =========================================================================== --> |
3379 | - |
3380 | - <Appendix ID="example11" |
3381 | - LABEL="Logische Struct-Map für einen Band und eine übergeordnete Zeitschrift (der Übersichtlichkeit halber ohne CONTENTIDS)" |
3382 | - NUMBER="11"> |
3383 | - |
3384 | - <!-- Logische Struct-Map für einen Band --> |
3385 | - <mets:mets xmlns:xlink="http://www.w3.org/1999/xlink"> |
3386 | - <mets:structMap TYPE="LOGICAL"> |
3387 | - <mets:div LABEL="Zeitschrift" TYPE="Periodical"> |
3388 | - <!-- Der METS-Pointer referenziert die METS-Datei der Zeitschrift / des |
3389 | - Mehrbändigen Werkes --> |
3390 | - <mets:mptr LOCTYPE="URL" xlink:href="http://link/to/mets/file/periodical" /> |
3391 | - |
3392 | - <!-- Hier beginnt die oben bereits besprochene Beschreibung des einzelnen |
3393 | - Bandes --> |
3394 | - <mets:div DMDID="DMD_00" ID="ex11__LOG_00" LABEL="Zeitschriftenband" |
3395 | - TYPE="Volume"> |
3396 | - <mets:div DMDID="DMD_01" ID="ex11__LOG_01" LABEL="Erstes Zeitschriftenheft" |
3397 | - TYPE="Issue"> |
3398 | - <mets:div ID="ex11__LOG_02" LABEL="Erster Artikel" TYPE="Article" /> |
3399 | - <mets:div ID="ex11__LOG_03" LABEL="Zweiter Artikel" TYPE="Article" /> |
3400 | - </mets:div> |
3401 | - <mets:div DMDID="DMD_01" ID="ex11__LOG_04" LABEL="Zweites Zeitschriftenheft" |
3402 | - TYPE="Issue" /> |
3403 | - <mets:div ID="ex11__LOG_05" LABEL="Drittes Zeitschriftenheft" TYPE="Issue" |
3404 | - /> |
3405 | - </mets:div> |
3406 | - </mets:div> |
3407 | - </mets:structMap> |
3408 | - </mets:mets> |
3409 | - |
3410 | - <!-- Logische Struct-Map für eine übergeordnete Zeitschrift --> |
3411 | - <mets:mets xmlns:xlink="http://www.w3.org/1999/xlink"> |
3412 | - <mets:structMap TYPE="LOGICAL"> |
3413 | - <mets:div DMDID="DMD_00" ID="ex11__LOG0_00" LABEL="Zeitschrift" TYPE="Periodical"> |
3414 | - <mets:div LABEL="Erster Zeitschriftenband" TYPE="Volume"> |
3415 | - <!-- Ein METS-Pointer auf den ersten Band der Zeitschrift --> |
3416 | - <mets:mptr LOCTYPE="URL" |
3417 | - xlink:href="http://link/to/mets/file/1st/volume/mets.xml" /> |
3418 | - </mets:div> |
3419 | - <mets:div LABEL="Zweiter Zeitschriftenband" TYPE="Volume"> |
3420 | - <!-- Ein METS-Pointer auf den zweiten Band der Zeitschrift --> |
3421 | - <mets:mptr LOCTYPE="URL" |
3422 | - xlink:href="http://link/to/mets/file/2nd/volume/mets.xml" /> |
3423 | - </mets:div> |
3424 | - <mets:div LABEL="Dritter Zeitschriftenband" TYPE="Volume"> |
3425 | - <!-- Ein METS-Pointer auf den dritten Band der Zeitschrift --> |
3426 | - <mets:mptr LOCTYPE="URL" |
3427 | - xlink:href="http://link/to/mets/file/3rd/volume/metx.xml" /> |
3428 | - </mets:div> |
3429 | - </mets:div> |
3430 | - </mets:structMap> |
3431 | - </mets:mets> |
3432 | - |
3433 | - </Appendix> |
3434 | - |
3435 | - <!-- |
3436 | - =========================================================================== |
3437 | - == Beispiel Nr.12: <structMap> der physischen Struktur |
3438 | - =========================================================================== --> |
3439 | - |
3440 | - <Appendix ID="example12" LABEL="<structMap> der physischen Struktur" NUMBER="12"> |
3441 | - |
3442 | - <mets:mets xmlns:xlink="http://www.w3.org/1999/xlink"> |
3443 | - <!-- Physische Struct-Map --> |
3444 | - <mets:structMap TYPE="PHYSICAL"> |
3445 | - <mets:div TYPE="physSequence"> |
3446 | - <!-- Aus jeder File-Group werden hier die verschiedenen |
3447 | - Auflösungen / Formate eines jeden Files referenziert --> |
3448 | - <mets:div ID="ex12__PHY_00" ORDER="1" ORDERLABEL="I" TYPE="page"> |
3449 | - <mets:fptr FILEID="ex07__FILE00_DEF" /> |
3450 | - <mets:fptr FILEID="ex07__FILE00_MIN" /> |
3451 | - <mets:fptr FILEID="ex07__FILE00_MAX" /> |
3452 | - <mets:fptr FILEID="ex07__FILE00_THB" /> |
3453 | - <mets:fptr FILEID="ex07__FILE00_DWL" /> |
3454 | - </mets:div> |
3455 | - <mets:div ID="PHYS09_01" ORDER="2" ORDERLABEL="II" TYPE="page"> |
3456 | - <mets:fptr FILEID="ex07__FILE01_DEF" /> |
3457 | - <mets:fptr FILEID="ex07__FILE01_MIN" /> |
3458 | - <mets:fptr FILEID="ex07__FILE01_MAX" /> |
3459 | - <mets:fptr FILEID="ex07__FILE01_THB" /> |
3460 | - <mets:fptr FILEID="ex07__FILE01_DWL" /> |
3461 | - </mets:div> |
3462 | - </mets:div> |
3463 | - </mets:structMap> |
3464 | - </mets:mets> |
3465 | - |
3466 | - </Appendix> |
3467 | - |
3468 | - <!-- |
3469 | - =========================================================================== |
3470 | - == Beispiel Nr.13: Struct-Map der logischen Struktur mit Verweis auf eine |
3471 | - == PDF-Datei eines Kapitels |
3472 | - =========================================================================== --> |
3473 | - |
3474 | - <Appendix ID="example13" |
3475 | - LABEL="Struct-Map der logischen Struktur mit Verweis auf eine PDF-Datei eines Artikels" |
3476 | - NUMBER="13"> |
3477 | - |
3478 | - <mets:mets xmlns:xlink="http://www.w3.org/1999/xlink"> |
3479 | - <!-- File-Group als Beispiel für den File-Pointer in der logischen Struct-Map --> |
3480 | - <mets:fileSec> |
3481 | - <mets:fileGrp USE="DOWNLOAD"> |
3482 | - <!-- Verweis auf die PDF-Datei des Bandes --> |
3483 | - <mets:file ID="ex13__FILE00_Monograph" MIMETYPE="application/pdf" SIZE="1643630"> |
3484 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/monograph.pdf" /> |
3485 | - </mets:file> |
3486 | - <!-- Verweis auf die PDF-Datei des Kapitels --> |
3487 | - <mets:file ID="ex13__FILE01_Chapter" MIMETYPE="application/pdf" SIZE="47676"> |
3488 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/chapter/01.pdf" /> |
3489 | - </mets:file> |
3490 | - </mets:fileGrp> |
3491 | - </mets:fileSec> |
3492 | - |
3493 | - <!-- Logische Struct-Map --> |
3494 | - <mets:structMap TYPE="LOGICAL"> |
3495 | - <mets:div TYPE="Periodical"> |
3496 | - <!-- Der METS-Pointer referenziert die METS-Datei der Zeitschrift / des |
3497 | - Mehrbändigen Werkes --> |
3498 | - <mets:mptr LOCTYPE="URL" xlink:href="http://link/to/mets/file/periodical" /> |
3499 | - |
3500 | - <!-- Hier beginnt die oben bereits besprochene Beschreibung des einzelnen |
3501 | - Bandes --> |
3502 | - <mets:div DMDID="DMD_00" ID="ex13__LOG_00" TYPE="Volume"> |
3503 | - <!-- File-Pointer auf das PDF des Bandes --> |
3504 | - <mets:fptr FILEID="ex13__FILE00_Monograph" /> |
3505 | - |
3506 | - <mets:div DMDID="DMD_01" ID="ex13__LOG_01" TYPE="Issue"> |
3507 | - <mets:div ID="ex13__LOG_02" TYPE="Article"> |
3508 | - <!-- File-Pointer auf das PDF eines Kapitels --> |
3509 | - <mets:fptr FILEID="ex13__FILE01_Chapter" /> |
3510 | - </mets:div> |
3511 | - <mets:div ID="ex13__LOG_03" TYPE="Article" /> |
3512 | - </mets:div> |
3513 | - <mets:div DMDID="DMD_01" ID="ex13__LOG_04" TYPE="Issue" /> |
3514 | - <mets:div ID="ex13__LOG_05" TYPE="Issue" /> |
3515 | - </mets:div> |
3516 | - </mets:div> |
3517 | - </mets:structMap> |
3518 | - </mets:mets> |
3519 | - |
3520 | - </Appendix> |
3521 | - |
3522 | - <!-- |
3523 | - =========================================================================== |
3524 | - == Beispiel Nr.14: Verweis in eine Datei mittels <mets:area> |
3525 | - =========================================================================== --> |
3526 | - |
3527 | - <Appendix ID="example14" LABEL="Verweis in eine Datei mittels <mets:area>" |
3528 | - NUMBER="14"> |
3529 | - |
3530 | - <mets:mets xmlns:xlink="http://www.w3.org/1999/xlink"> |
3531 | - <mets:fileSec> |
3532 | - <!-- Eine beispielhafte fileGrp zur Nutzung von <mets:area> --> |
3533 | - <mets:fileGrp USE="AREA"> |
3534 | - <mets:file ID="ex14__FILE00_ARE" MIMETYPE="text/xml" SIZE="6523"> |
3535 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://link/to/xml/tei/file" /> |
3536 | - </mets:file> |
3537 | - </mets:fileGrp> |
3538 | - </mets:fileSec> |
3539 | - |
3540 | - <!-- Physische Struct-Map --> |
3541 | - <mets:structMap TYPE="PHYSICAL"> |
3542 | - <mets:div TYPE="physSequence"> |
3543 | - <mets:div ID="ex14__PHY_00" ORDER="3" ORDERLABEL="III" TYPE="page"> |
3544 | - <!-- Verweis in eine Datei hinein. Dabei wird der eigentliche |
3545 | - Inhalt über die IDRef-Werte in den Attributen BEGIN und |
3546 | - END definiert --> |
3547 | - <mets:fptr> |
3548 | - <mets:area BEGIN="TEIID_24" BETYPE="IDREF" END="TEIID_63" |
3549 | - FILEID="ex14__FILE00_ARE" /> |
3550 | - </mets:fptr> |
3551 | - </mets:div> |
3552 | - </mets:div> |
3553 | - </mets:structMap> |
3554 | - </mets:mets> |
3555 | - |
3556 | - </Appendix> |
3557 | - |
3558 | - <!-- |
3559 | - =========================================================================== |
3560 | - == Beispiel Nr.15: Verknüpfung von logischer und physischer Struktur |
3561 | - =========================================================================== --> |
3562 | - |
3563 | - <Appendix ID="example15" LABEL="Verknüpfung von logischer und physischer Struktur" NUMBER="15"> |
3564 | - |
3565 | - <mets:mets xmlns:xlink="http://www.w3.org/1999/xlink"> |
3566 | - <!-- Logische Struct-Map --> |
3567 | - <mets:structMap TYPE="LOGICAL"> |
3568 | - <mets:div ID="ex15__LOG_00" TYPE="Monograph"> |
3569 | - <mets:div ID="ex15__LOG_01" TYPE="Chapter"> |
3570 | - <mets:div ID="ex15__LOG_02" TYPE="Chapter" /> |
3571 | - <mets:div ID="ex15__LOG_03" TYPE="Chapter" /> |
3572 | - </mets:div> |
3573 | - </mets:div> |
3574 | - </mets:structMap> |
3575 | - |
3576 | - <!-- Physische Struct-Map --> |
3577 | - <mets:structMap TYPE="PHYSICAL"> |
3578 | - <mets:div ID="ex15__PHY_00" TYPE="physSequence"> |
3579 | - <mets:div ID="ex15__PHY_01" ORDER="1" ORDERLABEL="III" TYPE="page" /> |
3580 | - <mets:div ID="ex15__PHY_02" ORDER="2" ORDERLABEL="1" TYPE="page" /> |
3581 | - <mets:div ID="ex15__PHY_03" ORDER="3" ORDERLABEL="2" TYPE="page" /> |
3582 | - <mets:div ID="ex15__PHY_04" ORDER="4" ORDERLABEL="3" TYPE="page" /> |
3583 | - <mets:div ID="ex15__PHY_05" ORDER="5" ORDERLABEL="4" TYPE="page" /> |
3584 | - </mets:div> |
3585 | - </mets:structMap> |
3586 | - |
3587 | - <!-- Hier werden die logischen und die physischen Strukturelemente |
3588 | - verknüpft --> |
3589 | - <mets:structLink> |
3590 | - <!-- Verknüpfung zwischen Monograph und Physical Sequence --> |
3591 | - <mets:smLink xlink:from="ex15__LOG_00" xlink:to="ex17__PHY_00" /> |
3592 | - <!-- Verknüpfung zwischen Kapitel eins und Seiten --> |
3593 | - <mets:smLink xlink:from="ex15__LOG_01" xlink:to="ex15__PHY_02" /> |
3594 | - <mets:smLink xlink:from="ex15__LOG_01" xlink:to="ex15__PHY_03" /> |
3595 | - <mets:smLink xlink:from="ex15__LOG_01" xlink:to="ex15__PHY_04" /> |
3596 | - <mets:smLink xlink:from="ex15__LOG_01" xlink:to="ex15__PHY_05" /> |
3597 | - <!-- Verknüpfung zwischen Kapitel zwei und Seiten --> |
3598 | - <mets:smLink xlink:from="ex15__LOG_02" xlink:to="ex15__PHY_03" /> |
3599 | - <mets:smLink xlink:from="ex15__LOG_02" xlink:to="ex15__PHY_04" /> |
3600 | - <!-- Verknüpfung zwischen Kapitel drei und Seiten --> |
3601 | - <mets:smLink xlink:from="ex15__LOG_03" xlink:to="ex15__PHY_04" /> |
3602 | - <mets:smLink xlink:from="ex15__LOG_03" xlink:to="ex15__PHY_05" /> |
3603 | - </mets:structLink> |
3604 | - </mets:mets> |
3605 | - |
3606 | - </Appendix> |
3607 | - |
3608 | - <!-- |
3609 | - =========================================================================== |
3610 | - == Beispiel Nr.16: Vererbung der Verknüpfungen auf physische Strukturen |
3611 | - == für das Seitenbasierte Dokumentenmodell |
3612 | - =========================================================================== --> |
3613 | - |
3614 | - <Appendix ID="example16" |
3615 | - LABEL="Vererbung der Verknüpfungen auf physische Strukturen für das Seitenbasierte Dokumentenmodell" |
3616 | - NUMBER="16"> |
3617 | - |
3618 | - <mets:mets xmlns:xlink="http://www.w3.org/1999/xlink"> |
3619 | - <!-- Logische Struct-Map --> |
3620 | - <mets:structMap TYPE="LOGICAL"> |
3621 | - <mets:div ID="ex16__LOG_00" TYPE="Monograph" /> |
3622 | - </mets:structMap> |
3623 | - |
3624 | - <!-- Physische Struct-Map --> |
3625 | - <mets:structMap TYPE="PHYSICAL"> |
3626 | - <mets:div ID="ex16__PHYS_00" TYPE="physSequence"> |
3627 | - <mets:div ID="ex16__PHYS_01" ORDER="1" ORDERLABEL="III" TYPE="page" /> |
3628 | - <mets:div ID="ex16__PHYS_02" ORDER="2" ORDERLABEL="1" TYPE="page" /> |
3629 | - <mets:div ID="ex16__PHYS_03" ORDER="3" ORDERLABEL="2" TYPE="page" /> |
3630 | - <mets:div ID="ex16__PHYS_04" ORDER="4" ORDERLABEL="3" TYPE="page" /> |
3631 | - <mets:div ID="ex16__PHYS_05" ORDER="5" ORDERLABEL="4" TYPE="page" /> |
3632 | - </mets:div> |
3633 | - </mets:structMap> |
3634 | - |
3635 | - <!-- Hier werden die logischen und die physischen Structurelemente |
3636 | - verknüpft --> |
3637 | - <mets:structLink> |
3638 | - <!-- Verknüpfung zwischen Monograph und physical Sequence --> |
3639 | - <mets:smLink xlink:from="ex16__LOG_00" xlink:to="ex18__PHY_00" /> |
3640 | - </mets:structLink> |
3641 | - </mets:mets> |
3642 | - |
3643 | - </Appendix> |
3644 | - |
3645 | - <!-- |
3646 | - =========================================================================== |
3647 | - == Beispiel Nr.17: Komplettes METS-Beispiel des Seitenbasierten |
3648 | - == Dokumentenmodells |
3649 | - =========================================================================== --> |
3650 | - |
3651 | - <Appendix ID="example17" LABEL="Komplettes METS-Beispiel des Seitenbasierten Dokumentenmodells" |
3652 | - NUMBER="17"> |
3653 | - |
3654 | - <mets:mets xmlns:xlink="http://www.w3.org/1999/xlink"> |
3655 | - <mets:dmdSec ID="ex17__DMDLOG_00"> |
3656 | - <mets:mdWrap MDTYPE="MODS"> |
3657 | - <mets:xmlData> |
3658 | - <mods:mods> |
3659 | - <mods:identifier type="PPN">PPN521089360</mods:identifier> |
3660 | - <mods:identifier type="PPNanalog">PPN14709481X</mods:identifier> |
3661 | - <mods:titleInfo> |
3662 | - <mods:subTitle>vom dato Frankfurth am Mayn am 5. et insinuato 7. |
3663 | - Januarii An. 1763 ; mit nöthigen Anmerkungen</mods:subTitle> |
3664 | - <mods:title>Abdruck des von dem weyland ... Anton Ulrich, Herzogen |
3665 | - zu Sachsen ... anmasslich errichteten Testaments</mods:title> |
3666 | - </mods:titleInfo> |
3667 | - <mods:titleInfo type="alternative"> |
3668 | - <mods:title>Abdruck des von dem weyland ... Anton Ulrich, Herzogen |
3669 | - zu Sachsen ... anmasslich errichteten Testaments</mods:title> |
3670 | - </mods:titleInfo> |
3671 | - <mods:originInfo> |
3672 | - <mods:dateIssued encoding="w3cdtf">1763</mods:dateIssued> |
3673 | - <mods:place> |
3674 | - <mods:placeTerm type="text">[S.l.]</mods:placeTerm> |
3675 | - </mods:place> |
3676 | - <mods:publisher>[s.n.]</mods:publisher> |
3677 | - </mods:originInfo> |
3678 | - <mods:language> |
3679 | - <mods:languageTerm authority="rfc3066" type="code" |
3680 | - >de</mods:languageTerm> |
3681 | - </mods:language> |
3682 | - <mods:physicalDescription> |
3683 | - <mods:extent>36 S</mods:extent> |
3684 | - </mods:physicalDescription> |
3685 | - </mods:mods> |
3686 | - </mets:xmlData> |
3687 | - </mets:mdWrap> |
3688 | - </mets:dmdSec> |
3689 | - <mets:amdSec ID="ex17__AMD_00"> |
3690 | - <mets:rightsMD ID="ex17__RIGHTS_00"> |
3691 | - <mets:mdWrap MDTYPE="OTHER" MIMETYPE="text/xml" OTHERMDTYPE="DVRIGHTS"> |
3692 | - <mets:xmlData> |
3693 | - <dv:rights xmlns:dv="http://dfg-viewer.de/"> |
3694 | - <dv:owner>Digitalisierungszentrum der Niedersächsischen Staats- und |
3695 | - Universitätsbibliothek Göttingen</dv:owner> |
3696 | - <dv:ownerLogo>http://gdz.sub.uni-goettingen.de/logo_gdz_dfgv.png</dv:ownerLogo> |
3697 | - <dv:ownerSiteURL>http://gdz.sub.uni-goettingen.de</dv:ownerSiteURL> |
3698 | - </dv:rights> |
3699 | - </mets:xmlData> |
3700 | - </mets:mdWrap> |
3701 | - </mets:rightsMD> |
3702 | - <mets:digiprovMD ID="ex17__DIGIPROV_00"> |
3703 | - <mets:mdWrap MDTYPE="OTHER" MIMETYPE="text/xml" OTHERMDTYPE="DVLINKS"> |
3704 | - <mets:xmlData> |
3705 | - <dv:links xmlns:dv="http://dfg-viewer.de/"> |
3706 | - <dv:reference>http://opac.sub.uni-goettingen.de/DB=1/PPN?PPN=521089360</dv:reference> |
3707 | - <dv:presentation>http://resolver.sub.uni-goettingen.de/purl?PPN521089360</dv:presentation> |
3708 | - </dv:links> |
3709 | - </mets:xmlData> |
3710 | - </mets:mdWrap> |
3711 | - </mets:digiprovMD> |
3712 | - </mets:amdSec> |
3713 | - <mets:fileSec> |
3714 | - <mets:fileGrp USE="DEFAULT"> |
3715 | - <mets:file ID="ex17__FILE00_DEF" MIMETYPE="image/jpeg" |
3716 | - xmlns:xlink="http://www.w3.org/1999/xlink"> |
3717 | - <mets:FLocat LOCTYPE="URL" |
3718 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/800/0/00000001.jpg" |
3719 | - /> |
3720 | - </mets:file> |
3721 | - <mets:file ID="ex17__FILE01_DEF" MIMETYPE="image/jpeg"> |
3722 | - <mets:FLocat LOCTYPE="URL" |
3723 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/800/0/00000002.jpg" |
3724 | - /> |
3725 | - </mets:file> |
3726 | - <mets:file ID="ex17__FILE02_DEF" MIMETYPE="image/jpeg"> |
3727 | - <mets:FLocat LOCTYPE="URL" |
3728 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/800/0/00000003.jpg" |
3729 | - /> |
3730 | - </mets:file> |
3731 | - <mets:file ID="ex17__FILE03_DEF" MIMETYPE="image/jpeg"> |
3732 | - <mets:FLocat LOCTYPE="URL" |
3733 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/800/0/00000004.jpg" |
3734 | - /> |
3735 | - </mets:file> |
3736 | - <mets:file ID="ex17__FILE04_DEF" MIMETYPE="image/jpeg"> |
3737 | - <mets:FLocat LOCTYPE="URL" |
3738 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/800/0/00000005.jpg" |
3739 | - /> |
3740 | - </mets:file> |
3741 | - <mets:file ID="ex17__FILE05_DEF" MIMETYPE="image/jpeg"> |
3742 | - <mets:FLocat LOCTYPE="URL" |
3743 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/800/0/00000006.jpg" |
3744 | - /> |
3745 | - </mets:file> |
3746 | - <mets:file ID="ex17__FILE06_DEF" MIMETYPE="image/jpeg"> |
3747 | - <mets:FLocat LOCTYPE="URL" |
3748 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/800/0/00000007.jpg" |
3749 | - /> |
3750 | - </mets:file> |
3751 | - <mets:file ID="ex17__FILE07_DEF" MIMETYPE="image/jpeg"> |
3752 | - <mets:FLocat LOCTYPE="URL" |
3753 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/800/0/00000008.jpg" |
3754 | - /> |
3755 | - </mets:file> |
3756 | - <mets:file ID="ex17__FILE08_DEF" MIMETYPE="image/jpeg"> |
3757 | - <mets:FLocat LOCTYPE="URL" |
3758 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/800/0/00000009.jpg" |
3759 | - /> |
3760 | - </mets:file> |
3761 | - </mets:fileGrp> |
3762 | - <mets:fileGrp USE="MAX"> |
3763 | - <mets:file ID="ex17__FILE00_MAX" MIMETYPE="image/jpeg"> |
3764 | - <mets:FLocat LOCTYPE="URL" |
3765 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/1000/0/00000001.jpg" |
3766 | - /> |
3767 | - </mets:file> |
3768 | - <mets:file ID="ex17__FILE01_MAX" MIMETYPE="image/jpeg"> |
3769 | - <mets:FLocat LOCTYPE="URL" |
3770 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/1000/0/00000002.jpg" |
3771 | - /> |
3772 | - </mets:file> |
3773 | - <mets:file ID="ex17__FILE02_MAX" MIMETYPE="image/jpeg"> |
3774 | - <mets:FLocat LOCTYPE="URL" |
3775 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/1000/0/00000003.jpg" |
3776 | - /> |
3777 | - </mets:file> |
3778 | - <mets:file ID="ex17__FILE03_MAX" MIMETYPE="image/jpeg"> |
3779 | - <mets:FLocat LOCTYPE="URL" |
3780 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/1000/0/00000004.jpg" |
3781 | - /> |
3782 | - </mets:file> |
3783 | - <mets:file ID="ex17__FILE04_MAX" MIMETYPE="image/jpeg"> |
3784 | - <mets:FLocat LOCTYPE="URL" |
3785 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/1000/0/00000005.jpg" |
3786 | - /> |
3787 | - </mets:file> |
3788 | - <mets:file ID="ex17__FILE05_MAX" MIMETYPE="image/jpeg"> |
3789 | - <mets:FLocat LOCTYPE="URL" |
3790 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/1000/0/00000006.jpg" |
3791 | - /> |
3792 | - </mets:file> |
3793 | - <mets:file ID="ex17__FILE06_MAX" MIMETYPE="image/jpeg"> |
3794 | - <mets:FLocat LOCTYPE="URL" |
3795 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/1000/0/00000007.jpg" |
3796 | - /> |
3797 | - </mets:file> |
3798 | - <mets:file ID="ex17__FILE07_MAX" MIMETYPE="image/jpeg"> |
3799 | - <mets:FLocat LOCTYPE="URL" |
3800 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/1000/0/00000008.jpg" |
3801 | - /> |
3802 | - </mets:file> |
3803 | - <mets:file ID="ex17__FILE08_MAX" MIMETYPE="image/jpeg"> |
3804 | - <mets:FLocat LOCTYPE="URL" |
3805 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/1000/0/00000009.jpg" |
3806 | - /> |
3807 | - </mets:file> |
3808 | - </mets:fileGrp> |
3809 | - <mets:fileGrp USE="MIN"> |
3810 | - <mets:file ID="ex17__FILE00_MIN" MIMETYPE="image/jpeg"> |
3811 | - <mets:FLocat LOCTYPE="URL" |
3812 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/500/0/00000001.jpg" |
3813 | - /> |
3814 | - </mets:file> |
3815 | - <mets:file ID="ex17__FILE01_MIN" MIMETYPE="image/jpeg"> |
3816 | - <mets:FLocat LOCTYPE="URL" |
3817 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/500/0/00000002.jpg" |
3818 | - /> |
3819 | - </mets:file> |
3820 | - <mets:file ID="ex17__FILE02_MIN" MIMETYPE="image/jpeg"> |
3821 | - <mets:FLocat LOCTYPE="URL" |
3822 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/500/0/00000003.jpg" |
3823 | - /> |
3824 | - </mets:file> |
3825 | - <mets:file ID="ex17__FILE03_MIN" MIMETYPE="image/jpeg"> |
3826 | - <mets:FLocat LOCTYPE="URL" |
3827 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/500/0/00000004.jpg" |
3828 | - /> |
3829 | - </mets:file> |
3830 | - <mets:file ID="ex17__FILE04_MIN" MIMETYPE="image/jpeg"> |
3831 | - <mets:FLocat LOCTYPE="URL" |
3832 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/500/0/00000005.jpg" |
3833 | - /> |
3834 | - </mets:file> |
3835 | - <mets:file ID="ex17__FILE05_MIN" MIMETYPE="image/jpeg"> |
3836 | - <mets:FLocat LOCTYPE="URL" |
3837 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/500/0/00000006.jpg" |
3838 | - /> |
3839 | - </mets:file> |
3840 | - <mets:file ID="ex17__FILE06_MIN" MIMETYPE="image/jpeg"> |
3841 | - <mets:FLocat LOCTYPE="URL" |
3842 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/500/0/00000007.jpg" |
3843 | - /> |
3844 | - </mets:file> |
3845 | - <mets:file ID="ex17__FILE07_MIN" MIMETYPE="image/jpeg"> |
3846 | - <mets:FLocat LOCTYPE="URL" |
3847 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/500/0/00000008.jpg" |
3848 | - /> |
3849 | - </mets:file> |
3850 | - <mets:file ID="ex17__FILE08_MIN" MIMETYPE="image/jpeg"> |
3851 | - <mets:FLocat LOCTYPE="URL" |
3852 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/500/0/00000009.jpg" |
3853 | - /> |
3854 | - </mets:file> |
3855 | - </mets:fileGrp> |
3856 | - <mets:fileGrp USE="THUMBS"> |
3857 | - <mets:file ID="ex17__FILE00_THB" MIMETYPE="image/jpeg"> |
3858 | - <mets:FLocat LOCTYPE="URL" |
3859 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/89/0/00000001.jpg" |
3860 | - /> |
3861 | - </mets:file> |
3862 | - <mets:file ID="ex17__FILE01_THB" MIMETYPE="image/jpeg"> |
3863 | - <mets:FLocat LOCTYPE="URL" |
3864 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/89/0/00000002.jpg" |
3865 | - /> |
3866 | - </mets:file> |
3867 | - <mets:file ID="ex17__FILE02_THB" MIMETYPE="image/jpeg"> |
3868 | - <mets:FLocat LOCTYPE="URL" |
3869 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/89/0/00000003.jpg" |
3870 | - /> |
3871 | - </mets:file> |
3872 | - <mets:file ID="ex17__FILE03_THB" MIMETYPE="image/jpeg"> |
3873 | - <mets:FLocat LOCTYPE="URL" |
3874 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/89/0/00000004.jpg" |
3875 | - /> |
3876 | - </mets:file> |
3877 | - <mets:file ID="ex17__FILE04_THB" MIMETYPE="image/jpeg"> |
3878 | - <mets:FLocat LOCTYPE="URL" |
3879 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/89/0/00000005.jpg" |
3880 | - /> |
3881 | - </mets:file> |
3882 | - <mets:file ID="ex17__FILE05_THB" MIMETYPE="image/jpeg"> |
3883 | - <mets:FLocat LOCTYPE="URL" |
3884 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/89/0/00000006.jpg" |
3885 | - /> |
3886 | - </mets:file> |
3887 | - <mets:file ID="ex17__FILE06_THB" MIMETYPE="image/jpeg"> |
3888 | - <mets:FLocat LOCTYPE="URL" |
3889 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/89/0/00000007.jpg" |
3890 | - /> |
3891 | - </mets:file> |
3892 | - <mets:file ID="ex17__FILE07_THB" MIMETYPE="image/jpeg"> |
3893 | - <mets:FLocat LOCTYPE="URL" |
3894 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/89/0/00000008.jpg" |
3895 | - /> |
3896 | - </mets:file> |
3897 | - <mets:file ID="ex17__FILE08_THB" MIMETYPE="image/jpeg"> |
3898 | - <mets:FLocat LOCTYPE="URL" |
3899 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN521089360/89/0/00000009.jpg" |
3900 | - /> |
3901 | - </mets:file> |
3902 | - </mets:fileGrp> |
3903 | - <mets:fileGrp USE="DOWNLOAD"> |
3904 | - <mets:file ID="ex17__MONOGRAPH_DWL" MIMETYPE="application/pdf"> |
3905 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://url/to/monograph/pdf/00.pdf" |
3906 | - /> |
3907 | - </mets:file> |
3908 | - <mets:file ID="ex17__FILE00_DWL" MIMETYPE="application/pdf"> |
3909 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://url/to/single/page/pdf/01.pdf" |
3910 | - /> |
3911 | - </mets:file> |
3912 | - <mets:file ID="ex17__FILE01_DWL" MIMETYPE="application/pdf"> |
3913 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://url/to/single/page/pdf/02.pdf" |
3914 | - /> |
3915 | - </mets:file> |
3916 | - <mets:file ID="ex17__FILE02_DWL" MIMETYPE="application/pdf"> |
3917 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://url/to/single/page/pdf/03.pdf" |
3918 | - /> |
3919 | - </mets:file> |
3920 | - <mets:file ID="ex17__FILE03_DWL" MIMETYPE="application/pdf"> |
3921 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://url/to/single/page/pdf/04.pdf" |
3922 | - /> |
3923 | - </mets:file> |
3924 | - <mets:file ID="ex17__FILE04_DWL" MIMETYPE="application/pdf"> |
3925 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://url/to/single/page/pdf/05.pdf" |
3926 | - /> |
3927 | - </mets:file> |
3928 | - <mets:file ID="ex17__FILE05_DWL" MIMETYPE="application/pdf"> |
3929 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://url/to/single/page/pdf/06.pdf" |
3930 | - /> |
3931 | - </mets:file> |
3932 | - <mets:file ID="ex17__FILE06_DWL" MIMETYPE="application/pdf"> |
3933 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://url/to/single/page/pdf/07.pdf" |
3934 | - /> |
3935 | - </mets:file> |
3936 | - <mets:file ID="ex17__FILE07_DWL" MIMETYPE="application/pdf"> |
3937 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://url/to/single/page/pdf/08.pdf" |
3938 | - /> |
3939 | - </mets:file> |
3940 | - <mets:file ID="ex17__FILE08_DWL" MIMETYPE="application/pdf"> |
3941 | - <mets:FLocat LOCTYPE="URL" xlink:href="http://url/to/single/page/pdf/09.pdf" |
3942 | - /> |
3943 | - </mets:file> |
3944 | - </mets:fileGrp> |
3945 | - </mets:fileSec> |
3946 | - <mets:structMap TYPE="LOGICAL"> |
3947 | - <mets:div ADMID="ex17__AMD_00" DMDID="ex17__DMDLOG_00" ID="ex17__LOG_0000" |
3948 | - TYPE="Monograph"> |
3949 | - <mets:fptr FILEID="ex17__FILE00_DWL" /> |
3950 | - </mets:div> |
3951 | - </mets:structMap> |
3952 | - <mets:structMap TYPE="PHYSICAL"> |
3953 | - <mets:div ID="ex17__PHYS_00" TYPE="physSequence"> |
3954 | - <mets:div ID="ex17__PHYS_01" ORDER="1" ORDERLABEL="1" TYPE="page"> |
3955 | - <mets:fptr FILEID="ex17__FILE00_DEF" /> |
3956 | - <mets:fptr FILEID="ex17__FILE00_MIN" /> |
3957 | - <mets:fptr FILEID="ex17__FILE00_MAX" /> |
3958 | - <mets:fptr FILEID="ex17__FILE00_THB" /> |
3959 | - <mets:fptr FILEID="ex17__FILE00_DWL" /> |
3960 | - </mets:div> |
3961 | - <mets:div ID="ex17__PHYS_02" ORDER="2" ORDERLABEL="2" TYPE="page"> |
3962 | - <mets:fptr FILEID="ex17__FILE01_DEF" /> |
3963 | - <mets:fptr FILEID="ex17__FILE01_MIN" /> |
3964 | - <mets:fptr FILEID="ex17__FILE01_MAX" /> |
3965 | - <mets:fptr FILEID="ex17__FILE01_THB" /> |
3966 | - <mets:fptr FILEID="ex17__FILE01_DWL" /> |
3967 | - </mets:div> |
3968 | - <mets:div ID="ex17__PHYS_03" ORDER="3" ORDERLABEL="3" TYPE="page"> |
3969 | - <mets:fptr FILEID="ex17__FILE02_DEF" /> |
3970 | - <mets:fptr FILEID="ex17__FILE02_MIN" /> |
3971 | - <mets:fptr FILEID="ex17__FILE02_MAX" /> |
3972 | - <mets:fptr FILEID="ex17__FILE02_THB" /> |
3973 | - <mets:fptr FILEID="ex17__FILE02_DWL" /> |
3974 | - </mets:div> |
3975 | - <mets:div ID="ex17__PHYS_04" ORDER="4" ORDERLABEL="4" TYPE="page"> |
3976 | - <mets:fptr FILEID="ex17__FILE03_DEF" /> |
3977 | - <mets:fptr FILEID="ex17__FILE03_MIN" /> |
3978 | - <mets:fptr FILEID="ex17__FILE03_MAX" /> |
3979 | - <mets:fptr FILEID="ex17__FILE03_THB" /> |
3980 | - <mets:fptr FILEID="ex17__FILE03_DWL" /> |
3981 | - </mets:div> |
3982 | - <mets:div ID="ex17__PHYS_05" ORDER="5" ORDERLABEL="5" TYPE="page"> |
3983 | - <mets:fptr FILEID="ex17__FILE04_DEF" /> |
3984 | - <mets:fptr FILEID="ex17__FILE04_MIN" /> |
3985 | - <mets:fptr FILEID="ex17__FILE04_MAX" /> |
3986 | - <mets:fptr FILEID="ex17__FILE04_THB" /> |
3987 | - <mets:fptr FILEID="ex17__FILE04_DWL" /> |
3988 | - </mets:div> |
3989 | - <mets:div ID="ex17__PHYS_06" ORDER="6" ORDERLABEL="6" TYPE="page"> |
3990 | - <mets:fptr FILEID="ex17__FILE05_DEF" /> |
3991 | - <mets:fptr FILEID="ex17__FILE05_MIN" /> |
3992 | - <mets:fptr FILEID="ex17__FILE05_MAX" /> |
3993 | - <mets:fptr FILEID="ex17__FILE05_THB" /> |
3994 | - <mets:fptr FILEID="ex17__FILE05_DWL" /> |
3995 | - </mets:div> |
3996 | - <mets:div ID="ex17__PHYS_07" ORDER="7" ORDERLABEL="7" TYPE="page"> |
3997 | - <mets:fptr FILEID="ex17__FILE06_DEF" /> |
3998 | - <mets:fptr FILEID="ex17__FILE06_MIN" /> |
3999 | - <mets:fptr FILEID="ex17__FILE06_MAX" /> |
4000 | - <mets:fptr FILEID="ex17__FILE06_THB" /> |
4001 | - <mets:fptr FILEID="ex17__FILE06_DWL" /> |
4002 | - </mets:div> |
4003 | - <mets:div ID="ex17__PHYS_08" ORDER="8" ORDERLABEL="8" TYPE="page"> |
4004 | - <mets:fptr FILEID="ex17__FILE07_DEF" /> |
4005 | - <mets:fptr FILEID="ex17__FILE07_MIN" /> |
4006 | - <mets:fptr FILEID="ex17__FILE07_MAX" /> |
4007 | - <mets:fptr FILEID="ex17__FILE07_THB" /> |
4008 | - <mets:fptr FILEID="ex17__FILE07_DWL" /> |
4009 | - </mets:div> |
4010 | - <mets:div ID="ex17__PHYS_09" ORDER="9" ORDERLABEL="9" TYPE="page"> |
4011 | - <mets:fptr FILEID="ex17__FILE08_DEF" /> |
4012 | - <mets:fptr FILEID="ex17__FILE08_MIN" /> |
4013 | - <mets:fptr FILEID="ex17__FILE08_MAX" /> |
4014 | - <mets:fptr FILEID="ex17__FILE08_THB" /> |
4015 | - <mets:fptr FILEID="ex17__FILE08_DWL" /> |
4016 | - </mets:div> |
4017 | - </mets:div> |
4018 | - </mets:structMap> |
4019 | - <mets:structLink> |
4020 | - <mets:smLink xlink:from="ex17__LOG_00" xlink:to="ex17__PHYS_00" /> |
4021 | - </mets:structLink> |
4022 | - </mets:mets> |
4023 | - |
4024 | - </Appendix> |
4025 | - |
4026 | - <!-- |
4027 | - =========================================================================== |
4028 | - == Beispiel Nr.18: Komplettes METS-Beispiel des Komplexen |
4029 | - == Dokumentenmodells - übergeordnes Werk (Periodical) |
4030 | - =========================================================================== --> |
4031 | - |
4032 | - <Appendix ID="example18" |
4033 | - LABEL="Komplettes METS-Beispiel des Komplexen Dokumentenmodells - übergeordnes Werk (Periodical)" |
4034 | - NUMBER="18"> |
4035 | - |
4036 | - <mets:mets xmlns:xlink="http://www.w3.org/1999/xlink"> |
4037 | - <mets:dmdSec ID="ex18__DMD_00"> |
4038 | - <mets:mdWrap MDTYPE="MODS"> |
4039 | - <mets:xmlData> |
4040 | - <mods:mods> |
4041 | - <mods:identifier type="PPN">PPN394930762</mods:identifier> |
4042 | - <mods:recordInfo> |
4043 | - <mods:recordIdentifier source="GBV-PPN" |
4044 | - >PPN394930762</mods:recordIdentifier> |
4045 | - </mods:recordInfo> |
4046 | - <mods:titleInfo> |
4047 | - <mods:title>Algebra i Logika</mods:title> |
4048 | - </mods:titleInfo> |
4049 | - <mods:originInfo> |
4050 | - <mods:place> |
4051 | - <mods:placeTerm type="text">Novosibirsk</mods:placeTerm> |
4052 | - </mods:place> |
4053 | - <mods:publisher>Akademija Nauk SSSR, Sibirskoe Otdelenie, Institut |
4054 | - Matematiki</mods:publisher> |
4055 | - </mods:originInfo> |
4056 | - </mods:mods> |
4057 | - </mets:xmlData> |
4058 | - </mets:mdWrap> |
4059 | - </mets:dmdSec> |
4060 | - <mets:amdSec ID="ex18__AMD_00"> |
4061 | - <mets:rightsMD ID="RIGHTS"> |
4062 | - <mets:mdWrap MDTYPE="OTHER" MIMETYPE="text/xml" OTHERMDTYPE="DVRIGHTS"> |
4063 | - <mets:xmlData> |
4064 | - <dv:rights xmlns:dv="http://dfg-viewer.de/"> |
4065 | - <dv:owner>Digitalisierungszentrum der Niedersächsischen Staats- und |
4066 | - Universitätsbibliothek Göttingen</dv:owner> |
4067 | - <dv:ownerLogo>http://gdz.sub.uni-goettingen.de/logo_gdz_dfgv.png</dv:ownerLogo> |
4068 | - <dv:ownerSiteURL>http://gdz.sub.uni-goettingen.de</dv:ownerSiteURL> |
4069 | - </dv:rights> |
4070 | - </mets:xmlData> |
4071 | - </mets:mdWrap> |
4072 | - </mets:rightsMD> |
4073 | - <mets:digiprovMD ID="DIGIPROV"> |
4074 | - <mets:mdWrap MDTYPE="OTHER" MIMETYPE="text/xml" OTHERMDTYPE="DVLINKS"> |
4075 | - <mets:xmlData> |
4076 | - <dv:links xmlns:dv="http://dfg-viewer.de/"> |
4077 | - <dv:reference>http://opac.sub.uni-goettingen.de/DB=1/PPN?PPN=394930762</dv:reference> |
4078 | - <dv:presentation>http://resolver.sub.uni-goettingen.de/purl?PPN394930762_0001</dv:presentation> |
4079 | - </dv:links> |
4080 | - </mets:xmlData> |
4081 | - </mets:mdWrap> |
4082 | - </mets:digiprovMD> |
4083 | - </mets:amdSec> |
4084 | - <mets:structMap TYPE="LOGICAL"> |
4085 | - <mets:div ADMID="ex18__AMD_00" DMDID="ex18__DMD_00" ID="ex18__LOG_00" |
4086 | - TYPE="Periodical"> |
4087 | - <mets:div TYPE="PeriodicalVolume"> |
4088 | - <mets:mptr LOCTYPE="URL" |
4089 | - xlink:href="http://link/to/mets/file/1st/volume/mets.xml" /> |
4090 | - </mets:div> |
4091 | - </mets:div> |
4092 | - </mets:structMap> |
4093 | - </mets:mets> |
4094 | - |
4095 | - </Appendix> |
4096 | - |
4097 | - <!-- |
4098 | - =========================================================================== |
4099 | - == Beispiel Nr.19: Komplettes METS-Beispiel des Komplexen |
4100 | - == Dokumentenmodells - nachfolgendes Werk (PeriodicalVolume) |
4101 | - =========================================================================== --> |
4102 | - |
4103 | - <Appendix ID="example19" |
4104 | - LABEL="Komplettes METS-Beispiel des Komplexen Dokumentenmodells - nachfolgendes Werk (PeriodicalVolume)" |
4105 | - NUMBER="19"> |
4106 | - |
4107 | - <mets:mets xmlns:xlink="http://www.w3.org/1999/xlink"> |
4108 | - <mets:dmdSec ID="ex19__DMD_01"> |
4109 | - <mets:mdWrap MDTYPE="MODS"> |
4110 | - <mets:xmlData> |
4111 | - <mods:mods> |
4112 | - <mods:identifier type="GBV-PPN">PPN394930762_0001</mods:identifier> |
4113 | - <mods:recordInfo> |
4114 | - <mods:recordIdentifier source="GBV-PPN" |
4115 | - >PPN394930762_0001</mods:recordIdentifier> |
4116 | - </mods:recordInfo> |
4117 | - <mods:titleInfo> |
4118 | - <mods:title>Algebra i Logika</mods:title> |
4119 | - </mods:titleInfo> |
4120 | - <mods:originInfo> |
4121 | - <mods:place> |
4122 | - <mods:placeTerm type="text">Novosibirsk</mods:placeTerm> |
4123 | - </mods:place> |
4124 | - <mods:dateIssued encoding="w3cdtf">1962</mods:dateIssued> |
4125 | - <mods:publisher>Akademija Nauk SSSR, Sibirskoe Otdelenie, Institut |
4126 | - Matematiki</mods:publisher> |
4127 | - </mods:originInfo> |
4128 | - <mods:relatedItem type="host"> |
4129 | - <mods:recordInfo> |
4130 | - <mods:recordIdentifier source="GBV-PPN" |
4131 | - >PPN394930762</mods:recordIdentifier> |
4132 | - </mods:recordInfo> |
4133 | - </mods:relatedItem> |
4134 | - <mods:part order="1"> |
4135 | - <mods:detail type="volume"> |
4136 | - <mods:number>1</mods:number> |
4137 | - </mods:detail> |
4138 | - </mods:part> |
4139 | - </mods:mods> |
4140 | - </mets:xmlData> |
4141 | - </mets:mdWrap> |
4142 | - </mets:dmdSec> |
4143 | - <mets:dmdSec ID="ex19__DMD_02"> |
4144 | - <mets:mdWrap MDTYPE="MODS"> |
4145 | - <mets:xmlData> |
4146 | - <mods:mods> |
4147 | - <mods:part order="10"> |
4148 | - <mods:detail type="issue"> |
4149 | - <mods:number>1</mods:number> |
4150 | - </mods:detail> |
4151 | - </mods:part> |
4152 | - </mods:mods> |
4153 | - </mets:xmlData> |
4154 | - </mets:mdWrap> |
4155 | - </mets:dmdSec> |
4156 | - <mets:dmdSec ID="ex19__DMD_03"> |
4157 | - <mets:mdWrap MDTYPE="MODS"> |
4158 | - <mets:xmlData> |
4159 | - <mods:mods> |
4160 | - <mods:identifier type="Zbl">0146.03601</mods:identifier> |
4161 | - <mods:titleInfo> |
4162 | - <mods:title>$π$-пополнения локально нильпотентных групп</mods:title> |
4163 | - </mods:titleInfo> |
4164 | - <mods:language> |
4165 | - <mods:languageTerm authority="rfc3066" type="code" |
4166 | - >ru</mods:languageTerm> |
4167 | - </mods:language> |
4168 | - <mods:name> |
4169 | - <mods:role> |
4170 | - <mods:roleTerm>aut</mods:roleTerm> |
4171 | - </mods:role> |
4172 | - <mods:namePart type="family">Каргаполов</mods:namePart> |
4173 | - <mods:namePart type="given">М.И.</mods:namePart> |
4174 | - </mods:name> |
4175 | - </mods:mods> |
4176 | - </mets:xmlData> |
4177 | - </mets:mdWrap> |
4178 | - </mets:dmdSec> |
4179 | - <mets:dmdSec ID="ex19__DMD_04"> |
4180 | - <mets:mdWrap MDTYPE="MODS"> |
4181 | - <mets:xmlData> |
4182 | - <mods:mods> |
4183 | - <mods:identifier type="Zbl">0145.25803</mods:identifier> |
4184 | - <mods:titleInfo> |
4185 | - <mods:title>базах свободной алгебры Ли</mods:title> |
4186 | - </mods:titleInfo> |
4187 | - <mods:language> |
4188 | - <mods:languageTerm authority="rfc3066" type="code" |
4189 | - >ru</mods:languageTerm> |
4190 | - </mods:language> |
4191 | - <mods:name> |
4192 | - <mods:role> |
4193 | - <mods:roleTerm>aut</mods:roleTerm> |
4194 | - </mods:role> |
4195 | - <mods:namePart type="family">Ширшов</mods:namePart> |
4196 | - <mods:namePart type="given">А.И.</mods:namePart> |
4197 | - </mods:name> |
4198 | - </mods:mods> |
4199 | - </mets:xmlData> |
4200 | - </mets:mdWrap> |
4201 | - </mets:dmdSec> |
4202 | - <mets:dmdSec ID="ex19__DMD_05"> |
4203 | - <mets:mdWrap MDTYPE="MODS"> |
4204 | - <mets:xmlData> |
4205 | - <mods:mods> |
4206 | - <mods:part order="20"> |
4207 | - <mods:detail type="issue"> |
4208 | - <mods:number>2</mods:number> |
4209 | - </mods:detail> |
4210 | - </mods:part> |
4211 | - </mods:mods> |
4212 | - </mets:xmlData> |
4213 | - </mets:mdWrap> |
4214 | - </mets:dmdSec> |
4215 | - <mets:dmdSec ID="ex19__DMD_06"> |
4216 | - <mets:mdWrap MDTYPE="MODS"> |
4217 | - <mets:xmlData> |
4218 | - <mods:mods> |
4219 | - <mods:identifier type="Zbl">0171.29103</mods:identifier> |
4220 | - <mods:titleInfo> |
4221 | - <mods:title>частично упорядоченных нильпотентных |
4222 | - группах</mods:title> |
4223 | - </mods:titleInfo> |
4224 | - <mods:language> |
4225 | - <mods:languageTerm authority="rfc3066" type="code" |
4226 | - >ru</mods:languageTerm> |
4227 | - </mods:language> |
4228 | - <mods:name> |
4229 | - <mods:role> |
4230 | - <mods:roleTerm>aut</mods:roleTerm> |
4231 | - </mods:role> |
4232 | - <mods:namePart type="family">Мальцев</mods:namePart> |
4233 | - <mods:namePart type="given">А.И.</mods:namePart> |
4234 | - </mods:name> |
4235 | - </mods:mods> |
4236 | - </mets:xmlData> |
4237 | - </mets:mdWrap> |
4238 | - </mets:dmdSec> |
4239 | - <mets:dmdSec ID="ex19__DMD_07"> |
4240 | - <mets:mdWrap MDTYPE="MODS"> |
4241 | - <mets:xmlData> |
4242 | - <mods:mods> |
4243 | - <mods:identifier type="Zbl">0228.06008</mods:identifier> |
4244 | - <mods:titleInfo> |
4245 | - <mods:title>Структура локально разрешимых вполне доупорядочиваемых |
4246 | - групп</mods:title> |
4247 | - </mods:titleInfo> |
4248 | - <mods:language> |
4249 | - <mods:languageTerm authority="rfc3066" type="code" |
4250 | - >ru</mods:languageTerm> |
4251 | - </mods:language> |
4252 | - <mods:name> |
4253 | - <mods:role> |
4254 | - <mods:roleTerm>aut</mods:roleTerm> |
4255 | - </mods:role> |
4256 | - <mods:namePart type="family">Терехов</mods:namePart> |
4257 | - <mods:namePart type="given">А.А.</mods:namePart> |
4258 | - </mods:name> |
4259 | - </mods:mods> |
4260 | - </mets:xmlData> |
4261 | - </mets:mdWrap> |
4262 | - </mets:dmdSec> |
4263 | - <mets:dmdSec ID="ex19__DMD_08"> |
4264 | - <mets:mdWrap MDTYPE="MODS"> |
4265 | - <mets:xmlData> |
4266 | - <mods:mods> |
4267 | - <mods:titleInfo> |
4268 | - <mods:title>Вполне доупорядочиваемые группы</mods:title> |
4269 | - </mods:titleInfo> |
4270 | - <mods:language> |
4271 | - <mods:languageTerm authority="rfc3066" type="code" |
4272 | - >ru</mods:languageTerm> |
4273 | - </mods:language> |
4274 | - <mods:name> |
4275 | - <mods:role> |
4276 | - <mods:roleTerm>aut</mods:roleTerm> |
4277 | - </mods:role> |
4278 | - <mods:namePart type="family">Каргаполов</mods:namePart> |
4279 | - <mods:namePart type="given">М.И.</mods:namePart> |
4280 | - </mods:name> |
4281 | - </mods:mods> |
4282 | - </mets:xmlData> |
4283 | - </mets:mdWrap> |
4284 | - </mets:dmdSec> |
4285 | - <mets:dmdSec ID="ex19__DMD_09"> |
4286 | - <mets:mdWrap MDTYPE="MODS"> |
4287 | - <mets:xmlData> |
4288 | - <mods:mods> |
4289 | - <mods:identifier type="Zbl">0152.01304</mods:identifier> |
4290 | - <mods:titleInfo> |
4291 | - <mods:title>Замечания по теории частично упорядоченных групп и |
4292 | - полугрупп</mods:title> |
4293 | - </mods:titleInfo> |
4294 | - <mods:language> |
4295 | - <mods:languageTerm authority="rfc3066" type="code" |
4296 | - >ru</mods:languageTerm> |
4297 | - </mods:language> |
4298 | - <mods:name> |
4299 | - <mods:role> |
4300 | - <mods:roleTerm>aut</mods:roleTerm> |
4301 | - </mods:role> |
4302 | - <mods:namePart type="family">Виноградов</mods:namePart> |
4303 | - <mods:namePart type="given">А.А.</mods:namePart> |
4304 | - </mods:name> |
4305 | - </mods:mods> |
4306 | - </mets:xmlData> |
4307 | - </mets:mdWrap> |
4308 | - </mets:dmdSec> |
4309 | - <mets:dmdSec ID="ex19__DMD_10"> |
4310 | - <mets:mdWrap MDTYPE="MODS"> |
4311 | - <mets:xmlData> |
4312 | - <mods:mods> |
4313 | - <mods:identifier type="Zbl">0163.28102</mods:identifier> |
4314 | - <mods:titleInfo> |
4315 | - <mods:title>тносительно элементарные подпространства в компактных |
4316 | - алгебрах Ли</mods:title> |
4317 | - </mods:titleInfo> |
4318 | - <mods:language> |
4319 | - <mods:languageTerm authority="rfc3066" type="code" |
4320 | - >ru</mods:languageTerm> |
4321 | - </mods:language> |
4322 | - <mods:name> |
4323 | - <mods:role> |
4324 | - <mods:roleTerm>aut</mods:roleTerm> |
4325 | - </mods:role> |
4326 | - <mods:namePart type="family">Тайцлин</mods:namePart> |
4327 | - <mods:namePart type="given">М.А.</mods:namePart> |
4328 | - </mods:name> |
4329 | - </mods:mods> |
4330 | - </mets:xmlData> |
4331 | - </mets:mdWrap> |
4332 | - </mets:dmdSec> |
4333 | - <mets:dmdSec ID="ex19__DMD_11"> |
4334 | - <mets:mdWrap MDTYPE="MODS"> |
4335 | - <mets:xmlData> |
4336 | - <mods:mods> |
4337 | - <mods:identifier type="Zbl">0156.03902</mods:identifier> |
4338 | - <mods:titleInfo> |
4339 | - <mods:title>Вложение алгебр Ли в алгебраически замкнутые алгебры |
4340 | - Ли</mods:title> |
4341 | - </mods:titleInfo> |
4342 | - <mods:language> |
4343 | - <mods:languageTerm authority="rfc3066" type="code" |
4344 | - >ru</mods:languageTerm> |
4345 | - </mods:language> |
4346 | - <mods:name> |
4347 | - <mods:role> |
4348 | - <mods:roleTerm>aut</mods:roleTerm> |
4349 | - </mods:role> |
4350 | - <mods:namePart type="family">Бокуть</mods:namePart> |
4351 | - <mods:namePart type="given">Л.А.</mods:namePart> |
4352 | - </mods:name> |
4353 | - </mods:mods> |
4354 | - </mets:xmlData> |
4355 | - </mets:mdWrap> |
4356 | - </mets:dmdSec> |
4357 | - <mets:amdSec ID="ex19__AMD_00"> |
4358 | - <mets:rightsMD ID="ex19__RIGHTS_00"> |
4359 | - <mets:mdWrap MDTYPE="OTHER" MIMETYPE="text/xml" OTHERMDTYPE="DVRIGHTS"> |
4360 | - <mets:xmlData> |
4361 | - <dv:rights xmlns:dv="http://dfg-viewer.de/"> |
4362 | - <dv:owner>Digitalisierungszentrum der Niedersächsischen Staats- und |
4363 | - Universitätsbibliothek Göttingen</dv:owner> |
4364 | - <dv:ownerLogo>http://gdz.sub.uni-goettingen.de/logo_gdz_dfgv.png</dv:ownerLogo> |
4365 | - <dv:ownerSiteURL>http://gdz.sub.uni-goettingen.de</dv:ownerSiteURL> |
4366 | - </dv:rights> |
4367 | - </mets:xmlData> |
4368 | - </mets:mdWrap> |
4369 | - </mets:rightsMD> |
4370 | - <mets:digiprovMD ID="ex19__DIGIPROV_00"> |
4371 | - <mets:mdWrap MDTYPE="OTHER" MIMETYPE="text/xml" OTHERMDTYPE="DVLINKS"> |
4372 | - <mets:xmlData> |
4373 | - <dv:links xmlns:dv="http://dfg-viewer.de/"> |
4374 | - <dv:reference>http://opac.sub.uni-goettingen.de/DB=1/PPN?PPN=394930762</dv:reference> |
4375 | - <dv:presentation>http://resolver.sub.uni-goettingen.de/purl?PPN394930762_0001</dv:presentation> |
4376 | - </dv:links> |
4377 | - </mets:xmlData> |
4378 | - </mets:mdWrap> |
4379 | - </mets:digiprovMD> |
4380 | - </mets:amdSec> |
4381 | - <mets:fileSec> |
4382 | - <mets:fileGrp USE="DEFAULT"> |
4383 | - <mets:file ID="ex19__FILE00_DEF" MIMETYPE="image/jpeg"> |
4384 | - <mets:FLocat LOCTYPE="URL" |
4385 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000001.jpg" |
4386 | - /> |
4387 | - </mets:file> |
4388 | - <mets:file ID="ex19__FILE01_DEF" MIMETYPE="image/jpeg"> |
4389 | - <mets:FLocat LOCTYPE="URL" |
4390 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000002.jpg" |
4391 | - /> |
4392 | - </mets:file> |
4393 | - <mets:file ID="ex19__FILE02_DEF" MIMETYPE="image/jpeg"> |
4394 | - <mets:FLocat LOCTYPE="URL" |
4395 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000003.jpg" |
4396 | - /> |
4397 | - </mets:file> |
4398 | - <mets:file ID="ex19__FILE03_DEF" MIMETYPE="image/jpeg"> |
4399 | - <mets:FLocat LOCTYPE="URL" |
4400 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000004.jpg" |
4401 | - /> |
4402 | - </mets:file> |
4403 | - <mets:file ID="ex19__FILE04_DEF" MIMETYPE="image/jpeg"> |
4404 | - <mets:FLocat LOCTYPE="URL" |
4405 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000005.jpg" |
4406 | - /> |
4407 | - </mets:file> |
4408 | - <mets:file ID="ex19__FILE05_DEF" MIMETYPE="image/jpeg"> |
4409 | - <mets:FLocat LOCTYPE="URL" |
4410 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000006.jpg" |
4411 | - /> |
4412 | - </mets:file> |
4413 | - <mets:file ID="ex19__FILE06_DEF" MIMETYPE="image/jpeg"> |
4414 | - <mets:FLocat LOCTYPE="URL" |
4415 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000007.jpg" |
4416 | - /> |
4417 | - </mets:file> |
4418 | - <mets:file ID="ex19__FILE07_DEF" MIMETYPE="image/jpeg"> |
4419 | - <mets:FLocat LOCTYPE="URL" |
4420 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000008.jpg" |
4421 | - /> |
4422 | - </mets:file> |
4423 | - <mets:file ID="ex19__FILE08_DEF" MIMETYPE="image/jpeg"> |
4424 | - <mets:FLocat LOCTYPE="URL" |
4425 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000009.jpg" |
4426 | - /> |
4427 | - </mets:file> |
4428 | - <mets:file ID="ex19__FILE09_DEF" MIMETYPE="image/jpeg"> |
4429 | - <mets:FLocat LOCTYPE="URL" |
4430 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000010.jpg" |
4431 | - /> |
4432 | - </mets:file> |
4433 | - <mets:file ID="ex19__FILE10_DEF" MIMETYPE="image/jpeg"> |
4434 | - <mets:FLocat LOCTYPE="URL" |
4435 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000011.jpg" |
4436 | - /> |
4437 | - </mets:file> |
4438 | - <mets:file ID="ex19__FILE11_DEF" MIMETYPE="image/jpeg"> |
4439 | - <mets:FLocat LOCTYPE="URL" |
4440 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000012.jpg" |
4441 | - /> |
4442 | - </mets:file> |
4443 | - <mets:file ID="ex19__FILE12_DEF" MIMETYPE="image/jpeg"> |
4444 | - <mets:FLocat LOCTYPE="URL" |
4445 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000013.jpg" |
4446 | - /> |
4447 | - </mets:file> |
4448 | - <mets:file ID="ex19__FILE13_DEF" MIMETYPE="image/jpeg"> |
4449 | - <mets:FLocat LOCTYPE="URL" |
4450 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000014.jpg" |
4451 | - /> |
4452 | - </mets:file> |
4453 | - <mets:file ID="ex19__FILE14_DEF" MIMETYPE="image/jpeg"> |
4454 | - <mets:FLocat LOCTYPE="URL" |
4455 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000015.jpg" |
4456 | - /> |
4457 | - </mets:file> |
4458 | - <mets:file ID="ex19__FILE15_DEF" MIMETYPE="image/jpeg"> |
4459 | - <mets:FLocat LOCTYPE="URL" |
4460 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000016.jpg" |
4461 | - /> |
4462 | - </mets:file> |
4463 | - <mets:file ID="ex19__FILE16_DEF" MIMETYPE="image/jpeg"> |
4464 | - <mets:FLocat LOCTYPE="URL" |
4465 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000017.jpg" |
4466 | - /> |
4467 | - </mets:file> |
4468 | - <mets:file ID="ex19__FILE17_DEF" MIMETYPE="image/jpeg"> |
4469 | - <mets:FLocat LOCTYPE="URL" |
4470 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000018.jpg" |
4471 | - /> |
4472 | - </mets:file> |
4473 | - <mets:file ID="ex19__FILE18_DEF" MIMETYPE="image/jpeg"> |
4474 | - <mets:FLocat LOCTYPE="URL" |
4475 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000019.jpg" |
4476 | - /> |
4477 | - </mets:file> |
4478 | - <mets:file ID="ex19__FILE19_DEF" MIMETYPE="image/jpeg"> |
4479 | - <mets:FLocat LOCTYPE="URL" |
4480 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000020.jpg" |
4481 | - /> |
4482 | - </mets:file> |
4483 | - <mets:file ID="ex19__FILE20_DEF" MIMETYPE="image/jpeg"> |
4484 | - <mets:FLocat LOCTYPE="URL" |
4485 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000021.jpg" |
4486 | - /> |
4487 | - </mets:file> |
4488 | - <mets:file ID="ex19__FILE21_DEF" MIMETYPE="image/jpeg"> |
4489 | - <mets:FLocat LOCTYPE="URL" |
4490 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000022.jpg" |
4491 | - /> |
4492 | - </mets:file> |
4493 | - <mets:file ID="ex19__FILE22_DEF" MIMETYPE="image/jpeg"> |
4494 | - <mets:FLocat LOCTYPE="URL" |
4495 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000023.jpg" |
4496 | - /> |
4497 | - </mets:file> |
4498 | - <mets:file ID="ex19__FILE23_DEF" MIMETYPE="image/jpeg"> |
4499 | - <mets:FLocat LOCTYPE="URL" |
4500 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000024.jpg" |
4501 | - /> |
4502 | - </mets:file> |
4503 | - <mets:file ID="ex19__FILE24_DEF" MIMETYPE="image/jpeg"> |
4504 | - <mets:FLocat LOCTYPE="URL" |
4505 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000025.jpg" |
4506 | - /> |
4507 | - </mets:file> |
4508 | - <mets:file ID="ex19__FILE25_DEF" MIMETYPE="image/jpeg"> |
4509 | - <mets:FLocat LOCTYPE="URL" |
4510 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000026.jpg" |
4511 | - /> |
4512 | - </mets:file> |
4513 | - <mets:file ID="ex19__FILE26_DEF" MIMETYPE="image/jpeg"> |
4514 | - <mets:FLocat LOCTYPE="URL" |
4515 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000027.jpg" |
4516 | - /> |
4517 | - </mets:file> |
4518 | - <mets:file ID="ex19__FILE27_DEF" MIMETYPE="image/jpeg"> |
4519 | - <mets:FLocat LOCTYPE="URL" |
4520 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000028.jpg" |
4521 | - /> |
4522 | - </mets:file> |
4523 | - <mets:file ID="ex19__FILE28_DEF" MIMETYPE="image/jpeg"> |
4524 | - <mets:FLocat LOCTYPE="URL" |
4525 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000029.jpg" |
4526 | - /> |
4527 | - </mets:file> |
4528 | - <mets:file ID="ex19__FILE29_DEF" MIMETYPE="image/jpeg"> |
4529 | - <mets:FLocat LOCTYPE="URL" |
4530 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000030.jpg" |
4531 | - /> |
4532 | - </mets:file> |
4533 | - <mets:file ID="ex19__FILE30_DEF" MIMETYPE="image/jpeg"> |
4534 | - <mets:FLocat LOCTYPE="URL" |
4535 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000031.jpg" |
4536 | - /> |
4537 | - </mets:file> |
4538 | - <mets:file ID="ex19__FILE31_DEF" MIMETYPE="image/jpeg"> |
4539 | - <mets:FLocat LOCTYPE="URL" |
4540 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000032.jpg" |
4541 | - /> |
4542 | - </mets:file> |
4543 | - <mets:file ID="ex19__FILE32_DEF" MIMETYPE="image/jpeg"> |
4544 | - <mets:FLocat LOCTYPE="URL" |
4545 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000033.jpg" |
4546 | - /> |
4547 | - </mets:file> |
4548 | - <mets:file ID="ex19__FILE33_DEF" MIMETYPE="image/jpeg"> |
4549 | - <mets:FLocat LOCTYPE="URL" |
4550 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000034.jpg" |
4551 | - /> |
4552 | - </mets:file> |
4553 | - <mets:file ID="ex19__FILE34_DEF" MIMETYPE="image/jpeg"> |
4554 | - <mets:FLocat LOCTYPE="URL" |
4555 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000035.jpg" |
4556 | - /> |
4557 | - </mets:file> |
4558 | - <mets:file ID="ex19__FILE35_DEF" MIMETYPE="image/jpeg"> |
4559 | - <mets:FLocat LOCTYPE="URL" |
4560 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000036.jpg" |
4561 | - /> |
4562 | - </mets:file> |
4563 | - <mets:file ID="ex19__FILE36_DEF" MIMETYPE="image/jpeg"> |
4564 | - <mets:FLocat LOCTYPE="URL" |
4565 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000037.jpg" |
4566 | - /> |
4567 | - </mets:file> |
4568 | - <mets:file ID="ex19__FILE37_DEF" MIMETYPE="image/jpeg"> |
4569 | - <mets:FLocat LOCTYPE="URL" |
4570 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000038.jpg" |
4571 | - /> |
4572 | - </mets:file> |
4573 | - <mets:file ID="ex19__FILE38_DEF" MIMETYPE="image/jpeg"> |
4574 | - <mets:FLocat LOCTYPE="URL" |
4575 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000039.jpg" |
4576 | - /> |
4577 | - </mets:file> |
4578 | - <mets:file ID="ex19__FILE39_DEF" MIMETYPE="image/jpeg"> |
4579 | - <mets:FLocat LOCTYPE="URL" |
4580 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000040.jpg" |
4581 | - /> |
4582 | - </mets:file> |
4583 | - <mets:file ID="ex19__FILE40_DEF" MIMETYPE="image/jpeg"> |
4584 | - <mets:FLocat LOCTYPE="URL" |
4585 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000041.jpg" |
4586 | - /> |
4587 | - </mets:file> |
4588 | - <mets:file ID="ex19__FILE41_DEF" MIMETYPE="image/jpeg"> |
4589 | - <mets:FLocat LOCTYPE="URL" |
4590 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000042.jpg" |
4591 | - /> |
4592 | - </mets:file> |
4593 | - <mets:file ID="ex19__FILE42_DEF" MIMETYPE="image/jpeg"> |
4594 | - <mets:FLocat LOCTYPE="URL" |
4595 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000043.jpg" |
4596 | - /> |
4597 | - </mets:file> |
4598 | - <mets:file ID="ex19__FILE43_DEF" MIMETYPE="image/jpeg"> |
4599 | - <mets:FLocat LOCTYPE="URL" |
4600 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000044.jpg" |
4601 | - /> |
4602 | - </mets:file> |
4603 | - <mets:file ID="ex19__FILE44_DEF" MIMETYPE="image/jpeg"> |
4604 | - <mets:FLocat LOCTYPE="URL" |
4605 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000045.jpg" |
4606 | - /> |
4607 | - </mets:file> |
4608 | - <mets:file ID="ex19__FILE45_DEF" MIMETYPE="image/jpeg"> |
4609 | - <mets:FLocat LOCTYPE="URL" |
4610 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000046.jpg" |
4611 | - /> |
4612 | - </mets:file> |
4613 | - <mets:file ID="ex19__FILE46_DEF" MIMETYPE="image/jpeg"> |
4614 | - <mets:FLocat LOCTYPE="URL" |
4615 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000047.jpg" |
4616 | - /> |
4617 | - </mets:file> |
4618 | - <mets:file ID="ex19__FILE47_DEF" MIMETYPE="image/jpeg"> |
4619 | - <mets:FLocat LOCTYPE="URL" |
4620 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000048.jpg" |
4621 | - /> |
4622 | - </mets:file> |
4623 | - <mets:file ID="ex19__FILE48_DEF" MIMETYPE="image/jpeg"> |
4624 | - <mets:FLocat LOCTYPE="URL" |
4625 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000049.jpg" |
4626 | - /> |
4627 | - </mets:file> |
4628 | - <mets:file ID="ex19__FILE49_DEF" MIMETYPE="image/jpeg"> |
4629 | - <mets:FLocat LOCTYPE="URL" |
4630 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000050.jpg" |
4631 | - /> |
4632 | - </mets:file> |
4633 | - <mets:file ID="ex19__FILE50_DEF" MIMETYPE="image/jpeg"> |
4634 | - <mets:FLocat LOCTYPE="URL" |
4635 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000051.jpg" |
4636 | - /> |
4637 | - </mets:file> |
4638 | - <mets:file ID="ex19__FILE51_DEF" MIMETYPE="image/jpeg"> |
4639 | - <mets:FLocat LOCTYPE="URL" |
4640 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000052.jpg" |
4641 | - /> |
4642 | - </mets:file> |
4643 | - <mets:file ID="ex19__FILE52_DEF" MIMETYPE="image/jpeg"> |
4644 | - <mets:FLocat LOCTYPE="URL" |
4645 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000053.jpg" |
4646 | - /> |
4647 | - </mets:file> |
4648 | - <mets:file ID="ex19__FILE53_DEF" MIMETYPE="image/jpeg"> |
4649 | - <mets:FLocat LOCTYPE="URL" |
4650 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000054.jpg" |
4651 | - /> |
4652 | - </mets:file> |
4653 | - <mets:file ID="ex19__FILE54_DEF" MIMETYPE="image/jpeg"> |
4654 | - <mets:FLocat LOCTYPE="URL" |
4655 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000055.jpg" |
4656 | - /> |
4657 | - </mets:file> |
4658 | - <mets:file ID="ex19__FILE55_DEF" MIMETYPE="image/jpeg"> |
4659 | - <mets:FLocat LOCTYPE="URL" |
4660 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000056.jpg" |
4661 | - /> |
4662 | - </mets:file> |
4663 | - <mets:file ID="ex19__FILE56_DEF" MIMETYPE="image/jpeg"> |
4664 | - <mets:FLocat LOCTYPE="URL" |
4665 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000057.jpg" |
4666 | - /> |
4667 | - </mets:file> |
4668 | - <mets:file ID="ex19__FILE57_DEF" MIMETYPE="image/jpeg"> |
4669 | - <mets:FLocat LOCTYPE="URL" |
4670 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000058.jpg" |
4671 | - /> |
4672 | - </mets:file> |
4673 | - <mets:file ID="ex19__FILE58_DEF" MIMETYPE="image/jpeg"> |
4674 | - <mets:FLocat LOCTYPE="URL" |
4675 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000059.jpg" |
4676 | - /> |
4677 | - </mets:file> |
4678 | - <mets:file ID="ex19__FILE59_DEF" MIMETYPE="image/jpeg"> |
4679 | - <mets:FLocat LOCTYPE="URL" |
4680 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000060.jpg" |
4681 | - /> |
4682 | - </mets:file> |
4683 | - <mets:file ID="ex19__FILE60_DEF" MIMETYPE="image/jpeg"> |
4684 | - <mets:FLocat LOCTYPE="URL" |
4685 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000061.jpg" |
4686 | - /> |
4687 | - </mets:file> |
4688 | - <mets:file ID="ex19__FILE61_DEF" MIMETYPE="image/jpeg"> |
4689 | - <mets:FLocat LOCTYPE="URL" |
4690 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000062.jpg" |
4691 | - /> |
4692 | - </mets:file> |
4693 | - <mets:file ID="ex19__FILE62_DEF" MIMETYPE="image/jpeg"> |
4694 | - <mets:FLocat LOCTYPE="URL" |
4695 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000063.jpg" |
4696 | - /> |
4697 | - </mets:file> |
4698 | - <mets:file ID="ex19__FILE63_DEF" MIMETYPE="image/jpeg"> |
4699 | - <mets:FLocat LOCTYPE="URL" |
4700 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000064.jpg" |
4701 | - /> |
4702 | - </mets:file> |
4703 | - <mets:file ID="ex19__FILE64_DEF" MIMETYPE="image/jpeg"> |
4704 | - <mets:FLocat LOCTYPE="URL" |
4705 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000065.jpg" |
4706 | - /> |
4707 | - </mets:file> |
4708 | - <mets:file ID="ex19__FILE65_DEF" MIMETYPE="image/jpeg"> |
4709 | - <mets:FLocat LOCTYPE="URL" |
4710 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000066.jpg" |
4711 | - /> |
4712 | - </mets:file> |
4713 | - <mets:file ID="ex19__FILE66_DEF" MIMETYPE="image/jpeg"> |
4714 | - <mets:FLocat LOCTYPE="URL" |
4715 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000067.jpg" |
4716 | - /> |
4717 | - </mets:file> |
4718 | - <mets:file ID="ex19__FILE67_DEF" MIMETYPE="image/jpeg"> |
4719 | - <mets:FLocat LOCTYPE="URL" |
4720 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000068.jpg" |
4721 | - /> |
4722 | - </mets:file> |
4723 | - <mets:file ID="ex19__FILE68_DEF" MIMETYPE="image/jpeg"> |
4724 | - <mets:FLocat LOCTYPE="URL" |
4725 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000069.jpg" |
4726 | - /> |
4727 | - </mets:file> |
4728 | - <mets:file ID="ex19__FILE69_DEF" MIMETYPE="image/jpeg"> |
4729 | - <mets:FLocat LOCTYPE="URL" |
4730 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000070.jpg" |
4731 | - /> |
4732 | - </mets:file> |
4733 | - <mets:file ID="ex19__FILE70_DEF" MIMETYPE="image/jpeg"> |
4734 | - <mets:FLocat LOCTYPE="URL" |
4735 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000071.jpg" |
4736 | - /> |
4737 | - </mets:file> |
4738 | - <mets:file ID="ex19__FILE71_DEF" MIMETYPE="image/jpeg"> |
4739 | - <mets:FLocat LOCTYPE="URL" |
4740 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000072.jpg" |
4741 | - /> |
4742 | - </mets:file> |
4743 | - <mets:file ID="ex19__FILE72_DEF" MIMETYPE="image/jpeg"> |
4744 | - <mets:FLocat LOCTYPE="URL" |
4745 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000073.jpg" |
4746 | - /> |
4747 | - </mets:file> |
4748 | - <mets:file ID="ex19__FILE73_DEF" MIMETYPE="image/jpeg"> |
4749 | - <mets:FLocat LOCTYPE="URL" |
4750 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000074.jpg" |
4751 | - /> |
4752 | - </mets:file> |
4753 | - <mets:file ID="ex19__FILE74_DEF" MIMETYPE="image/jpeg"> |
4754 | - <mets:FLocat LOCTYPE="URL" |
4755 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000075.jpg" |
4756 | - /> |
4757 | - </mets:file> |
4758 | - <mets:file ID="ex19__FILE75_DEF" MIMETYPE="image/jpeg"> |
4759 | - <mets:FLocat LOCTYPE="URL" |
4760 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000076.jpg" |
4761 | - /> |
4762 | - </mets:file> |
4763 | - <mets:file ID="ex19__FILE76_DEF" MIMETYPE="image/jpeg"> |
4764 | - <mets:FLocat LOCTYPE="URL" |
4765 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000077.jpg" |
4766 | - /> |
4767 | - </mets:file> |
4768 | - <mets:file ID="ex19__FILE77_DEF" MIMETYPE="image/jpeg"> |
4769 | - <mets:FLocat LOCTYPE="URL" |
4770 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/800/0/00000078.jpg" |
4771 | - /> |
4772 | - </mets:file> |
4773 | - </mets:fileGrp> |
4774 | - <mets:fileGrp USE="MAX"> |
4775 | - <mets:file ID="ex19__FILE00_MAX" MIMETYPE="image/jpeg"> |
4776 | - <mets:FLocat LOCTYPE="URL" |
4777 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000001.jpg" |
4778 | - /> |
4779 | - </mets:file> |
4780 | - <mets:file ID="ex19__FILE01_MAX" MIMETYPE="image/jpeg"> |
4781 | - <mets:FLocat LOCTYPE="URL" |
4782 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000002.jpg" |
4783 | - /> |
4784 | - </mets:file> |
4785 | - <mets:file ID="ex19__FILE02_MAX" MIMETYPE="image/jpeg"> |
4786 | - <mets:FLocat LOCTYPE="URL" |
4787 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000003.jpg" |
4788 | - /> |
4789 | - </mets:file> |
4790 | - <mets:file ID="ex19__FILE03_MAX" MIMETYPE="image/jpeg"> |
4791 | - <mets:FLocat LOCTYPE="URL" |
4792 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000004.jpg" |
4793 | - /> |
4794 | - </mets:file> |
4795 | - <mets:file ID="ex19__FILE04_MAX" MIMETYPE="image/jpeg"> |
4796 | - <mets:FLocat LOCTYPE="URL" |
4797 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000005.jpg" |
4798 | - /> |
4799 | - </mets:file> |
4800 | - <mets:file ID="ex19__FILE05_MAX" MIMETYPE="image/jpeg"> |
4801 | - <mets:FLocat LOCTYPE="URL" |
4802 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000006.jpg" |
4803 | - /> |
4804 | - </mets:file> |
4805 | - <mets:file ID="ex19__FILE06_MAX" MIMETYPE="image/jpeg"> |
4806 | - <mets:FLocat LOCTYPE="URL" |
4807 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000007.jpg" |
4808 | - /> |
4809 | - </mets:file> |
4810 | - <mets:file ID="ex19__FILE07_MAX" MIMETYPE="image/jpeg"> |
4811 | - <mets:FLocat LOCTYPE="URL" |
4812 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000008.jpg" |
4813 | - /> |
4814 | - </mets:file> |
4815 | - <mets:file ID="ex19__FILE08_MAX" MIMETYPE="image/jpeg"> |
4816 | - <mets:FLocat LOCTYPE="URL" |
4817 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000009.jpg" |
4818 | - /> |
4819 | - </mets:file> |
4820 | - <mets:file ID="ex19__FILE09_MAX" MIMETYPE="image/jpeg"> |
4821 | - <mets:FLocat LOCTYPE="URL" |
4822 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000010.jpg" |
4823 | - /> |
4824 | - </mets:file> |
4825 | - <mets:file ID="ex19__FILE10_MAX" MIMETYPE="image/jpeg"> |
4826 | - <mets:FLocat LOCTYPE="URL" |
4827 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000011.jpg" |
4828 | - /> |
4829 | - </mets:file> |
4830 | - <mets:file ID="ex19__FILE11_MAX" MIMETYPE="image/jpeg"> |
4831 | - <mets:FLocat LOCTYPE="URL" |
4832 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000012.jpg" |
4833 | - /> |
4834 | - </mets:file> |
4835 | - <mets:file ID="ex19__FILE12_MAX" MIMETYPE="image/jpeg"> |
4836 | - <mets:FLocat LOCTYPE="URL" |
4837 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000013.jpg" |
4838 | - /> |
4839 | - </mets:file> |
4840 | - <mets:file ID="ex19__FILE13_MAX" MIMETYPE="image/jpeg"> |
4841 | - <mets:FLocat LOCTYPE="URL" |
4842 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000014.jpg" |
4843 | - /> |
4844 | - </mets:file> |
4845 | - <mets:file ID="ex19__FILE14_MAX" MIMETYPE="image/jpeg"> |
4846 | - <mets:FLocat LOCTYPE="URL" |
4847 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000015.jpg" |
4848 | - /> |
4849 | - </mets:file> |
4850 | - <mets:file ID="ex19__FILE15_MAX" MIMETYPE="image/jpeg"> |
4851 | - <mets:FLocat LOCTYPE="URL" |
4852 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000016.jpg" |
4853 | - /> |
4854 | - </mets:file> |
4855 | - <mets:file ID="ex19__FILE16_MAX" MIMETYPE="image/jpeg"> |
4856 | - <mets:FLocat LOCTYPE="URL" |
4857 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000017.jpg" |
4858 | - /> |
4859 | - </mets:file> |
4860 | - <mets:file ID="ex19__FILE17_MAX" MIMETYPE="image/jpeg"> |
4861 | - <mets:FLocat LOCTYPE="URL" |
4862 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000018.jpg" |
4863 | - /> |
4864 | - </mets:file> |
4865 | - <mets:file ID="ex19__FILE18_MAX" MIMETYPE="image/jpeg"> |
4866 | - <mets:FLocat LOCTYPE="URL" |
4867 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000019.jpg" |
4868 | - /> |
4869 | - </mets:file> |
4870 | - <mets:file ID="ex19__FILE19_MAX" MIMETYPE="image/jpeg"> |
4871 | - <mets:FLocat LOCTYPE="URL" |
4872 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000020.jpg" |
4873 | - /> |
4874 | - </mets:file> |
4875 | - <mets:file ID="ex19__FILE20_MAX" MIMETYPE="image/jpeg"> |
4876 | - <mets:FLocat LOCTYPE="URL" |
4877 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000021.jpg" |
4878 | - /> |
4879 | - </mets:file> |
4880 | - <mets:file ID="ex19__FILE21_MAX" MIMETYPE="image/jpeg"> |
4881 | - <mets:FLocat LOCTYPE="URL" |
4882 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000022.jpg" |
4883 | - /> |
4884 | - </mets:file> |
4885 | - <mets:file ID="ex19__FILE22_MAX" MIMETYPE="image/jpeg"> |
4886 | - <mets:FLocat LOCTYPE="URL" |
4887 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000023.jpg" |
4888 | - /> |
4889 | - </mets:file> |
4890 | - <mets:file ID="ex19__FILE23_MAX" MIMETYPE="image/jpeg"> |
4891 | - <mets:FLocat LOCTYPE="URL" |
4892 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000024.jpg" |
4893 | - /> |
4894 | - </mets:file> |
4895 | - <mets:file ID="ex19__FILE24_MAX" MIMETYPE="image/jpeg"> |
4896 | - <mets:FLocat LOCTYPE="URL" |
4897 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000025.jpg" |
4898 | - /> |
4899 | - </mets:file> |
4900 | - <mets:file ID="ex19__FILE25_MAX" MIMETYPE="image/jpeg"> |
4901 | - <mets:FLocat LOCTYPE="URL" |
4902 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000026.jpg" |
4903 | - /> |
4904 | - </mets:file> |
4905 | - <mets:file ID="ex19__FILE26_MAX" MIMETYPE="image/jpeg"> |
4906 | - <mets:FLocat LOCTYPE="URL" |
4907 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000027.jpg" |
4908 | - /> |
4909 | - </mets:file> |
4910 | - <mets:file ID="ex19__FILE27_MAX" MIMETYPE="image/jpeg"> |
4911 | - <mets:FLocat LOCTYPE="URL" |
4912 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000028.jpg" |
4913 | - /> |
4914 | - </mets:file> |
4915 | - <mets:file ID="ex19__FILE28_MAX" MIMETYPE="image/jpeg"> |
4916 | - <mets:FLocat LOCTYPE="URL" |
4917 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000029.jpg" |
4918 | - /> |
4919 | - </mets:file> |
4920 | - <mets:file ID="ex19__FILE29_MAX" MIMETYPE="image/jpeg"> |
4921 | - <mets:FLocat LOCTYPE="URL" |
4922 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000030.jpg" |
4923 | - /> |
4924 | - </mets:file> |
4925 | - <mets:file ID="ex19__FILE30_MAX" MIMETYPE="image/jpeg"> |
4926 | - <mets:FLocat LOCTYPE="URL" |
4927 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000031.jpg" |
4928 | - /> |
4929 | - </mets:file> |
4930 | - <mets:file ID="ex19__FILE31_MAX" MIMETYPE="image/jpeg"> |
4931 | - <mets:FLocat LOCTYPE="URL" |
4932 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000032.jpg" |
4933 | - /> |
4934 | - </mets:file> |
4935 | - <mets:file ID="ex19__FILE32_MAX" MIMETYPE="image/jpeg"> |
4936 | - <mets:FLocat LOCTYPE="URL" |
4937 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000033.jpg" |
4938 | - /> |
4939 | - </mets:file> |
4940 | - <mets:file ID="ex19__FILE33_MAX" MIMETYPE="image/jpeg"> |
4941 | - <mets:FLocat LOCTYPE="URL" |
4942 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000034.jpg" |
4943 | - /> |
4944 | - </mets:file> |
4945 | - <mets:file ID="ex19__FILE34_MAX" MIMETYPE="image/jpeg"> |
4946 | - <mets:FLocat LOCTYPE="URL" |
4947 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000035.jpg" |
4948 | - /> |
4949 | - </mets:file> |
4950 | - <mets:file ID="ex19__FILE35_MAX" MIMETYPE="image/jpeg"> |
4951 | - <mets:FLocat LOCTYPE="URL" |
4952 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000036.jpg" |
4953 | - /> |
4954 | - </mets:file> |
4955 | - <mets:file ID="ex19__FILE36_MAX" MIMETYPE="image/jpeg"> |
4956 | - <mets:FLocat LOCTYPE="URL" |
4957 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000037.jpg" |
4958 | - /> |
4959 | - </mets:file> |
4960 | - <mets:file ID="ex19__FILE37_MAX" MIMETYPE="image/jpeg"> |
4961 | - <mets:FLocat LOCTYPE="URL" |
4962 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000038.jpg" |
4963 | - /> |
4964 | - </mets:file> |
4965 | - <mets:file ID="ex19__FILE38_MAX" MIMETYPE="image/jpeg"> |
4966 | - <mets:FLocat LOCTYPE="URL" |
4967 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000039.jpg" |
4968 | - /> |
4969 | - </mets:file> |
4970 | - <mets:file ID="ex19__FILE39_MAX" MIMETYPE="image/jpeg"> |
4971 | - <mets:FLocat LOCTYPE="URL" |
4972 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000040.jpg" |
4973 | - /> |
4974 | - </mets:file> |
4975 | - <mets:file ID="ex19__FILE40_MAX" MIMETYPE="image/jpeg"> |
4976 | - <mets:FLocat LOCTYPE="URL" |
4977 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000041.jpg" |
4978 | - /> |
4979 | - </mets:file> |
4980 | - <mets:file ID="ex19__FILE41_MAX" MIMETYPE="image/jpeg"> |
4981 | - <mets:FLocat LOCTYPE="URL" |
4982 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000042.jpg" |
4983 | - /> |
4984 | - </mets:file> |
4985 | - <mets:file ID="ex19__FILE42_MAX" MIMETYPE="image/jpeg"> |
4986 | - <mets:FLocat LOCTYPE="URL" |
4987 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000043.jpg" |
4988 | - /> |
4989 | - </mets:file> |
4990 | - <mets:file ID="ex19__FILE43_MAX" MIMETYPE="image/jpeg"> |
4991 | - <mets:FLocat LOCTYPE="URL" |
4992 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000044.jpg" |
4993 | - /> |
4994 | - </mets:file> |
4995 | - <mets:file ID="ex19__FILE44_MAX" MIMETYPE="image/jpeg"> |
4996 | - <mets:FLocat LOCTYPE="URL" |
4997 | - xlink:href="http://gdz-srv1.sub.uni-goettingen.de/content/PPN394930762_0001/1000/0/00000045.jpg" |
4998 | - /> |
4999 | - </mets:file> |
5000 | - <mets:file ID="ex19__FILE45_MAX" MIMETYPE="image/jpeg"> |
The diff has been truncated for viewing.