ILIAS  release_5-1 Revision 5.0.0-5477-g43f3e3fab5f
ilMDSaxParser Class Reference
+ Inheritance diagram for ilMDSaxParser:
+ Collaboration diagram for ilMDSaxParser:

Public Member Functions

 ilMDSaxParser ($a_xml_file='')
 Constructor. More...
 
 enableMDParsing ($a_status)
 
 getMDParsingStatus ()
 
 setMDObject (&$md)
 
getMDObject ()
 
 inMetaData ()
 
 setHandlers ($a_xml_parser)
 set event handlers More...
 
 handlerBeginTag ($a_xml_parser, $a_name, $a_attribs)
 handler for begin of element More...
 
 handlerEndTag ($a_xml_parser, $a_name)
 handler for end of element More...
 
 handlerCharacterData ($a_xml_parser, $a_data)
 handler for character data More...
 
 __getCharacterData ()
 
 __pushParent (&$md_obj)
 
__popParent ()
 
__getParent ()
 
 ilMDSaxParser ($a_xml_file='')
 Constructor. More...
 
 setMDObject (&$md)
 
 inMetaData ()
 
 handlerBeginTag ($a_xml_parser, $a_name, $a_attribs)
 handler for begin of element More...
 
 handlerEndTag ($a_xml_parser, $a_name)
 handler for end of element More...
 
 handlerCharacterData ($a_xml_parser, $a_data)
 handler for character data More...
 
 __getCharacterData ()
 
 __pushParent (&$md_obj)
 
__popParent ()
 
__getParent ()
 
- Public Member Functions inherited from ilSaxParser
 ilSaxParser ($a_xml_file='', $throwException=false)
 Constructor setup ILIAS global object @access public. More...
 
 setXMLContent ($a_xml_content)
 
 getXMLContent ()
 
 getInputType ()
 
 startParsing ()
 stores xml data in array More...
 
 createParser ()
 create parser More...
 
 setOptions ($a_xml_parser)
 set parser options More...
 
 setHandlers ($a_xml_parser)
 set event handler should be overwritten by inherited class @access private More...
 
 openXMLFile ()
 open xml file More...
 
 parse ($a_xml_parser, $a_fp=null)
 parse xml file More...
 
 freeParser ($a_xml_parser)
 free xml parser handle More...
 
 setThrowException ($throwException)
 set error handling More...
 
- Public Member Functions inherited from PEAR
 PEAR ($error_class=null)
 Constructor. More...
 
 _PEAR ()
 Destructor (the emulated type of...). More...
 
getStaticProperty ($class, $var)
 If you have a class that's mostly/entirely static, and you need static properties, you can use this method to simulate them. More...
 
 registerShutdownFunc ($func, $args=array())
 Use this function to register a shutdown method for static classes. More...
 
 isError ($data, $code=null)
 Tell whether a value is a PEAR error. More...
 
 setErrorHandling ($mode=null, $options=null)
 Sets how errors generated by this object should be handled. More...
 
 expectError ($code=' *')
 This method is used to tell which errors you expect to get. More...
 
 popExpect ()
 This method pops one element off the expected error codes stack. More...
 
 _checkDelExpect ($error_code)
 This method checks unsets an error code if available. More...
 
 delExpect ($error_code)
 This method deletes all occurences of the specified element from the expected error codes stack. More...
 
raiseError ($message=null, $code=null, $mode=null, $options=null, $userinfo=null, $error_class=null, $skipmsg=false)
 This method is a wrapper that returns an instance of the configured error class with this object's default error handling applied. More...
 
throwError ($message=null, $code=null, $userinfo=null)
 Simpler form of raiseError with fewer options. More...
 
 staticPushErrorHandling ($mode, $options=null)
 
 staticPopErrorHandling ()
 
 pushErrorHandling ($mode, $options=null)
 Push a new error handler on top of the error handler options stack. More...
 
 popErrorHandling ()
 Pop the last error handler used. More...
 
 loadExtension ($ext)
 OS independant PHP extension load. More...
 

Data Fields

 $md_in_md = false
 
 $md_chr_data = ''
 
 $md_cur_el = null
 
 $md_parsing_enabled = null
 
 $md = null
 
 $md_gen
 
- Data Fields inherited from ilSaxParser
 $input_type = null
 
 $xml_content = ''
 
 $ilias
 
 $lng
 
 $xml_file
 
 $throwException = false
 
- Data Fields inherited from PEAR
 $_debug = false
 
 $_default_error_mode = null
 
 $_default_error_options = null
 
 $_default_error_handler = ''
 
 $_error_class = 'PEAR_Error'
 
 $_expected_errors = array()
 

Additional Inherited Members

- Protected Member Functions inherited from ilSaxParser
 handleError ($message, $code)
 use given error handler to handle error message or internal ilias error message handle More...
 

Detailed Description

Definition at line 39 of file class.ilMDSaxParser.php.

Member Function Documentation

◆ __getCharacterData() [1/2]

ilMDSaxParser::__getCharacterData ( )

Definition at line 668 of file class.ilMDSaxParser.php.

669 {
670 return trim($this->md_chr_data);
671 }

Referenced by ilSCORM13MDImporter\handlerEndTag(), and handlerEndTag().

+ Here is the caller graph for this function:

◆ __getCharacterData() [2/2]

ilMDSaxParser::__getCharacterData ( )

Definition at line 618 of file class.ilMDSaxParser.php.

619 {
620 return trim($this->md_chr_data);
621 }

◆ __getParent() [1/2]

& ilMDSaxParser::__getParent ( )

Definition at line 688 of file class.ilMDSaxParser.php.

689 {
690 return $this->md_parent[count($this->md_parent) - 1];
691 }

Referenced by ilSCORM13MDImporter\handlerBeginTag(), handlerBeginTag(), ilMDXMLCopier\handlerBeginTag(), ilSCORM13MDImporter\handlerEndTag(), handlerEndTag(), and ilMDXMLCopier\handlerEndTag().

