|
Revision 1891, 1.5 kB
(checked in by nahi, 1 year ago)
|
- wsdl2ruby.rb generated too much 'XSD::QName.new(...)' parts. let wsdl2ruby.rb extract common namespace definitions as constants.
- let wsdl2ruby.rb generate member types as a comment for each class in classdef file.
- closes #384.
|
- Property svn:eol-style set to
native
- Property svn:keywords set to
author date id revision
|
| Line | |
|---|
| 1 |
# XSD4R - XML QName definition. |
|---|
| 2 |
# Copyright (C) 2000-2007 NAKAMURA, Hiroshi <nahi@ruby-lang.org>. |
|---|
| 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 |
|
|---|
| 9 |
module XSD |
|---|
| 10 |
|
|---|
| 11 |
|
|---|
| 12 |
class QName |
|---|
| 13 |
attr_reader :namespace |
|---|
| 14 |
attr_reader :name |
|---|
| 15 |
attr_accessor :source |
|---|
| 16 |
|
|---|
| 17 |
def initialize(namespace = nil, name = nil) |
|---|
| 18 |
@namespace = namespace |
|---|
| 19 |
@name = name |
|---|
| 20 |
@source = nil |
|---|
| 21 |
end |
|---|
| 22 |
|
|---|
| 23 |
def dup_name(name) |
|---|
| 24 |
XSD::QName.new(@namespace, name) |
|---|
| 25 |
end |
|---|
| 26 |
|
|---|
| 27 |
def dump(predefined_ns = nil) |
|---|
| 28 |
ns = predefined_ns |
|---|
| 29 |
ns ||= @namespace.nil? ? 'nil' : @namespace.dump |
|---|
| 30 |
name = @name.nil? ? 'nil' : @name.dump |
|---|
| 31 |
"XSD::QName.new(#{ns}, #{name})" |
|---|
| 32 |
end |
|---|
| 33 |
|
|---|
| 34 |
def match(rhs) |
|---|
| 35 |
if rhs.namespace and (rhs.namespace != @namespace) |
|---|
| 36 |
return false |
|---|
| 37 |
end |
|---|
| 38 |
if rhs.name and (rhs.name != @name) |
|---|
| 39 |
return false |
|---|
| 40 |
end |
|---|
| 41 |
true |
|---|
| 42 |
end |
|---|
| 43 |
|
|---|
| 44 |
def ==(rhs) |
|---|
| 45 |
!rhs.nil? and @namespace == rhs.namespace and @name == rhs.name |
|---|
| 46 |
end |
|---|
| 47 |
|
|---|
| 48 |
def ===(rhs) |
|---|
| 49 |
(self == rhs) |
|---|
| 50 |
end |
|---|
| 51 |
|
|---|
| 52 |
def eql?(rhs) |
|---|
| 53 |
(self == rhs) |
|---|
| 54 |
end |
|---|
| 55 |
|
|---|
| 56 |
def hash |
|---|
| 57 |
@namespace.hash ^ @name.hash |
|---|
| 58 |
end |
|---|
| 59 |
|
|---|
| 60 |
def to_s |
|---|
| 61 |
"{#{ namespace }}#{ name }" |
|---|
| 62 |
end |
|---|
| 63 |
|
|---|
| 64 |
def inspect |
|---|
| 65 |
sprintf("#<%s:0x%x %s>", self.class.name, __id__, |
|---|
| 66 |
"{#{ namespace }}#{ name }") |
|---|
| 67 |
end |
|---|
| 68 |
|
|---|
| 69 |
NormalizedNameRegexp = /^\{([^}]*)\}(.*)$/ |
|---|
| 70 |
def parse(str) |
|---|
| 71 |
NormalizedNameRegexp =~ str |
|---|
| 72 |
self.new($1, $2) |
|---|
| 73 |
end |
|---|
| 74 |
|
|---|
| 75 |
EMPTY = QName.new.freeze |
|---|
| 76 |
end |
|---|
| 77 |
|
|---|
| 78 |
|
|---|
| 79 |
end |
|---|