Index: openacs-4/packages/acs-tcl/tcl/apm-xml-procs.tcl =================================================================== RCS file: /usr/local/cvsroot/openacs-4/packages/acs-tcl/tcl/apm-xml-procs.tcl,v diff -u -r1.16 -r1.17 --- openacs-4/packages/acs-tcl/tcl/apm-xml-procs.tcl 10 Mar 2003 19:29:40 -0000 1.16 +++ openacs-4/packages/acs-tcl/tcl/apm-xml-procs.tcl 13 Mar 2003 20:24:53 -0000 1.17 @@ -9,21 +9,6 @@ @cvs-id $Id$ } -ad_proc -private -deprecated -warn apm_load_xml_packages {} { - -

- NOTE: This proc doesn't do anything anymore. -

- -

- Loads XML packages into the running interpreter, if they're not - already there. We need to load these packages once per connection, - since AOLserver doesn't seem to deal with packages very well. -

- -} { -} - ad_proc -private apm_required_attribute_value { element attribute } { Returns an attribute of an XML element, throwing an error if the attribute @@ -32,7 +17,7 @@ } { set value [apm_attribute_value $element $attribute] if { [empty_string_p $value] } { - error "Required attribute \"$attribute\" missing from <[dom::node cget $element -nodeName]>" + error "Required attribute \"$attribute\" missing from <[ns_xml node name $element]>" } return $value } @@ -46,8 +31,7 @@ Parses the XML element to return the value for the specified attribute. } { - # set value [dom::element getAttribute $element $attribute] - set value [ns_xml node getattr $element $attribute] + set value [ns_xml node get attr $element $attribute] if { [empty_string_p $value] } { return $default @@ -64,18 +48,16 @@ } { Parses the XML element and returns the associated property name if it exists. } { - # set node [lindex [dom::element getElementsByTagName $root $property_name] 0] set node [lindex [xml_node_get_children_by_name $root $property_name] 0] if { ![empty_string_p $node] } { - # return [dom::node cget [dom::node cget $node -firstChild] -nodeValue] set child [lindex [ns_xml node children $node] 0] # JCD 20020914 ns_xml when given something like (i.e. empty content) # will have the node but the node will not have a child node and the # getcontent will then fail. if { ![empty_string_p $child] } { - return [ns_xml node getcontent $child] + return [ns_xml node get content $child] } } return $default @@ -249,8 +231,6 @@ set properties(path) $path set properties(mtime) $mtime - apm_load_xml_packages - apm_log APMDebug "Reading specification file at $path" set file [open $path] @@ -259,14 +239,11 @@ set xml_data [xml_prepare_data $xml_data] - # set tree [dom::DOMImplementation parse $xml_data] set tree [xml_parse $xml_data] - # set package [dom::node cget $tree -firstChild] set root_node [xml_doc_get_first_node_by_name $tree package] apm_log APMDebug "XML: root node is [ns_xml node name $root_node]" set package $root_node - # set root_name [dom::node cget $package -nodeName] set root_name [xml_node_get_name $package] # Debugging Children @@ -291,7 +268,6 @@ set properties(pretty-plural) [apm_tag_value -default "$properties(package-name)s" $package pretty-plural] - # set versions [dom::element getElementsByTagName $package version] set versions [xml_node_get_children_by_name $package version] if { [llength $versions] != 1 } { @@ -318,10 +294,8 @@ vendor url description format } { - # set node [lindex [dom::element getElementsByTagName $version $property_name] 0] set node [lindex [xml_node_get_children_by_name $version $property_name] 0] if { ![empty_string_p $node] } { - # set properties($property_name.$attribute_name) [dom::element getAttribute $node $attribute_name] set properties($property_name.$attribute_name) [apm_attribute_value $node $attribute_name] } else { set properties($property_name.$attribute_name) "" @@ -339,7 +313,6 @@ set properties(requires) [list] foreach dependency_type { provides requires } { - # set dependency_types [dom::element getElementsByTagName $version $dependency_type] set dependency_types [xml_node_get_children_by_name $version $dependency_type] foreach node $dependency_types { @@ -351,6 +324,32 @@ set properties(files) [list] +<<<<<<< apm-xml-procs.tcl + set files [xml_node_get_children_by_name $version files] + + foreach node $files { + set file_nodes [xml_node_get_children_by_name $node file] + + foreach file_node $file_nodes { + set file_path [apm_required_attribute_value $file_node path] + set type [apm_attribute_value $file_node type] + set db_type [apm_attribute_value $file_node db_type] + # Validate the file type: it must be null (unknown type) or + # some value in [apm_file_type_keys]. + if { ![empty_string_p $type] && [lsearch -exact [apm_file_type_keys] $type] < 0 } { + ns_log Warning "Unrecognized file type \"$type\" of file $file_path" + } + # Validate the database type: it must be null (unknown type) or + # some value in [apm_db_type_keys]. + if { ![empty_string_p $db_type] && [lsearch -exact [apm_db_type_keys] $db_type] < 0 } { + error "Invalid database type \"$db_type\"" + } + lappend properties(files) [list $file_path $type $db_type] + } + } + +======= +>>>>>>> 1.16 # Build a list of package callbacks array set callback_array {} @@ -387,13 +386,10 @@ set properties(owners) [list] - # set owners [dom::element getElementsByTagName $version "owner"] set owners [xml_node_get_children_by_name $version owner] foreach node $owners { - # set url [dom::element getAttribute $node url] set url [apm_attribute_value $node url] - # set name [dom::node cget [dom::node cget $node -firstChild] -nodeValue] set name [xml_node_get_content [lindex [xml_node_get_children $node] 0]] lappend properties(owners) [list $name $url] } @@ -403,27 +399,18 @@ set properties(parameters) [list] apm_log APMDebug "APM: Reading Parameters" - # set parameters [dom::element getElementsByTagName $version "parameters"] set parameters [xml_node_get_children_by_name $version parameters] foreach node $parameters { - # set parameter_nodes [dom::element getElementsByTagName $node "parameter"] set parameter_nodes [xml_node_get_children_by_name $node parameter] foreach parameter_node $parameter_nodes { - # set default_value [dom::element getAttribute $parameter_node default] set default_value [apm_attribute_value $parameter_node default] - # set min_n_values [dom::element getAttribute $parameter_node min_n_values] set min_n_values [apm_attribute_value $parameter_node min_n_values] - # set max_n_values [dom::element getAttribute $parameter_node max_n_values] set max_n_values [apm_attribute_value $parameter_node max_n_values] - # set description [dom::element getAttribute $parameter_node description] set description [apm_attribute_value $parameter_node description] - # set section_name [dom::element getAttribute $parameter_node section_name] set section_name [apm_attribute_value $parameter_node section_name] - # set datatype [dom::element getAttribute $parameter_node datatype] set datatype [apm_attribute_value $parameter_node datatype] - # set name [dom::element getAttribute $parameter_node name] set name [apm_attribute_value $parameter_node name] apm_log APMDebug "APM: Reading parameter $name with default $default_value"