+ Here is the caller graph for this function:

◆ __getParent() [2/2]

& ilMDSaxParser::__getParent ( )

Definition at line 638 of file class.ilMDSaxParser.php.

639 {
640 return $this->md_parent[count($this->md_parent) - 1];
641 }

◆ __popParent() [1/2]

& ilMDSaxParser::__popParent ( )

Definition at line 682 of file class.ilMDSaxParser.php.

683 {
684 $class = array_pop($this->md_parent);
685 unset($class);
686 #echo '<br />DELETE '.get_class($class);
687 }

Referenced by ilSCORM13MDImporter\handlerEndTag(), handlerEndTag(), and ilMDXMLCopier\handlerEndTag().

+ Here is the caller graph for this function:

◆ __popParent() [2/2]

& ilMDSaxParser::__popParent ( )

Definition at line 632 of file class.ilMDSaxParser.php.

633 {
634 $class =& array_pop($this->md_parent);
635 unset($class);
636 #echo '<br />Popped '.get_class($class);
637 }

◆ __pushParent() [1/2]

ilMDSaxParser::__pushParent ( $md_obj)

Definition at line 673 of file class.ilMDSaxParser.php.

674 {
675 $this->md_parent[] =& $md_obj;
676 #echo '<br />';
677 foreach($this->md_parent as $class)
678 {
679 #echo get_class($class).' -> ';
680 }
681 }

Referenced by ilSCORM13MDImporter\handlerBeginTag(), handlerBeginTag(), and ilMDXMLCopier\handlerBeginTag().

+ Here is the caller graph for this function:

◆ __pushParent() [2/2]

ilMDSaxParser::__pushParent ( $md_obj)

Definition at line 623 of file class.ilMDSaxParser.php.

624 {
625 $this->md_parent[] =& $md_obj;
626 #echo '<br />';
627 foreach($this->md_parent as $class)
628 {
629 #echo get_class($class).' -> ';
630 }
631 }

◆ enableMDParsing()

ilMDSaxParser::enableMDParsing (   $a_status)

Definition at line 77 of file class.ilMDSaxParser.php.

78 {
79 $this->md_parsing_enabled = (bool) $a_status;
80 }

Referenced by ilContObjParser\handlerBeginTag(), and ilContObjParser\handlerEndTag().

+ Here is the caller graph for this function:

◆ getMDObject()

& ilMDSaxParser::getMDObject ( )

Definition at line 90 of file class.ilMDSaxParser.php.

91 {
92 return is_object($this->md) ? $this->md : false;
93 }

Referenced by ilSCORM13MDImporter\import().

+ Here is the caller graph for this function:

◆ getMDParsingStatus()

ilMDSaxParser::getMDParsingStatus ( )

Definition at line 81 of file class.ilMDSaxParser.php.

82 {
83 return (bool) $this->md_parsing_enabled;
84 }

References $md_parsing_enabled.

Referenced by ilSCORM13MDImporter\handlerBeginTag(), handlerBeginTag(), handlerCharacterData(), ilSCORM13MDImporter\handlerEndTag(), and handlerEndTag().

+ Here is the caller graph for this function:

◆ handlerBeginTag() [1/2]

ilMDSaxParser::handlerBeginTag (   $a_xml_parser,
  $a_name,
  $a_attribs 
)

handler for begin of element

Reimplemented in ilCourseXMLParser, ilContObjParser, ilSCORM13MDImporter, ilWebLinkXmlParser, ilAdvancedMDParser, ilMDXMLCopier, and ilMDXMLParser.

Definition at line 118 of file class.ilMDSaxParser.php.

