4 # FILE: SPT--Vocabulary.php
9 # SomeMethod($SomeParameter, $AnotherParameter)
10 # - short description of method
12 # AUTHOR: Edward Almasy
14 # Part of the Collection Workflow Integration System
15 # Copyright 2007 Edward Almasy and Internet Scout
16 # http://scout.wisc.edu
24 # ---- PUBLIC INTERFACE --------------------------------------------------
36 # attempt to load vocabulary from file
37 $this->Xml = simplexml_load_file(
$FileName);
39 # set error code if load failed
40 $this->StatusString = ($this->Xml === FALSE) ?
"XML Load Failed" :
"OK";
41 $this->Xml = isset($this->Xml->vocabulary) ? $this->Xml->vocabulary :
$this->Xml;
55 return self::HashForFile($this->FileName);
103 return isset($this->Xml->qualifier->name)
104 ? (string)$this->Xml->qualifier->name :
"";
112 return isset($this->Xml->qualifier->namespace)
113 ? (string)$this->Xml->qualifier->namespace :
"";
121 return isset($this->Xml->qualifier->url)
122 ? (string)$this->Xml->qualifier->url :
"";
131 return isset($this->Xml->owner->name)
132 ? (string)$this->Xml->owner->name :
"";
141 return isset($this->Xml->owner->url)
142 ? (string)$this->Xml->owner->url :
"";
152 # return array of terms to caller
166 # ---- PRIVATE INTERFACE -------------------------------------------------
174 return isset($this->Xml->{$ValueName})
175 ? (
string)$this->Xml->{$ValueName} :
"";
178 function ExtractTermSet($Tree)
181 foreach ($Tree->term as $Term)
183 if (isset($Term->value))
185 $Terms[(string)$Term->value] = $this->ExtractTermSet($Term);
189 $Terms[(string)$Term] = array();
195 # build double-dash separated term list from hierarchical array
196 function BuildTermList($Prefix, $TermTree)
199 foreach ($TermTree as $Term => $Children)
202 $NewTerm = strlen($Prefix) ? $Prefix.
" -- ".$Term : $Term;
204 $Terms = array_merge($Terms, $this->BuildTermList($NewTerm, $Children));