source: extensions/gsdl-video/trunk/installed/cmdline/lib/ruby/1.8/wsdl/import.rb@ 18425

Last change on this file since 18425 was 18425, checked in by davidb, 15 years ago

Video extension to Greenstone

File size: 1.7 KB
Line 
1# WSDL4R - WSDL import definition.
2# Copyright (C) 2002, 2003 NAKAMURA, Hiroshi <[email protected]>.
3
4# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
5# redistribute it and/or modify it under the same terms of Ruby's license;
6# either the dual license version in 2003, or any later version.
7
8
9require 'wsdl/info'
10require 'wsdl/importer'
11
12
13module WSDL
14
15
16class Import < Info
17 attr_reader :namespace
18 attr_reader :location
19 attr_reader :content
20
21 def initialize
22 super
23 @namespace = nil
24 @location = nil
25 @content = nil
26 @web_client = nil
27 end
28
29 def parse_element(element)
30 case element
31 when DocumentationName
32 o = Documentation.new
33 o
34 else
35 nil
36 end
37 end
38
39 def parse_attr(attr, value)
40 case attr
41 when NamespaceAttrName
42 @namespace = value.source
43 if @content
44 @content.targetnamespace = @namespace
45 end
46 @namespace
47 when LocationAttrName
48 @location = URI.parse(value.source)
49 if @location.relative? and !parent.location.nil? and
50 !parent.location.relative?
51 @location = parent.location + @location
52 end
53 if root.importedschema.key?(@location)
54 @content = root.importedschema[@location]
55 else
56 root.importedschema[@location] = nil # placeholder
57 @content = import(@location)
58 if @content.is_a?(Definitions)
59 @content.root = root
60 if @namespace
61 @content.targetnamespace = @namespace
62 end
63 end
64 root.importedschema[@location] = @content
65 end
66 @location
67 else
68 nil
69 end
70 end
71
72private
73
74 def import(location)
75 Importer.import(location, root)
76 end
77end
78
79
80end
Note: See TracBrowser for help on using the repository browser.