119 {
120 include_once 'Services/MetaData/classes/class.ilMDLanguageItem.php';
121
122 if(!$this->getMDParsingStatus())
123 {
124 return;
125 }
126
127 switch($a_name)
128 {
129 case 'MetaData':
130 $this->md_in_md = true;
131 $this->__pushParent($this->md);
132 break;
133
134 case 'General':
135 $this->md_gen =& $this->md->addGeneral();
136 $this->md_gen->setStructure($a_attribs['Structure']);
137 $this->md_gen->save();
138 $this->__pushParent($this->md_gen);
139 break;
140
141 case 'Identifier':
142 $par =& $this->__getParent();
143 $this->md_ide =& $par->addIdentifier();
144 $this->md_ide->setCatalog($a_attribs['Catalog']);
145 $this->md_ide->setEntry($a_attribs['Entry']);
146 $this->md_ide->save();
147 $this->__pushParent($this->md_ide);
148 break;
149
150 case 'Title':
151 $par =& $this->__getParent();
152 $par->setTitleLanguage(new ilMDLanguageItem($a_attribs['Language']));
153 break;
154
155 case 'Language':
156 $par =& $this->__getParent();
157 $this->md_lan =& $par->addLanguage();
158 $this->md_lan->setLanguage(new ilMDLanguageItem($a_attribs['Language']));
159 $this->md_lan->save();
160 $this->__pushParent($this->md_lan);
161 break;
162
163 case 'Description':
164 $par =& $this->__getParent();
165
166 if(strtolower(get_class($par)) == 'ilmdrights' or
167 strtolower(get_class($par)) == 'ilmdannotation' or
168 strtolower(get_class($par)) == 'ilmdclassification')
169 {
170 $par->setDescriptionLanguage(new ilMDLanguageItem($a_attribs['Language']));
171 break;
172 }
173 else
174 {
175 $this->md_des =& $par->addDescription();
176 $this->md_des->setDescriptionLanguage(new ilMDLanguageItem($a_attribs['Language']));
177 $this->md_des->save();
178 $this->__pushParent($this->md_des);
179 break;
180 }
181
182 case 'Keyword':
183 $par =& $this->__getParent();
184 $this->md_key =& $par->addKeyword();
185 $this->md_key->setKeywordLanguage(new ilMDLanguageItem($a_attribs['Language']));
186 $this->md_key->save();
187 $this->__pushParent($this->md_key);
188 break;
189
190 case 'Coverage':
191 $par =& $this->__getParent();
192 $par->setCoverageLanguage(new ilMDLanguageItem($a_attribs['Language']));
193 break;
194
195 case 'Lifecycle':
196 $par =& $this->__getParent();
197 $this->md_lif =& $par->addLifecycle();
198 $this->md_lif->setStatus($a_attribs['Status']);
199 $this->md_lif->save();
200 $this->__pushParent($this->md_lif);
201 break;
202
203 case 'Version':
204 $par =& $this->__getParent();
205 $par->setVersionLanguage(new ilMDLanguageItem($a_attribs['Language']));
206 break;
207
208 case 'Contribute':
209 $par =& $this->__getParent();
210 $this->md_con =& $par->addContribute();
211 $this->md_con->setRole($a_attribs['Role']);
212 $this->md_con->save();
213 $this->__pushParent($this->md_con);
214 break;
215
216 case 'Entity':
217 $par =& $this->__getParent();
218
219 if(strtolower(get_class($par)) == 'ilmdcontribute')
220 {
221 $this->md_ent =& $par->addEntity();
222 $this->md_ent->save();
223 $this->__pushParent($this->md_ent);
224 break;
225 }
226 else
227 {
228 // single element in 'Annotation'
229 break;
230 }
231 case 'Date':
232 break;
233
234 case 'Meta-Metadata':
235 $par =& $this->__getParent();
236 $this->md_met =& $par->addMetaMetadata();
237 $this->md_met->setMetaDataScheme($a_attribs['MetadataScheme']);
238 $this->md_met->setLanguage(new ilMDLanguageItem($a_attribs['Language']));
239 $this->md_met->save();
240 $this->__pushParent($this->md_met);
241 break;
242
243 case 'Technical':
244 $par =& $this->__getParent();
245 $this->md_tec =& $par->addTechnical();
246 $this->md_tec->save();
247 $this->__pushParent($this->md_tec);
248 break;
249
250 case 'Format':
251 $par =& $this->__getParent();
252 $this->md_for =& $par->addFormat();
253 $this->md_for->save();
254 $this->__pushParent($this->md_for);
255 break;
256
257 case 'Size':
258 break;
259
260 case 'Location':
261 $par =& $this->__getParent();
262 $this->md_loc =& $par->addLocation();
263 $this->md_loc->setLocationType($a_attribs['Type']);
264 $this->md_loc->save();
265 $this->__pushParent($this->md_loc);
266 break;
267
268 case 'Requirement':
269 $par =& $this->__getParent();
270 $this->md_req =& $par->addRequirement();
271 $this->md_req->save();
272 $this->__pushParent($this->md_req);
273 break;
274
275 case 'OrComposite':
276 $par =& $this->__getParent();
277 $this->md_orc =& $par->addOrComposite();
278 $this->__pushParent($this->md_orc);
279 break;
280
281 case 'Type':
282 break;
283
284 case 'OperatingSystem':
285 $par =& $this->__getParent();
286 $par->setOperatingSystemName($a_attribs['Name']);
287 $par->setOperatingSystemMinimumVersion($a_attribs['MinimumVersion']);
288 $par->setOperatingSystemMaximumVersion($a_attribs['MaximumVersion']);
289 break;
290
291 case 'Browser':
292 $par =& $this->__getParent();
293 $par->setBrowserName($a_attribs['Name']);
294 $par->setBrowserMinimumVersion($a_attribs['MinimumVersion']);
295 $par->setBrowserMaximumVersion($a_attribs['MaximumVersion']);
296 break;
297
298 case 'InstallationRemarks':
299 $par =& $this->__getParent();
300 $par->setInstallationRemarksLanguage(new ilMDLanguageItem($a_attribs['Language']));
301 break;
302
303 case 'OtherPlatformRequirements':
304 $par =& $this->__getParent();
305 $par->setOtherPlatformRequirementsLanguage(new ilMDLanguageItem($a_attribs['Language']));
306 break;
307
308 case 'Duration':
309 break;
310
311 case 'Educational':
312 $par =& $this->__getParent();
313 $this->md_edu =& $par->addEducational();
314 $this->md_edu->setInteractivityType($a_attribs['InteractivityType']);
315 $this->md_edu->setLearningResourceType($a_attribs['LearningResourceType']);
316 $this->md_edu->setInteractivityLevel($a_attribs['InteractivityLevel']);
317 $this->md_edu->setSemanticDensity($a_attribs['SemanticDensity']);
318 $this->md_edu->setIntendedEndUserRole($a_attribs['IntendedEndUserRole']);
319 $this->md_edu->setContext($a_attribs['Context']);
320 $this->md_edu->setDifficulty($a_attribs['Difficulty']);
321 $this->md_edu->save();
322 $this->__pushParent($this->md_edu);
323 break;
324
325 case 'TypicalAgeRange':
326 $par =& $this->__getParent();
327 $this->md_typ =& $par->addTypicalAgeRange();
328 $this->md_typ->setTypicalAgeRangeLanguage(new ilMDLanguageItem($a_attribs['Language']));
329 $this->md_typ->save();
330 $this->__pushParent($this->md_typ);
331 break;
332
333 case 'TypicalLearningTime':
334 break;
335
336 case 'Rights':
337 $par =& $this->__getParent();
338 $this->md_rig =& $par->addRights();
339 $this->md_rig->setCosts($a_attribs['Cost']);
340 $this->md_rig->setCopyrightAndOtherRestrictions($a_attribs['CopyrightAndOtherRestrictions']);
341 $this->md_rig->save();
342 $this->__pushParent($this->md_rig);
343 break;
344
345 case 'Relation':
346 $par =& $this->__getParent();
347 $this->md_rel =& $par->addRelation();
348 $this->md_rel->setKind($a_attribs['Kind']);
349 $this->md_rel->save();
350 $this->__pushParent($this->md_rel);
351 break;
352
353 case 'Resource':
354 break;
355
356 case 'Identifier_':
357 $par =& $this->__getParent();
358 $this->md_ide_ =& $par->addIdentifier_();
359 $this->md_ide_->setCatalog($a_attribs['Catalog']);
360 $this->md_ide_->setEntry($a_attribs['Entry']);
361 $this->md_ide_->save();
362 $this->__pushParent($this->md_ide_);
363 break;
364
365 case 'Annotation':
366 $par =& $this->__getParent();
367 $this->md_ann =& $par->addAnnotation();
368 $this->md_ann->save();
369 $this->__pushParent($this->md_ann);
370 break;
371
372 case 'Classification':
373 $par =& $this->__getParent();
374 $this->md_cla =& $par->addClassification();
375 $this->md_cla->setPurpose($a_attribs['Purpose']);
376 $this->md_cla->save();
377 $this->__pushParent($this->md_cla);
378 break;
379
380 case 'TaxonPath':
381 $par =& $this->__getParent();
382 $this->md_taxp =& $par->addTaxonPath();
383 $this->md_taxp->save();
384 $this->__pushParent($this->md_taxp);
385 break;
386
387 case 'Source':
388 $par =& $this->__getParent();
389 $par->setSourceLanguage(new ilMDLanguageItem($a_attribs['Language']));
390 break;
391
392 case 'Taxon':
393 $par =& $this->__getParent();
394 $this->md_tax =& $par->addTaxon();
395 $this->md_tax->setTaxonLanguage(new ilMDLanguageItem($a_attribs['Language']));
396 $this->md_tax->setTaxonId($a_attribs['Id']);
397 $this->md_tax->save();
398 $this->__pushParent($this->md_tax);
399 break;
400 }
401 }

