3 * Creates XML index files.
\r
5 * @version $Id: PhpdocXMLIndexExporter.php,v 1.2 2000/12/03 22:37:38 uw Exp $
\r
7 class PhpdocXMLIndexExporter extends PhpdocXMLExporter {
\r
10 * Chapter tag attributes
\r
14 var $chapterAttributes = array( "name" => "CDATA" );
\r
17 * Element tag attributes.
\r
21 var $elementAttributes = array(
\r
23 "source" => "CDATA",
\r
24 "sourcetype" => "CDATA"
\r
27 * Just call the parent class constructor
\r
29 function PhpdocXMLIndexExporter() {
\r
30 $this->PhpdocXMLExporter();
\r
31 } // end constructor
\r
34 * Exports a modulegroup.
\r
39 function exportModulegroup(&$modulegroup) {
\r
41 $this->xmlwriter->free();
\r
43 $this->xmlwriter->addXML('<?xml version="1.0"?>');
\r
44 $this->xmlwriter->startElement("phpdoc");
\r
46 reset($modulegroup);
\r
47 list($group, $modules) = each($modulegroup);
\r
48 $attribs = array( "name" => array( "type" => "CDATA", "value" => $group) );
\r
49 $this->xmlwriter->startElement("modulegroup", "", $attribs);
\r
52 while (list($k, $module)=each($modules))
\r
53 $this->xmlwriter->addElement("module", "", array( "name" => array( "type" => "CDATA", "value" => $module )) );
\r
55 $this->xmlwriter->endElement("modulegroup");
\r
56 $this->xmlwriter->endElement("phpdoc");
\r
58 $group = $this->nameToUrl($group);
\r
59 $this->xmlwriter->export($this->path."modulegroup_$group.xml");
\r
60 $this->xmlwriter->free();
\r
62 } // end func exportModulegroup
\r
65 * Exports a packagelist
\r
70 function exportPackagelist(&$packagelist) {
\r
72 $this->xmlwriter->free();
\r
74 $this->xmlwriter->addXML('<?xml version="1.0"?>');
\r
75 $this->xmlwriter->startElement("phpdoc");
\r
76 $this->xmlwriter->startElement("packagelist");
\r
78 reset($packagelist);
\r
79 while (list($package, $elementlist)=each($packagelist)) {
\r
81 $attribs = array( "name" => array("type" => "CDATA", "value" => $package) );
\r
82 $this->xmlwriter->startElement("package", "", $attribs);
\r
84 reset($elementlist);
\r
85 while (list($type, $elements) = each($elementlist)) {
\r
87 $container = ("classes" == $type) ? "class" : "module";
\r
88 while (list($k, $element) = each($elements)) {
\r
90 $attribs = array( "name" => array("type" => "CDATA", "value" => $element));
\r
91 $this->xmlwriter->addElement($container, "", $attribs);
\r
97 $this->xmlwriter->endElement("package");
\r
101 $this->xmlwriter->endElement("packagelist");
\r
102 $this->xmlwriter->endElement("phpdoc");
\r
103 $this->xmlwriter->export($this->path."packagelist.xml");
\r
104 $this->xmlwriter->free();
\r
106 } // end func exportPackagelist
\r
109 * Exports a classtree
\r
111 * @param array Classtree
\r
112 * @param string Name of the baseclass of the classtree
\r
115 function exportClasstree(&$classtree, $baseclass) {
\r
117 $this->xmlwriter->free();
\r
119 $this->xmlwriter->addXML('<?xml version="1.0"?>');
\r
120 $this->xmlwriter->startElement("phpdoc");
\r
122 $attribs = array("baseclass" => array("type" => "CDATA", "value" => $baseclass));
\r
123 $this->xmlwriter->startElement("classtree", "", $attribs);
\r
126 while (list($parentclass, $subclasses) = each($classtree)) {
\r
128 $attribs = array("name" => array("type" => "CDATA", "value" => $parentclass));
\r
129 $this->xmlwriter->startElement("class", "", $attribs);
\r
131 reset($subclasses);
\r
132 while (list($subclass, $v) = each($subclasses))
\r
133 $this->xmlwriter->addElement("subclass", $subclass);
\r
135 $this->xmlwriter->endElement("class");
\r
139 $this->xmlwriter->endElement("classtree");
\r
140 $this->xmlwriter->endElement("phpdoc");
\r
142 $baseclass = $this->nameToURL($baseclass);
\r
143 $this->xmlwriter->export($this->path . "classtree_$baseclass.xml");
\r
144 $this->xmlwriter->free();
\r
146 } // end func exportClasstree
\r
149 * Exports a list of all elements
\r
154 function exportElementlist(&$elementlist) {
\r
156 $this->xmlwriter->free();
\r
158 $this->xmlwriter->addXML('<?xml version="1.0"?>');
\r
159 $this->xmlwriter->startElement("phpdoc");
\r
160 $this->xmlwriter->startElement("index");
\r
162 reset($elementlist);
\r
163 while (list($index, $elements) = each($elementlist)) {
\r
165 $attrib = array( "char" => array( "type" => "CDATA", "value" => $index ) );
\r
166 $this->xmlwriter->startElement("chapter", "", $attrib);
\r
169 while (list($name, $element) = each($elements)) {
\r
172 while (list($k, $eldata) = each($element)) {
\r
173 $attribs = $this->getAttributes($eldata, $this->elementAttributes);
\r
174 $attribs["name"] = array( "type" => "CDATA", "value" => $name );
\r
175 $this->xmlwriter->addElement("element", $eldata["sdesc"], $attribs);
\r
180 $this->xmlwriter->endElement("chapter");
\r
183 $this->xmlwriter->endElement("index");
\r
184 $this->xmlwriter->endElement("phpdoc");
\r
186 $this->xmlwriter->export($this->path."elementlist.xml");
\r
187 $this->xmlwriter->free();
\r
189 } // end func exportElementlist
\r
191 } // end class PhpdocXMLIndexExporter
\r