$53 GRAYBYTE WORDPRESS FILE MANAGER $34

SERVER : premium201.web-hosting.com #1 SMP Wed Mar 26 12:08:09 UTC 2025
SERVER IP : 104.21.43.35 | ADMIN IP 216.73.216.157
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/alt/ruby18/lib64/ruby/1.8/wsdl/xmlSchema/

HOME
Current File : /opt/alt/ruby18/lib64/ruby/1.8/wsdl/xmlSchema//xsd2ruby.rb
# XSD4R - XSD to ruby mapping library.
# Copyright (C) 2005  NAKAMURA, Hiroshi <[email protected]>.

# 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 'xsd/codegen/gensupport'
require 'wsdl/xmlSchema/importer'
require 'wsdl/soap/classDefCreator'


module WSDL
module XMLSchema


class XSD2Ruby
  attr_accessor :location
  attr_reader :opt
  attr_accessor :logger
  attr_accessor :basedir

  def run
    unless @location
      raise RuntimeError, "XML Schema location not given"
    end
    @xsd = import(@location)
    @name = create_classname(@xsd)
    create_file
  end

private

  def initialize
    @location = nil
    @opt = {}
    @logger = Logger.new(STDERR)
    @basedir = nil
    @xsd = nil
    @name = nil
  end

  def create_file
    create_classdef
  end

  def create_classdef
    @logger.info { "Creating class definition." }
    @classdef_filename = @name + '.rb'
    check_file(@classdef_filename) or return
    write_file(@classdef_filename) do |f|
      f << WSDL::SOAP::ClassDefCreator.new(@xsd).dump
    end
  end

  def write_file(filename)
    if @basedir
      filename = File.join(basedir, filename)
    end
    File.open(filename, "w") do |f|
      yield f
    end
  end

  def check_file(filename)
    if @basedir
      filename = File.join(basedir, filename)
    end
    if FileTest.exist?(filename)
      if @opt.key?('force')
	@logger.warn {
	  "File '#{filename}' exists but overrides it."
	}
	true
      else
	@logger.warn {
	  "File '#{filename}' exists.  #{$0} did not override it."
	}
	false
      end
    else
      @logger.info { "Creates file '#{filename}'." }
      true
    end
  end

  def create_classname(xsd)
    name = nil
    if xsd.targetnamespace
      name = xsd.targetnamespace.scan(/[a-zA-Z0-9]+$/)[0]
    end
    if name.nil?
      'default'
    else
      XSD::CodeGen::GenSupport.safevarname(name)
    end
  end

  def import(location)
    WSDL::XMLSchema::Importer.import(location)
  end
end


end
end


Current_dir [ NOT WRITEABLE ] Document_root [ NOT WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
3 Mar 2024 10.48 PM
root / linksafe
0755
all.rb
1.147 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
annotation.rb
0.587 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
any.rb
1.063 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
attribute.rb
2.521 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
choice.rb
1.15 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
complexContent.rb
1.849 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
complexType.rb
2.911 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
content.rb
1.591 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
data.rb
3.252 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
element.rb
3.313 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
enumeration.rb
0.63 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
import.rb
1.424 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
importer.rb
2.18 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
include.rb
0.99 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
length.rb
0.58 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
parser.rb
3.913 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
pattern.rb
0.627 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
schema.rb
3.02 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
sequence.rb
1.152 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
simpleContent.rb
1.146 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
simpleExtension.rb
0.916 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
simpleRestriction.rb
1.456 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
simpleType.rb
1.373 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
unique.rb
0.57 KB
12 Feb 2007 11.01 PM
root / linksafe
0644
xsd2ruby.rb
2.082 KB
12 Feb 2007 11.01 PM
root / linksafe
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2025 CONTACT ME
Static GIF