References __getParent(), __pushParent(), and getMDParsingStatus().

+ Here is the call graph for this function:

◆ handlerBeginTag() [2/2]

ilMDSaxParser::handlerBeginTag (   $a_xml_parser,
  $a_name,
  $a_attribs 
)

handler for begin of element

Reimplemented in ilCourseXMLParser, ilContObjParser, ilSCORM13MDImporter, ilWebLinkXmlParser, ilAdvancedMDParser, ilMDXMLCopier, and ilMDXMLParser.

Definition at line 83 of file class.ilMDSaxParser.php.

84 {
85 include_once 'Services/Migration/DBUpdate_426/classes/class.ilMDLanguageItem.php';
86
87 switch($a_name)
88 {
89 case 'MetaData':
90 $this->md_in_md = true;
91 $this->__pushParent($this->md);
92 break;
93
94 case 'General':
95 $this->md_gen =& $this->md->addGeneral();
96 $this->md_gen->setStructure($a_attribs['Structure']);
97 $this->md_gen->save();
98 $this->__pushParent($this->md_gen);
99 break;
100
101 case 'Identifier':
102 $par =& $this->__getParent();
103 $this->md_ide =& $par->addIdentifier();
104 $this->md_ide->setCatalog($a_attribs['Catalog']);
105 $this->md_ide->setEntry($a_attribs['Entry']);
106 $this->md_ide->save();
107 $this->__pushParent($this->md_ide);
108 break;
109
110 case 'Title':
111 $par =& $this->__getParent();
112 $par->setTitleLanguage(new ilMDLanguageItem($a_attribs['Language']));
113 break;
114
115 case 'Language':
116 $par =& $this->__getParent();
117 $this->md_lan =& $par->addLanguage();
118 $this->md_lan->setLanguage(new ilMDLanguageItem($a_attribs['Language']));
119 $this->md_lan->save();
120 $this->__pushParent($this->md_lan);
121 break;
122
123 case 'Description':
124 $par =& $this->__getParent();
125
126 if(strtolower(get_class($par)) == 'ilmdrights' or
127 strtolower(get_class($par)) == 'ilmdannotation' or
128 strtolower(get_class($par)) == 'ilmdclassification')
129 {
130 $par->setDescriptionLanguage(new ilMDLanguageItem($a_attribs['Language']));
131 break;
132 }
133 else
134 {
135 $this->md_des =& $par->addDescription();
136 $this->md_des->setDescriptionLanguage(new ilMDLanguageItem($a_attribs['Language']));
137 $this->md_des->save();
138 $this->__pushParent($this->md_des);
139 break;
140 }
141
142 case 'Keyword':
143 $par =& $this->__getParent();
144 $this->md_key =& $par->addKeyword();
145 $this->md_key->setKeywordLanguage(new ilMDLanguageItem($a_attribs['Language']));
146 $this->md_key->save();
147 $this->__pushParent($this->md_key);
148 break;
149
150 case 'Coverage':
151 $par =& $this->__getParent();
152 $par->setCoverageLanguage(new ilMDLanguageItem($a_attribs['Language']));
153 break;
154
155 case 'Lifecycle':
156 $par =& $this->__getParent();
157 $this->md_lif =& $par->addLifecycle();
158 $this->md_lif->setStatus($a_attribs['Status']);
159 $this->md_lif->save();
160 $this->__pushParent($this->md_lif);
161 break;
162
163 case 'Version':
164 $par =& $this->__getParent();
165 $par->setVersionLanguage(new ilMDLanguageItem($a_attribs['Language']));
166 break;
167
168 case 'Contribute':
169 $par =& $this->__getParent();
170 $this->md_con =& $par->addContribute();
171 $this->md_con->setRole($a_attribs['Role']);
172 $this->md_con->save();
173 $this->__pushParent($this->md_con);
174 break;
175
176 case 'Entity':
177 $par =& $this->__getParent();
178
179 if(strtolower(get_class($par)) == 'ilmdcontribute')
180 {
181 $this->md_ent =& $par->addEntity();
182 $this->md_ent->save();
183 $this->__pushParent($this->md_ent);
184 break;
185 }
186 else
187 {
188 // single element in 'Annotation'
189 break;
190 }
191 case 'Date':
192 break;
193
194 case 'Meta-Metadata':
195 $par =& $this->__getParent();
196 $this->md_met =& $par->addMetaMetadata();
197 $this->md_met->setMetaDataScheme($a_attribs['MetadataScheme']);
198 $this->md_met->setLanguage(new ilMDLanguageItem($a_attribs['Language']));
199 $this->md_met->save();
200 $this->__pushParent($this->md_met);
201 break;
202
203 case 'Technical':
204 $par =& $this->__getParent();
205 $this->md_tec =& $par->addTechnical();
206 $this->md_tec->save();
207 $this->__pushParent($this->md_tec);
208 break;
209
210 case 'Format':
211 $par =& $this->__getParent();
212 $this->md_for =& $par->addFormat();
213 $this->md_for->save();
214 $this->__pushParent($this->md_for);
215 break;
216
217 case 'Size':
218 break;
219
220 case 'Location':
221 $par =& $this->__getParent();
222 $this->md_loc =& $par->addLocation();
223 $this->md_loc->setLocationType($a_attribs['Type']);
224 $this->md_loc->save();
225 $this->__pushParent($this->md_loc);
226 break;
227
228 case 'Requirement':
229 $par =& $this->__getParent();
230 $this->md_req =& $par->addRequirement();
231 $this->md_req->save();
232 $this->__pushParent($this->md_req);
233 break;
234
235 case 'OrComposite':
236 $par =& $this->__getParent();
237 $this->md_orc =& $par->addOrComposite();
238 $this->__pushParent($this->md_orc);
239 break;
240
241 case 'Type':
242 break;
243
244 case 'OperatingSystem':
245 $par =& $this->__getParent();
246 $par->setOperatingSystemName($a_attribs['Name']);
247 $par->setOperatingSystemMinimumVersion($a_attribs['MinimumVersion']);
248 $par->setOperatingSystemMaximumVersion($a_attribs['MaximumVersion']);
249 break;
250
251 case 'Browser':
252 $par =& $this->__getParent();
253 $par->setBrowserName($a_attribs['Name']);
254 $par->setBrowserMinimumVersion($a_attribs['MinimumVersion']);
255 $par->setBrowserMaximumVersion($a_attribs['MaximumVersion']);
256 break;
257
258 case 'InstallationRemarks':
259 $par =& $this->__getParent();
260 $par->setInstallationRemarksLanguage(new ilMDLanguageItem($a_attribs['Language']));
261 break;
262
263 case 'OtherPlatformRequirements':
264 $par =& $this->__getParent();
265 $par->setOtherPlatformRequirementsLanguage(new ilMDLanguageItem($a_attribs['Language']));
266 break;
267
268 case 'Duration':
269 break;
270
271 case 'Educational':
272 $par =& $this->__getParent();
273 $this->md_edu =& $par->addEducational();
274 $this->md_edu->setInteractivityType($a_attribs['InteractivityType']);
275 $this->md_edu->setLearningResourceType($a_attribs['LearningResourceType']);
276 $this->md_edu->setInteractivityLevel($a_attribs['InteractivityLevel']);
277 $this->md_edu->setSemanticDensity($a_attribs['SemanticDensity']);
278 $this->md_edu->setIntendedEndUserRole($a_attribs['IntendedEndUserRole']);
279 $this->md_edu->setContext($a_attribs['Context']);
280 $this->md_edu->setDifficulty($a_attribs['Difficulty']);
281 $this->md_edu->save();
282 $this->__pushParent($this->md_edu);
283 break;
284
285 case 'TypicalAgeRange':
286 $par =& $this->__getParent();
287 $this->md_typ =& $par->addTypicalAgeRange();
288 $this->md_typ->setTypicalAgeRangeLanguage(new ilMDLanguageItem($a_attribs['Language']));
289 $this->md_typ->save();
290 $this->__pushParent($this->md_typ);
291 break;
292
293 case 'TypicalLearningTime':
294 break;
295
296 case 'Rights':
297 $par =& $this->__getParent();
298 $this->md_rig =& $par->addRights();
299 $this->md_rig->setCosts($a_attribs['Costs']);
300 $this->md_rig->setCopyrightAndOtherRestrictions($a_attribs['CopyrightAndOtherRestrictions']);
301 $this->md_rig->save();
302 $this->__pushParent($this->md_rig);
303 break;
304
305 case 'Relation':
306 $par =& $this->__getParent();
307 $this->md_rel =& $par->addRelation();
308 $this->md_rel->setKind($a_attribs['Kind']);
309 $this->md_rel->save();
310 $this->__pushParent($this->md_rel);
311 break;
312
313 case 'Resource':
314 break;
315
316 case 'Identifier_':
317 $par =& $this->__getParent();
318 $this->md_ide_ =& $par->addIdentifier_();
319 $this->md_ide_->setCatalog($a_attribs['Catalog']);
320 $this->md_ide_->setEntry($a_attribs['Entry']);
321 $this->md_ide_->save();
322 $this->__pushParent($this->md_ide_);
323 break;
324
325 case 'Annotation':
326 $par =& $this->__getParent();
327 $this->md_ann =& $par->addAnnotation();
328 $this->md_ann->save();
329 $this->__pushParent($this->md_ann);
330 break;
331
332 case 'Classification':
333 $par =& $this->__getParent();
334 $this->md_cla =& $par->addClassification();
335 $this->md_cla->setPurpose($a_attribs['Purpose']);
336 $this->md_cla->save();
337 $this->__pushParent($this->md_cla);
338 break;
339
340 case 'TaxonPath':
341 $par =& $this->__getParent();
342 $this->md_taxp =& $par->addTaxonPath();
343 $this->md_taxp->save();
344 $this->__pushParent($this->md_taxp);
345 break;
346
347 case 'Source':
348 $par =& $this->__getParent();
349 $par->setSourceLanguage(new ilMDLanguageItem($a_attribs['Language']));
350 break;
351
352 case 'Taxon':
353 $par =& $this->__getParent();
354 $this->md_tax =& $par->addTaxon();
355 $this->md_tax->setTaxonLanguage(new ilMDLanguageItem($a_attribs['Language']));
356 $this->md_tax->setTaxonId($a_attribs['Id']);
357 $this->md_tax->save();
358 $this->__pushParent($this->md_tax);
359 break;
360 }
361 }

