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"