1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/lib/wsdl/xmlSchema/schema.rb
nahi 290034fde8 * lib/soap/wsdlDriver.rb, lib/wsdl/soap/operation.rb: add support of
"parts" attribute of soap:body element in WSDL.

        * lib/wsdl/xmlSchema/schema.rb: friendly warning message for
          simpleType element which is not supported for now.

        * test/wsdl/soap/{soapbodyparts.wsdl,test_soapbodyparts.wsdl}: new
          files.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@5488 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-01-18 11:10:18 +00:00

97 lines
2 KiB
Ruby

# WSDL4R - XMLSchema schema definition for WSDL.
# Copyright (C) 2002, 2003 NAKAMURA, Hiroshi <nahi@ruby-lang.org>.
# This program is copyrighted free software by NAKAMURA, Hiroshi. You can
# redistribute it and/or modify it under the same terms of Ruby's license;
# either the dual license version in 2003, or any later version.
require 'wsdl/info'
require 'xsd/namedelements'
module WSDL
module XMLSchema
class Schema < Info
attr_reader :targetnamespace # required
attr_reader :complextypes
attr_reader :elements
attr_reader :attributes
attr_reader :imports
attr_accessor :attributeformdefault
attr_accessor :elementformdefault
def initialize
super
@targetnamespace = nil
@complextypes = XSD::NamedElements.new
@elements = XSD::NamedElements.new
@attributes = XSD::NamedElements.new
@imports = []
@elementformdefault = nil
end
def parse_element(element)
case element
when ImportName
o = Import.new
@imports << o
o
when ComplexTypeName
o = ComplexType.new
@complextypes << o
o
when SimpleTypeName
STDERR.puts("Restriction of basetype with simpleType definition is ignored for now.")
nil
when ElementName
o = Element.new
@elements << o
o
when AttributeName
o = Attribute.new
o
else
nil
end
end
def parse_attr(attr, value)
case attr
when TargetNamespaceAttrName
@targetnamespace = value
when AttributeFormDefaultAttrName
@attributeformdefault = value
when ElementFormDefaultAttrName
@elementformdefault = value
else
nil
end
end
def collect_elements
result = XSD::NamedElements.new
result.concat(@elements)
result
end
def collect_complextypes
result = XSD::NamedElements.new
result.concat(@complextypes)
result
end
def self.parse_element(element)
if element == SchemaName
Schema.new
else
nil
end
end
end
end
end