References __getParent(), and __pushParent().

+ Here is the call graph for this function:

◆ handlerCharacterData() [1/2]

ilMDSaxParser::handlerCharacterData (   $a_xml_parser,
  $a_data 
)

handler for character data

Reimplemented in ilCourseXMLParser, ilContObjParser, ilWebLinkXmlParser, ilAdvancedMDParser, ilMDXMLCopier, and ilMDXMLParser.

Definition at line 649 of file class.ilMDSaxParser.php.

650 {
651 if(!$this->getMDParsingStatus())
652 {
653 return;
654 }
655
656 if ($this->inMetaData() and $a_data != "\n")
657 {
658 // Replace multiple tabs with one space
659 $a_data = preg_replace("/\t+/"," ",$a_data);
660
661 $this->md_chr_data .= $a_data;
662 }
663 }

References getMDParsingStatus(), and inMetaData().

+ Here is the call graph for this function:

◆ handlerCharacterData() [2/2]

ilMDSaxParser::handlerCharacterData (   $a_xml_parser,
  $a_data 
)

handler for character data

Reimplemented in ilCourseXMLParser, ilContObjParser, ilWebLinkXmlParser, ilAdvancedMDParser, ilMDXMLCopier, and ilMDXMLParser.

Definition at line 604 of file class.ilMDSaxParser.php.

605 {
606 if ($this->inMetaData() and $a_data != "\n")
607 {
608 // Replace multiple tabs with one space
609 $a_data = preg_replace("/\t+/"," ",$a_data);
610
611 $this->md_chr_data .= $a_data;
612 }
613 }

References inMetaData().

+ Here is the call graph for this function:

◆ handlerEndTag() [1/2]

ilMDSaxParser::handlerEndTag (   $a_xml_parser,
  $a_name 
)

handler for end of element

Reimplemented in ilCourseXMLParser, ilContObjParser, ilSCORM13MDImporter, ilWebLinkXmlParser, ilAdvancedMDParser, ilMDXMLCopier, and ilMDXMLParser.

Definition at line 406 of file class.ilMDSaxParser.php.

407 {
408 if(!$this->getMDParsingStatus())
409 {
410 return;
411 }
412
413 switch($a_name)
414 {
415 case 'MetaData':
416 $this->md_parent = array();
417 $this->md_in_md = false;
418 break;
419
420 case 'General':
421 $par =& $this->__getParent();
422 $par->update();
423 $this->__popParent();
424 break;
425
426 case 'Identifier':
427 $par =& $this->__getParent();
428 $par->update();
429 $this->__popParent();
430 break;
431
432 case 'Title':
433 $par =& $this->__getParent();
434 $par->setTitle($this->__getCharacterData());
435 break;
436
437 case 'Language':
438 $par =& $this->__getParent();
439 $par->update();
440 $this->__popParent();
441 break;
442
443 case 'Description':
444 $par =& $this->__getParent();
445 if(strtolower(get_class($par)) == 'ilmddescription')
446 {
447 $par->setDescription($this->__getCharacterData());
448 $par->update();
449 $this->__popParent();
450 break;
451 }
452 else
453 {
454 $par->setDescription($this->__getCharacterData());
455 break;
456 }
457
458 case 'Keyword':
459 $par =& $this->__getParent();
460 $par->setKeyword($this->__getCharacterData());
461 $par->update();
462 $this->__popParent();
463 break;
464
465 case 'Coverage':
466 $par =& $this->__getParent();
467 $par->setCoverage($this->__getCharacterData());
468 break;
469
470 case 'Lifecycle':
471 $par =& $this->__getParent();
472 $par->update();
473 $this->__popParent();
474 break;
475
476 case 'Version':
477 $par =& $this->__getParent();
478 $par->setVersion($this->__getCharacterData());
479 break;
480
481 case 'Contribute':
482 $par =& $this->__getParent();
483 $par->update();
484 $this->__popParent();
485 break;
486
487 case 'Entity':
488 $par =& $this->__getParent();
489
490 if(strtolower(get_class($par)) == 'ilmdentity')
491 {
492 $par->setEntity($this->__getCharacterData());
493 $par->update();
494 $this->__popParent();
495 }
496 else
497 {
498 // Single element in 'Annotation'
499 $par->setEntity($this->__getCharacterData());
500 }
501 break;
502
503 case 'Date':
504 $par =& $this->__getParent();
505 $par->setDate($this->__getCharacterData());
506 break;
507
508 case 'Meta-Metadata':
509 $par =& $this->__getParent();
510 $par->update();
511 $this->__popParent();
512 break;
513
514 case 'Technical':
515 $par =& $this->__getParent();
516 $par->update();
517 $this->__popParent();
518 break;
519
520 case 'Format':
521 $par =& $this->__getParent();
522 $par->setFormat($this->__getCharacterData());
523 $par->update();
524 $this->__popParent();
525 break;
526
527 case 'Size':
528 $par =& $this->__getParent();
529 $par->setSize($this->__getCharacterData());
530 break;
531
532 case 'Location':
533 $par =& $this->__getParent();
534 $par->setLocation($this->__getCharacterData());
535 $par->update();
536 $this->__popParent();
537 break;
538
539 case 'Requirement':
540 $par =& $this->__getParent();
541 $par->update();
542 $this->__popParent();
543 break;
544
545 case 'OrComposite':
546 $this->__popParent();
547 break;
548
549 case 'Type':
550 break;
551
552 case 'OperatingSystem':
553 break;
554
555 case 'Browser':
556 break;
557
558 case 'InstallationRemarks':
559 $par =& $this->__getParent();
560 $par->setInstallationRemarks($this->__getCharacterData());
561 break;
562
563 case 'OtherPlatformRequirements':
564 $par =& $this->__getParent();
565 $par->setOtherPlatformRequirements($this->__getCharacterData());
566 break;
567
568 case 'Duration':
569 $par =& $this->__getParent();
570 $par->setDuration($this->__getCharacterData());
571 break;
572
573 case 'Educational':
574 $par =& $this->__getParent();
575 $par->update();
576 $this->__popParent();
577 break;
578
579 case 'TypicalAgeRange':
580 $par =& $this->__getParent();
581 $par->setTypicalAgeRange($this->__getCharacterData());
582 $par->update();
583 $this->__popParent();
584 break;
585
586 case 'TypicalLearningTime':
587 $par =& $this->__getParent();
588 $par->setTypicalLearningTime($this->__getCharacterData());
589 break;
590
591 case 'Rights':
592 $par =& $this->__getParent();
593 $par->update();
594 $this->__popParent();
595 break;
596
597 case 'Relation':
598 $par =& $this->__getParent();
599 $par->update();
600 $this->__popParent();
601 break;
602
603 case 'Resource':
604 break;
605
606 case 'Identifier_':
607 $par =& $this->__getParent();
608 $par->update();
609 $this->__popParent();
610 break;
611
612 case 'Annotation':
613 $par =& $this->__getParent();
614 $par->update();
615 $this->__popParent();
616 break;
617
618 case 'Classification':
619 $par =& $this->__getParent();
620 $par->update();
621 $this->__popParent();
622 break;
623
624 case 'TaxonPath':
625 $par =& $this->__getParent();
626 $par->update();
627 $this->__popParent();
628 break;
629
630 case 'Taxon':
631 $par =& $this->__getParent();
632 $par->setTaxon($this->__getCharacterData());
633 $par->update();
634 $this->__popParent();
635 break;
636
637 case 'Source':
638 $par =& $this->__getParent();
639 $par->setSource($this->__getCharacterData());
640 break;
641
642 }
643 $this->md_chr_data = '';
644 }

References __getCharacterData(), __getParent(), __popParent(), and getMDParsingStatus().

+ Here is the call graph for this function:

◆ handlerEndTag() [2/2]

ilMDSaxParser::handlerEndTag (   $a_xml_parser,
  $a_name 
)

handler for end of element

Reimplemented in ilCourseXMLParser, ilContObjParser, ilSCORM13MDImporter, ilWebLinkXmlParser, ilAdvancedMDParser, ilMDXMLCopier, and ilMDXMLParser.

Definition at line 366 of file class.ilMDSaxParser.php.

367 {
368 switch($a_name)
369 {
370 case 'MetaData':
371 $this->md_parent = array();
372 $this->md_in_md = false;
373 break;
374
375 case 'General':
376 $par =& $this->__getParent();
377 $par->update();
378 $this->__popParent();
379 break;
380
381 case 'Identifier':
382 $par =& $this->__getParent();
383 $par->update();
384 $this->__popParent();
385 break;
386
387 case 'Title':
388 $par =& $this->__getParent();
389 $par->setTitle($this->__getCharacterData());
390 break;
391
392 case 'Language':
393 $par =& $this->__getParent();
394 $par->update();
395 $this->__popParent();
396 break;
397
398 case 'Description':
399 $par =& $this->__getParent();
400 if(strtolower(get_class($par)) == 'ilmddescription')
401 {
402 $par->setDescription($this->__getCharacterData());
403 $par->update();
404 $this->__popParent();
405 break;
406 }
407 else
408 {
409 $par->setDescription($this->__getCharacterData());
410 break;
411 }
412
413 case 'Keyword':
414 $par =& $this->__getParent();
415 $par->setKeyword($this->__getCharacterData());
416 $par->update();
417 $this->__popParent();
418 break;
419
420 case 'Coverage':
421 $par =& $this->__getParent();
422 $par->setCoverage($this->__getCharacterData());
423 break;
424
425 case 'Lifecycle':
426 $par =& $this->__getParent();
427 $par->update();
428 $this->__popParent();
429 break;
430
431 case 'Version':
432 $par =& $this->__getParent();
433 $par->setVersion($this->__getCharacterData());
434 break;
435
436 case 'Contribute':
437 $par =& $this->__getParent();
438 $par->update();
439 $this->__popParent();
440 break;
441
442 case 'Entity':
443 $par =& $this->__getParent();
444
445 if(strtolower(get_class($par)) == 'ilmdentity')
446 {
447 $par->setEntity($this->__getCharacterData());
448 $par->update();
449 $this->__popParent();
450 }
451 else
452 {
453 // Single element in 'Annotation'
454 $par->setEntity($this->__getCharacterData());
455 }
456 break;
457
458 case 'Date':
459 $par =& $this->__getParent();
460 $par->setDate($this->__getCharacterData());
461 break;
462
463 case 'Meta-Metadata':
464 $par =& $this->__getParent();
465 $par->update();
466 $this->__popParent();
467 break;
468
469 case 'Technical':
470 $par =& $this->__getParent();
471 $par->update();
472 $this->__popParent();
473 break;
474
475 case 'Format':
476 $par =& $this->__getParent();
477 $par->setFormat($this->__getCharacterData());
478 $par->update();
479 $this->__popParent();
480 break;
481
482 case 'Size':
483 $par =& $this->__getParent();
484 $par->setSize($this->__getCharacterData());
485 break;
486
487 case 'Location':
488 $par =& $this->__getParent();
489 $par->setLocation($this->__getCharacterData());
490 $par->update();
491 $this->__popParent();
492 break;
493
494 case 'Requirement':
495 $par =& $this->__getParent();
496 $par->update();
497 $this->__popParent();
498 break;
499
500 case 'OrComposite':
501 $this->__popParent();
502 break;
503
504 case 'Type':
505 break;
506
507 case 'OperatingSystem':
508 break;
509
510 case 'Browser':
511 break;
512
513 case 'InstallationRemarks':
514 $par =& $this->__getParent();
515 $par->setInstallationRemarks($this->__getCharacterData());
516 break;
517
518 case 'OtherPlatformRequirements':
519 $par =& $this->__getParent();
520 $par->setOtherPlatformRequirements($this->__getCharacterData());
521 break;
522
523 case 'Duration':
524 $par =& $this->__getParent();
525 $par->setDuration($this->__getCharacterData());
526 break;
527
528 case 'Educational':
529 $par =& $this->__getParent();
530 $par->update();
531 $this->__popParent();
532 break;
533
534 case 'TypicalAgeRange':
535 $par =& $this->__getParent();
536 $par->setTypicalAgeRange($this->__getCharacterData());
537 $par->update();
538 $this->__popParent();
539 break;
540
541 case 'TypicalLearningTime':
542 $par =& $this->__getParent();
543 $par->setTypicalLearningTime($this->__getCharacterData());
544 break;
545
546 case 'Rights':
547 $par =& $this->__getParent();
548 $par->update();
549 $this->__popParent();
550 break;
551
552 case 'Relation':
553 $par =& $this->__getParent();
554 $par->update();
555 $this->__popParent();
556 break;
557
558 case 'Resource':
559 break;
560
561 case 'Identifier_':
562 $par =& $this->__getParent();
563 $par->update();
564 $this->__popParent();
565 break;
566
567 case 'Annotation':
568 $par =& $this->__getParent();
569 $par->update();
570 $this->__popParent();
571 break;
572
573 case 'Classification':
574 $par =& $this->__getParent();
575 $par->update();
576 $this->__popParent();
577 break;
578
579 case 'TaxonPath':
580 $par =& $this->__getParent();
581 $par->update();
582 $this->__popParent();
583 break;
584
585 case 'Taxon':
586 $par =& $this->__getParent();
587 $par->setTaxon($this->__getCharacterData());
588 $par->update();
589 $this->__popParent();
590 break;
591
592 case 'Source':
593 $par =& $this->__getParent();
594 $par->setSource($this->__getCharacterData());
595 break;
596
597 }
598 $this->md_chr_data = '';
599 }

References __getCharacterData(), __getParent(), and __popParent().

+ Here is the call graph for this function:

◆ ilMDSaxParser() [1/2]

ilMDSaxParser::ilMDSaxParser (   $a_xml_file = '')

Constructor.

@access public

Definition at line 66 of file class.ilMDSaxParser.php.

67 {
68 global $lng, $tree;
69
70
71 // Enable parsing. E.g qpl' s will set this value to false
72 $this->md_parsing_enabled = true;
73
74 parent::ilSaxParser($a_xml_file);
75 }

References ilSaxParser\$lng.

◆ ilMDSaxParser() [2/2]

ilMDSaxParser::ilMDSaxParser (   $a_xml_file = '')

Constructor.

@access public

Definition at line 62 of file class.ilMDSaxParser.php.

63 {
64 global $lng, $tree;
65
66 parent::ilSaxParser($a_xml_file);
67 }

References ilSaxParser\$lng.

◆ inMetaData() [1/2]

ilMDSaxParser::inMetaData ( )

Definition at line 95 of file class.ilMDSaxParser.php.

96 {
97 return $this->md_in_md;
98 }

References $md_in_md.

Referenced by handlerCharacterData().

+ Here is the caller graph for this function:

◆ inMetaData() [2/2]

ilMDSaxParser::inMetaData ( )

Definition at line 74 of file class.ilMDSaxParser.php.

75 {
76 return $this->md_in_md;
77 }

References $md_in_md.

◆ setHandlers()

ilMDSaxParser::setHandlers (   $a_xml_parser)

set event handlers

Parameters
resourcereference to the xml parser @access private

Reimplemented from ilSaxParser.

Reimplemented in ilCourseXMLParser, ilContObjParser, ilWebLinkXmlParser, ilAdvancedMDParser, ilMDXMLCopier, and ilMDXMLParser.

Definition at line 106 of file class.ilMDSaxParser.php.

107 {
108 xml_set_object($a_xml_parser,$this);
109 xml_set_element_handler($a_xml_parser,'handlerBeginTag','handlerEndTag');
110 xml_set_character_data_handler($a_xml_parser,'handlerCharacterData');
111 }

◆ setMDObject() [1/2]

ilMDSaxParser::setMDObject ( $md)

Definition at line 86 of file class.ilMDSaxParser.php.

87 {
88 $this->md =& $md;
89 }

References $md.

Referenced by ilWebLinkXmlParser\__construct(), ilCourseXMLParser\ilCourseXMLParser(), ilMDXMLCopier\ilMDXMLCopier(), and ilMDXMLParser\ilMDXMLParser().

+ Here is the caller graph for this function:

◆ setMDObject() [2/2]

ilMDSaxParser::setMDObject ( $md)

Definition at line 69 of file class.ilMDSaxParser.php.

70 {
71 $this->md =& $md;
72 }

References $md.

Field Documentation

◆ $md

ilMDSaxParser::$md = null

Definition at line 53 of file class.ilMDSaxParser.php.

Referenced by ilWebLinkXmlParser\handlerBeginTag(), and setMDObject().

◆ $md_chr_data

ilMDSaxParser::$md_chr_data = ''

Definition at line 42 of file class.ilMDSaxParser.php.

◆ $md_cur_el

ilMDSaxParser::$md_cur_el = null

Definition at line 44 of file class.ilMDSaxParser.php.

◆ $md_gen

ilMDSaxParser::$md_gen

Definition at line 58 of file class.ilMDSaxParser.php.

◆ $md_in_md

ilMDSaxParser::$md_in_md = false

Definition at line 41 of file class.ilMDSaxParser.php.

Referenced by inMetaData().

◆ $md_parsing_enabled

ilMDSaxParser::$md_parsing_enabled = null

Definition at line 49 of file class.ilMDSaxParser.php.

Referenced by getMDParsingStatus().


The documentation for this class was generated from the following files: