diff --git a/.gitignore b/.gitignore index aed6e0247..22aa51f2c 100644 --- a/.gitignore +++ b/.gitignore @@ -16,7 +16,7 @@ _ReSharper* *.ncrunchproject *.swp TestResult.xml -Gemfile.lock +Gemfile.lock src/packages bin @@ -26,4 +26,5 @@ output build *.nupkg logs/ -src/CommonAssemblyInfo.cs \ No newline at end of file +src/CommonAssemblyInfo.cs +src/FluentNHibernate.nuspec diff --git a/Build.bat b/Build.bat deleted file mode 100644 index 035a02879..000000000 --- a/Build.bat +++ /dev/null @@ -1 +0,0 @@ -rake \ No newline at end of file diff --git a/Gemfile b/Gemfile index fef89ddbc..a8d422303 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,3 @@ -source 'https://rubygems.org' - -source 'https://rubygems.org' +source 'http://rubygems.org' gem 'rake', '~>10.3.2' gem 'albacore', '1.0.0.rc2' \ No newline at end of file diff --git a/MIRROR b/MIRROR deleted file mode 100644 index e69de29bb..000000000 diff --git a/RakeFile b/RakeFile index 297ec6343..290600330 100644 --- a/RakeFile +++ b/RakeFile @@ -17,7 +17,7 @@ module Platform def self.runtime(cmd) command = cmd if self.is_nix - runtime = (CLR_TOOLS_VERSION || "v4.0.30319") + runtime = CLR_TOOLS_VERSION command = "mono --runtime=#{runtime} #{cmd}" end command @@ -47,23 +47,26 @@ end task :default => ['ripple:restore', 'source:update_version', 'build:all'] namespace :ci do - task :run_ci_build => ['ripple:restore', 'build:all', 'docs:build', 'package:all' ] + task :run_ci_build => [ 'ripple:restore', 'build:all', 'docs:build', 'package:all' ] end + + namespace :ripple do - desc 'Restores NuGet package binaries' - task :restore do |cmd| - ripple = Platform.runtime("buildsupport/ripple.exe") - args = "restore" - sh "#{ripple} #{args}" - end + desc 'Restores NuGet package binaries' + task :restore do |cmd| + ripple = Platform.runtime("buildsupport/ripple.exe") + args = "restore" + sh "#{ripple} #{args}" + end + task :run_ci_build => ['ripple:restore', 'build:all', 'docs:build', 'package:all' ] end namespace :source do desc 'Update assembly info with latest version number' assemblyinfo :update_version do |info| info.output_file = PROPS - commit_hash = `git log -1 --format="%H%"` + commit_hash = `git log -1 --format="%H%"` info.title = Platform.config['assembly_info']['title'] info.version = get_version @@ -72,32 +75,45 @@ namespace :source do info.product_name = 'FluentNHibernate' info.description = commit_hash[0..(commit_hash.length - 3)] info.copyright = "Copyright 2008-#{Time.new.year} James Gregory and contributors (Paul Batum, Hudson Akridge et al). All rights reserved." - info.namespaces = ['System.Security'] + info.namespaces = ['System', 'System.Security', 'System.Runtime.CompilerServices'] + + info.custom_attributes = { + :CLSCompliant => true, + :InternalsVisibleTo => "FluentNHibernate.Testing" + } puts "The new version is #{info.version}" end - - task :nhibernate_version, :nhibernate_version do |t,args| - args.with_defaults :nhibernate_version => ENV['nhibernate_version'] || NH_VERSION + + task :choose_build_runner do |cmd, args| + task_name = 'source:' + (Platform.is_nix()? 'x': 'ms') + 'build' + + Rake::Task[task_name].reenable + Rake::Task[task_name].invoke(args) end - desc 'Compile the source' - msbuild :compile, [:nhibernate_version] => :nhibernate_version do |msbuild, args| - args.with_defaults :nhibernate_version => ENV['nhibernate_version'] || NH_VERSION - - nh_version_precompiler_switch = 'NH' + args.nhibernate_version.gsub('.', '') - - puts 'Precompiler switch: ' + nh_version_precompiler_switch - + xbuild :xbuild do |xb, args| + xb.solution = SLN + xb.targets = [:Clean, :Build] + xb.verbosity = :minimal + xb.properties = { + :Configuration => "Release", + :DefineConstants => 'NH' + NH_VERSION.gsub('.', ''), + :TargetFrameworkVersion => Platform.config['build']['target_framework'] + } + end + + msbuild :msbuild, [:nhibernate_version] do |msbuild, args| + puts "Build switch #{args}" msbuild.properties = { - configuration: :Release, - DefineConstants: nh_version_precompiler_switch, - WarningLevel: 0 + Configuration: :Release, + DefineConstants: 'NH' + NH_VERSION.gsub('.', ''), + WarningLevel: 0 } - msbuild.targets [:Clean, :Build] + msbuild.targets [:Build] msbuild.solution = SLN msbuild.verbosity = :minimal - msbuild.parameters = ["/p:TargetFrameworkVersion=#{Platform.config['build']['msbuild_runtime']}"] + msbuild.parameters = ["/p:TargetFrameworkVersion=#{Platform.config['build']['target_framework']}"] end end @@ -121,7 +137,7 @@ end namespace :build do desc 'Run full build including tests' - task :all => ['source:update_version', 'source:compile', 'specs:all'] do + task :all => ['source:update_version', 'source:choose_build_runner', 'specs:all'] do puts 'Copying output to build directory' Dir.mkdir 'build' unless File.exist? 'build' Dir.glob 'src/FluentNHibernate/bin/Release/*.{dll,pdb,xml}' do |path| @@ -222,6 +238,31 @@ namespace :package do end end + task :upgradeNhVersion, :version do |cmd, args| + fail "Please provide version number to work with" if not args.has_key?(:version) + puts "Updating NH version to #{args[:version]}" + puts "Editing packages.config files..." + packages_configs = Rake::FileList['**/packages.config'] + packages_configs.each do |pc| + update_xml pc do |xml| + xml.root.elements["package[@id='NHibernate']"].attributes['version'] = args[:version] + end + puts "Upgraded #{pc}" + end + + puts "Editing .csproj files..." + project_files = Rake::FileList['**/*.csproj'] + project_files.each do |pf| + update_xml pf do |xml| + old_value = xml.root.elements["ItemGroup[1]/Reference[contains(@Include, 'NHibernate')]/HintPath"].text + new_value = old_value.gsub(/(\d+).(\d+).(\d+).(\d+)/, args[:version]) + xml.root.elements["ItemGroup[1]/Reference[contains(@Include, 'NHibernate')]/HintPath"].text = new_value + end + puts "Upgraded #{pf}" + end + puts "Done." + end + nugetpack :nupack do |nu| nu.command = 'tools/nuget/NuGet.exe' nu.nuspec = NUSPEC @@ -229,6 +270,22 @@ namespace :package do nu.output = 'dist' end + task :new_version, :version do |cmd, args| + version_parts = /(\d{1,2}\.)(\d{1,2}\.)(\d{1,2})(\-*[a-zA-Z0-9]*)/.match(args[:version]) + is_valid_version = version_parts.captures.count{|p| p.length > 0} == (args[:version].split(//).count{|c| ['.', '-'].include?(c)} + 1) + if !args[:version].to_s.empty? and is_valid_version + #Platform.update_config_version(args[:version]) + ['ripple:restore', 'build:all', 'package:nuget', 'git:prep_release'] + .each {|tk| + puts tk + #Rake.task[tk].reenable + #Rake.task[tk].reinvoke + } + else + puts "Please provide valid version number" + end + end + desc 'Create nuget spec and package' task :nuget => [:nuspec, :nupack] @@ -240,6 +297,7 @@ def update_xml(xml_path) #Open up the xml file xml_file = File.new(xml_path) xml = REXML::Document.new xml_file + xml.context[:attribute_quote] = :quote #Allow caller to make the changes yield xml @@ -257,4 +315,4 @@ task :sln do Thread.new do system "devenv #{SLN}" end -end \ No newline at end of file +end diff --git a/buildsupport/BuildUtils.rb b/buildsupport/BuildUtils.rb deleted file mode 100644 index 2ecf097d8..000000000 --- a/buildsupport/BuildUtils.rb +++ /dev/null @@ -1,121 +0,0 @@ -require 'erb' - -class NUnitRunner - include FileTest - - def initialize(paths) - @sourceDir = paths.fetch(:source, 'source') - @resultsDir = paths.fetch(:results, 'results') - @compilePlatform = paths.fetch(:platform, '') - @compileTarget = paths.fetch(:compilemode, 'debug') - - @nunitExe = Nuget.tool("NUnit", "nunit-console#{(@compilePlatform.empty? ? '' : "-#{@compilePlatform}")}.exe") + Platform.switch("nothread") - end - - def executeTests(assemblies) - Dir.mkdir @resultsDir unless exists?(@resultsDir) - - assemblies.each do |assem| - file = File.expand_path("#{@sourceDir}/#{assem}/bin/#{@compileTarget}/#{assem}.dll") - sh Platform.runtime("#{@nunitExe} -xml=#{@resultsDir}/#{assem}-TestResults.xml \"#{file}\"") - end - end -end - -class MSBuildRunner - def self.compile(attributes) - compileTarget = attributes.fetch(:compilemode, 'debug') - solutionFile = attributes[:solutionfile] - - attributes[:projFile] = solutionFile - attributes[:properties] ||= [] - attributes[:properties] << "Configuration=#{compileTarget}" - attributes[:extraSwitches] = ["v:m", "t:rebuild"] - attributes[:extraSwitches] << "maxcpucount:2" unless Platform.is_nix - - self.runProjFile(attributes); - end - - def self.runProjFile(attributes) - version = attributes.fetch(:clrversion, 'v4.0.30319') - compileTarget = attributes.fetch(:compilemode, 'debug') - projFile = attributes[:projFile] - - if Platform.is_nix - msbuildFile = `which xbuild`.chop - attributes[:properties] << "TargetFrameworkProfile=""""" - else - frameworkDir = File.join(ENV['windir'].dup, 'Microsoft.NET', 'Framework', version) - msbuildFile = File.join(frameworkDir, 'msbuild.exe') - end - - properties = attributes.fetch(:properties, []) - - switchesValue = "" - - properties.each do |prop| - switchesValue += " /property:#{prop}" - end - - extraSwitches = attributes.fetch(:extraSwitches, []) - - extraSwitches.each do |switch| - switchesValue += " /#{switch}" - end - - targets = attributes.fetch(:targets, []) - targetsValue = "" - targets.each do |target| - targetsValue += " /t:#{target}" - end - - sh "#{msbuildFile} #{projFile} #{targetsValue} #{switchesValue}" - end -end - -class AspNetCompilerRunner - def self.compile(attributes) - if Platform.is_nix - puts "Skipping AspNet compilation. Not supported by Mono." - return - end - webPhysDir = attributes.fetch(:webPhysDir, '') - webVirDir = attributes.fetch(:webVirDir, 'This_Value_Is_Not_Used') - - frameworkDir = File.join(ENV['windir'].dup, 'Microsoft.NET', 'Framework', 'v4.0.30319') - aspNetCompiler = File.join(frameworkDir, 'aspnet_compiler.exe') - - sh "#{aspNetCompiler} -nologo -errorstack -c -p #{webPhysDir} -v #{webVirDir}" - end -end - -class AsmInfoBuilder - attr_reader :buildnumber - - def initialize(baseVersion, properties) - @properties = properties; - - @buildnumber = baseVersion + (ENV["CCNetLabel"].nil? ? '0' : ENV["CCNetLabel"].to_s) - @properties['Version'] = @properties['InformationalVersion'] = buildnumber; - end - - - - def write(file) - template = %q{ -using System; -using System.Reflection; -using System.Runtime.InteropServices; - -<% @properties.each {|k, v| %> -[assembly: Assembly<%=k%>Attribute("<%=v%>")] -<% } %> - }.gsub(/^ /, '') - - erb = ERB.new(template, 0, "%<>") - - File.open(file, 'w') do |file| - file.puts erb.result(binding) - end - end -end diff --git a/buildsupport/ILMerge.exe b/buildsupport/ILMerge.exe deleted file mode 100644 index e36b0c14f..000000000 Binary files a/buildsupport/ILMerge.exe and /dev/null differ diff --git a/buildsupport/ILRepack.rb b/buildsupport/ILRepack.rb deleted file mode 100644 index 74e332299..000000000 --- a/buildsupport/ILRepack.rb +++ /dev/null @@ -1,38 +0,0 @@ -load "#{File.dirname(__FILE__)}/platform.rb" -class ILRepack - - def initialize(attributes) - - out = attributes.fetch(:out, '') - lib = attributes.fetch(:lib, nil) - target = attributes.fetch(:target, 'library') - targetplatform = attributes.fetch(:targetplatform, "v4") - internalize = attributes.fetch(:internalize, true) - debugsymbols = attributes.fetch(:debugsymbols, false) - union = attributes.fetch(:union, false) - - params = [] - params << "/out:#{out}" - params << "/lib:#{lib}" unless lib.nil? - params << "/target:#{target}" unless target.nil? - params << "/targetplatform:#{targetplatform}" unless targetplatform.nil? - params << "/internalize" if internalize - params << "/ndebug" unless debugsymbols - params << "/union" if union - - merge_exe = "#{File.dirname(__FILE__)}/ILMerge.exe" - @cmd = "#{merge_exe} #{params.join(' ')}" - end - - def merge(params) - - if Platform.is_nix - puts "Merging is *currently* not supported on Mono. Skipping merge..." - return - end - - src = params.fetch(:lib, '') - refs = params.fetch(:refs, []).map {|f| File.join(src, f)} - sh Platform.runtime("#{@cmd} #{refs.join(' ')}") - end -end diff --git a/buildsupport/RakeFile b/buildsupport/RakeFile deleted file mode 100644 index 221fbb1d3..000000000 --- a/buildsupport/RakeFile +++ /dev/null @@ -1,5 +0,0 @@ -Dir["#{File.dirname(__FILE__)}/*.rb"].each { |ext| load ext } - -task :default do - puts "This RakeFile exists solely for testing imported tasks. Run rake -T to see imported tasks." -end \ No newline at end of file diff --git a/buildsupport/Ruby_Not_Installed.txt b/buildsupport/Ruby_Not_Installed.txt deleted file mode 100644 index ef7508cad..000000000 --- a/buildsupport/Ruby_Not_Installed.txt +++ /dev/null @@ -1,30 +0,0 @@ - -********************************************** -WE'RE SORRY! -Ruby not installed? -********************************************** - -It appears you do not have Ruby installed. -This project uses the "Rake" build system from Ruby. - -If you *DO* have Ruby installed, please make sure the -Ruby\bin folder is in your PATH. - -If you *DON'T* have Ruby installed then, in order to -run "Rake", please perform the following steps: - - 1.) Download and install Ruby 1.8.6 (or later -- - "1.8.6. One-Click installer recommended for Windows) - - - Main Download URL: - http://www.ruby-lang.org/en/downloads/ - - - 1.8.6 One-Click installer: - http://rubyforge.org/frs/download.php/29263/ruby186-26.exe - (md5: 00540689d1039964bc8d844b2b0c7db6) - - - 2.) Install the Rake "Gem" and related "Gems" by running - InstallGems.bat in the same folder as this Build.bat file - -********************************************** diff --git a/buildsupport/common.rb b/buildsupport/common.rb deleted file mode 100644 index 514d09c5d..000000000 --- a/buildsupport/common.rb +++ /dev/null @@ -1,15 +0,0 @@ - desc "Update buildsupport submodule" - task :update_buildsupport do - #Go update the buildsupport submodule so it's always current. - Dir.chdir("buildsupport") do - puts "*** Updating buildsupport..." - begin - sh 'git fetch' - sh 'git checkout master' - sh 'git rebase origin/master' - puts "*** Buildsupport updated." - rescue - puts "*** Error updating submodule" - end - end - end \ No newline at end of file diff --git a/buildsupport/nuget.rb b/buildsupport/nuget.rb deleted file mode 100644 index 8a9cc12b8..000000000 --- a/buildsupport/nuget.rb +++ /dev/null @@ -1,246 +0,0 @@ -namespace :nuget do - buildsupport_path = File.dirname(__FILE__) - nuget = "#{buildsupport_path}/nuget.exe" - nugroot = File.expand_path(ENV['NUGET_HUB'] || "/nugs") - - - desc "Build the nuget package" - task :build do - rm Dir.glob("#{ARTIFACTS}/*.nupkg") - FileList["packaging/nuget/*.nuspec"].each do |spec| - sh "#{nuget} pack #{spec} -o #{ARTIFACTS} -Version #{BUILD_NUMBER} -Symbols" - end - end - - desc "update dependencies from local machine" - task :pull, [:package] do |task, args| - Nuget.each_installed_package do |package| - next if args[:package] && Nuget.package_name(package).downcase != args[:package].downcase - src_package = File.join nugroot, Nuget.package_name(package) - if File.directory? src_package - ['lib','tools'].each do |folder| - dst = File.join package, folder - src = File.join src_package, folder - if File.directory? src - clean_dir dst - cp_r src + "/.", dst, :verbose => false - after_nuget_update(Nuget.package_name(package), dst) if respond_to? :after_nuget_update - end - end - puts "pulled from #{src_package}" - else - puts "could not find #{src_package}" - end - end - end - - desc "Updates dependencies from nuget.org" - task :update => [:update_packages, :clean, :update_callback] - - task :update_packages do - FileList["**/*.sln"].each do |proj| - sh "#{nuget} update #{proj}" - end - FileList["**/packages.config"].each do |proj| - sh "#{nuget} install #{proj} -OutputDirectory #{Nuget.package_root}" - end - end - - task :update_callback do - after_nuget_update(nil, Nuget.package_root) if respond_to? :after_nuget_update - end - - desc "pushes dependencies to central location on local machine for nuget:pull from other repos" - task :push, [:package] => :build do |task, args| - FileList["#{ARTIFACTS}/*.nupkg"].exclude(".symbols.nupkg").each do |file| - next if args[:package] && Nuget.package_name(file).downcase != args[:package].downcase - destination = File.join nugroot, Nuget.package_name(file) - clean_dir destination - unzip_file file, destination - puts "pushed to #{destination}" - end - end - - def clean_dir(path) - mkdir_p path, :verbose => false - rm_r Dir.glob(File.join(path, "*.*")), :verbose => false - end - - def unzip_file (file, destination) - require 'rubygems' - require 'zip/zip' - Zip::ZipFile.open(file) { |zip_file| - zip_file.each { |f| - f_path=File.join(destination, f.name) - FileUtils.mkdir_p(File.dirname(f_path)) - zip_file.extract(f, f_path) unless File.exist?(f_path) - } - } - end - - desc "Pushes nuget packages to the official feed" - task :release, [:package] do |t, args| - require 'open-uri' - release_path = "#{buildsupport_path}/nuget_release" - clean_dir release_path - - artifact_url = "http://teamcity.codebetter.com/guestAuth/repository/downloadAll/#{@teamcity_build_id}/.lastSuccessful/artifacts.zip" - puts "downloading artifacts from #{artifact_url}" - artifact = open(artifact_url) - unzip_file artifact.path, release_path - FileList["#{release_path}/*.nupkg"].exclude(".symbols.nupkg").each do |nupkg| - next if args[:package] && Nuget.package_name(nupkg).downcase != args[:package].downcase - sh "#{nuget} push #{nupkg}" do |ok, res| - puts "May not have published #{nupkg}" unless ok - end - end - end - - task :clean do - require 'rexml/document' - repo_paths = Nuget.repositories - packages = repo_paths.map{|repo| Nuget.packages(repo)}.reduce(:|) - - Nuget.each_installed_package do |package| - name = Nuget.package_name(package) - tracked = packages.select{|p| p.include? name} - if tracked.any? # only remove folders for older versions of tracked packages - should_delete = !tracked.detect{|t| package.end_with? t[name]} - rm_rf package if should_delete - end - end - - end -end - -namespace :ripple do - @ripple_root = File.expand_path(File.join(File.dirname(__FILE__), "../../") + "/ripple") - @progress_file = "#{@ripple_root}/packages/ripple.txt" - - task :local => ["nuget:pull", :ci, "nuget:push"] - task :public => [:gitupdate, "nuget:update", :ci, :commit, :manualsteps] - - task :gitupdate do - #raise "Uncommitted changes in #{Dir.pwd}" unless `git status --porcelain`.strip.empty? - sh "git checkout master && git pull --ff-only" do |ok, status| - raise "Cannot pull latest into #{Dir.pwd}. You need to rebase or merge origin/master" unless ok - end - end - - task :commit do - status = `git status --porcelain` - changes = status.split("\n").select{|l| l.start_with? "??"}.map{|l| l.match(/packages\/(.*)\//)[1]} - if changes.any? - msg = "Updated packages: #{changes.join(", ")}" - sh "git add -A" - sh "git commit -m \"#{msg}\"" - else - puts "no changes to commit in #{Dir.pwd}" - end - end - - task :manualsteps do - puts """ -******************************* -1) Push your changes to github. -2) Optionally kick off the teamcity build manually (if it hasn't started automatically yet) -3) Wait for teamcity build to finish -4) Run rake ripple:publish to continue after publishing nuget packages publicly - or rake ripple:continue to continue without publishing publicly -""" - sh "start http://teamcity.codebetter.com/viewType.html?buildTypeId=#{@teamcity_build_id}" - end - - task :continue do - job = get_next_job - if job - puts "mark #{job} as complete" - mark_complete job - - run_in @ripple_root, "rake ripple:nextjob" - else - puts "no current job to continue" - end - end - - task :publish => ["nuget:release", :continue] - - def mark_complete(job) - jobs = get_ripple_jobs - raise "Job does not exist: #{job} -- cannot mark it complete" unless jobs.include? job - init_ripple_jobs(jobs - [job]) - end - - def get_next_job - jobs = get_ripple_jobs - return nil unless jobs.any? - jobs[0] - end - - def get_ripple_jobs - File.readlines(@progress_file).map{|x| x.chomp}.reject{|x| x.empty?} - end - - def init_ripple_jobs(jobs) - File.open(@progress_file, "w") do |file| - jobs.each{|job| file.puts job} - end - end -end - - -module Nuget - def self.each_installed_package - FileList[File.join(package_root, "*")].exclude{|f| File.file?(f)}.each do |package| - yield package - end - end - - def self.packages(package_config) - xml = REXML::Document.new File.read package_config - xml.get_elements('packages/package').map do |p| - { p.attributes['id'] => p.attributes['version'] } - end - end - - def self.repositories - - #get packages.config from nuget's repositories.config file in the package root - repo_file_path = File.join package_root, "repositories.config" - if FileTest.exists? repo_file_path - file = REXML::Document.new File.read repo_file_path - return file.get_elements("repositories/repository").map{|node| File.expand_path(File.join(package_root, node.attributes["path"]))} - end - - #otherwise glob all the packages.config in the source directory - Dir.glob("{source,src}/**/packages.config") - end - - def self.package_root - root = nil - - packroots = Dir.glob("{source,src}/packages") - - return packroots.last if packroots.length > 0 - - Dir.glob("{source,src}").each do |d| - packroot = File.join d, "packages" - FileUtils.mkdir_p(packroot) - root = packroot - end - - root - end - - def self.package_name(filename) - File.basename(filename, ".nupkg").gsub(/[\d.]+$/, "") - end - - def self.tool(package, tool) - File.join(Dir.glob(File.join(package_root,"#{package}.*")).sort.last, "tools", tool) - end -end - -def run_in(working_dir, cmd) - sh "buildsupport/run_in_path.cmd #{working_dir.gsub('/','\\')} #{cmd}" -end diff --git a/buildsupport/platform.rb b/buildsupport/platform.rb deleted file mode 100644 index 5b26b615e..000000000 --- a/buildsupport/platform.rb +++ /dev/null @@ -1,21 +0,0 @@ -module Platform - - def self.is_nix - !RUBY_PLATFORM.match("linux|darwin").nil? - end - - def self.runtime(cmd) - command = cmd - if self.is_nix - runtime = (CLR_TOOLS_VERSION || "v4.0.30319") - command = "mono --runtime=#{runtime} #{cmd}" - end - command - end - - def self.switch(arg) - sw = self.is_nix ? " -" : " /" - sw + arg - end - -end diff --git a/buildsupport/ripple.cmd b/buildsupport/ripple.cmd deleted file mode 100644 index 866a60603..000000000 --- a/buildsupport/ripple.cmd +++ /dev/null @@ -1 +0,0 @@ -src\ripple\bin\debug\ripple.exe %* \ No newline at end of file diff --git a/buildsupport/ripple.exe.config b/buildsupport/ripple.exe.config deleted file mode 100644 index 86289a07e..000000000 --- a/buildsupport/ripple.exe.config +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/buildsupport/run-git.cmd b/buildsupport/run-git.cmd deleted file mode 100644 index f09175c0a..000000000 --- a/buildsupport/run-git.cmd +++ /dev/null @@ -1 +0,0 @@ -git %* \ No newline at end of file diff --git a/buildsupport/run-rake.cmd b/buildsupport/run-rake.cmd deleted file mode 100644 index c562b6581..000000000 --- a/buildsupport/run-rake.cmd +++ /dev/null @@ -1 +0,0 @@ -rake %* \ No newline at end of file diff --git a/buildsupport/run_in_path.cmd b/buildsupport/run_in_path.cmd deleted file mode 100644 index 73304ab46..000000000 --- a/buildsupport/run_in_path.cmd +++ /dev/null @@ -1,7 +0,0 @@ -@ECHO OFF -SETLOCAL -SET WD=%1 - -PUSHD %WD% -%2 %3 %4 %5 %6 %7 %8 %9 -POPD% \ No newline at end of file diff --git a/buildsupport/sphinx.rb b/buildsupport/sphinx.rb deleted file mode 100644 index 79afb323b..000000000 --- a/buildsupport/sphinx.rb +++ /dev/null @@ -1,97 +0,0 @@ -namespace :docs do - - DOC_DIR="docs" - DOCS_BUILD_DIR="#{DOC_DIR}/build" - DOC_SOURCE="#{DOC_DIR}/source" - SPHINXOPTS=ENV['SPHINXOPTS'] - ALLSPHINXOPTS="#{SPHINXOPTS} -d #{DOCS_BUILD_DIR}/doctrees #{DOC_SOURCE}" - - def run_sphinx(args) - sh %{sphinx-build #{args}} do |ok, res| - if ! ok - p res - end - end - end - - desc "Cleans the built documentation directories" - task :clean do - rm_rf "#{DOCS_BUILD_DIR}" - end - - desc "Make standalone HTML files" - task :html do - run_sphinx "-b html #{ALLSPHINXOPTS} #{DOCS_BUILD_DIR}/html" - end - - #desc "to make HTML files named index.html in directories" - #task :dirhtml do - #end - - desc "Make a single large HTML file" - task :singlehtml do - run_sphinx "-b singlehtml #{ALLSPHINXOPTS} #{DOCS_BUILD_DIR}/singlehtml" - end - - #desc "to make pickle files" - #task :pickle do - #end - - desc "Make JSON files" - task :json do - run_sphinx "-b json #{ALLSPHINXOPTS} #{DOCS_BUILD_DIR}/json" - end - - #desc "to make HTML files and a HTML help project" - #task :htmlhelp do - #end - - #desc "to make HTML files and a qthelp project" - #task :qthelp do - #end - - #desc "to make HTML files and a Devhelp project" - #task :devhelp do - #end - - desc "Make an epub" - task :epub do - run_sphinx "-b epub #{ALLSPHINXOPTS} #{DOCS_BUILD_DIR}/epub" - end - - desc "Make LaTeX files, you can set PAPER=a4 or PAPER=letter" - task :latex do - run_sphinx "-b latex #{ALLSPHINXOPTS} #{DOCS_BUILD_DIR}/latex" - end - - desc "Make LaTeX files and run them through pdflatex" - task :latexpdf do - run_sphinx "-b latex #{ALLSPHINXOPTS} #{DOCS_BUILD_DIR}/latex" - puts "Running LaTeX files through pdflatex..." - sh "make -C $(DOCS_BUILD_DIR)/latex all-pdf" - end - - desc "Make text files" - task :text do - run_sphinx "-b text #{ALLSPHINXOPTS} #{DOCS_BUILD_DIR}/text" - end - - #desc "to make manual pages" - #task :man do - #end - - desc "Make an overview of all changed/added/deprecated items" - task :changes do - run_sphinx "-b changes #{ALLSPHINXOPTS} #{DOCS_BUILD_DIR}/changes" - end - - desc "Check all external links for integrity" - task :linkcheck do - run_sphinx "-b linkcheck #{ALLSPHINXOPTS} #{DOCS_BUILD_DIR}/linkcheck" - end - - desc "Run all doctests embedded in the documentation (if enabled)" - task :doctest do - run_sphinx "-b doctest #{ALLSPHINXOPTS} #{DOCS_BUILD_DIR}/doctest" - end -end diff --git a/config.json b/config.json index e50dcc5b3..555f4cfcb 100644 --- a/config.json +++ b/config.json @@ -1,27 +1,27 @@ { - "framework_version": 4.0, - "default_version_number": "2.0.1.0", + "framework_version": 3.5, + "default_version_number": "1.5.3.0", "assembly_info": { - "version": "2.0.1-alpha", - "title": "FluentNHibernate" + "version": "1.5.3.0", + "title": "Fluent NHibernate for .NET 3.5" }, "build": { - "nh_precompiler_switch": "4.x", - "msbuild_runtime": "v4.0" + "nh_precompiler_switch": "3.x", + "target_framework": "v3.5" }, "tests": { - "nunit_framework_runtime": "net-4.0", - "mspec_exec_suffix": "-clr4" + "nunit_framework_runtime": "net-3.5", + "mspec_exec_suffix": "" }, "nuspec": { - "id": "FluentNHibernate", - "version": "2.0.1-alpha", - "title": "FluentNHibernate", - "nhibernate_version_interval": "4.0", - "binaries_folder": "net40" + "id": "FluentNHibernate.Net35", + "version": "1.5.3.0", + "title": "FluentNHibernate for .NET 3.5", + "nhibernate_version_interval": "[3.3.1.4000,4.0)", + "binaries_folder": "net35" } } \ No newline at end of file diff --git a/ripple.config b/ripple.config index bb95de52f..e141a1713 100644 --- a/ripple.config +++ b/ripple.config @@ -1,21 +1,26 @@ - + fluent-nhibernate packaging/nuget src rake rake compile - - Bottles - Bottles.Deployers.IIS - Bottles.Deployment - Bottles.Tools - FubuCore - FubuLocalization - FubuTestingSupport - HtmlTags - Milkman - Storyteer - Storyteller - + Current + Current,NextMajor + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/Examples.FirstAutomappedProject/Examples.FirstAutomappedProject.csproj b/src/Examples.FirstAutomappedProject/Examples.FirstAutomappedProject.csproj index 4a1d1f1a3..da63ccd71 100644 --- a/src/Examples.FirstAutomappedProject/Examples.FirstAutomappedProject.csproj +++ b/src/Examples.FirstAutomappedProject/Examples.FirstAutomappedProject.csproj @@ -1,5 +1,5 @@ - - + + Debug AnyCPU @@ -10,10 +10,10 @@ Properties Examples.FirstAutomappedProject Examples.FirstAutomappedProject - v4.0 + v3.5 512 Examples.FirstAutomappedProject.Program - + 3.5 publish\ @@ -31,7 +31,6 @@ false false true - true @@ -73,7 +72,10 @@ - ..\packages\NHibernate.4.0.0.4000\lib\net40\NHibernate.dll + ..\packages\NHibernate.3.3.1.4000\lib\Net35\NHibernate.dll + + + ..\packages\Iesi.Collections.3.2.0.4000\lib\Net35\Iesi.Collections.dll @@ -81,7 +83,7 @@ - ..\packages\System.Data.SQLite.1.0.66.1\lib\System.Data.SQLite.dll + ..\packages\System.Data.SQLite.1.0.66.1\lib\System.Data.SQLite.DLL @@ -94,6 +96,12 @@ + + + {529145D5-6CC3-4016-89B5-826563024AF1} + FluentNHibernate + + False @@ -111,15 +119,9 @@ true - - - {529145d5-6cc3-4016-89b5-826563024af1} - FluentNHibernate - - - + Designer diff --git a/src/Examples.FirstAutomappedProject/app.config b/src/Examples.FirstAutomappedProject/app.config index c4822d2f9..674b9dd54 100644 --- a/src/Examples.FirstAutomappedProject/app.config +++ b/src/Examples.FirstAutomappedProject/app.config @@ -1,4 +1,4 @@ - + @@ -9,7 +9,7 @@ - - - - + + + + \ No newline at end of file diff --git a/src/Examples.FirstAutomappedProject/packages.config b/src/Examples.FirstAutomappedProject/packages.config index 210d4b17e..ea25400b8 100644 --- a/src/Examples.FirstAutomappedProject/packages.config +++ b/src/Examples.FirstAutomappedProject/packages.config @@ -1,5 +1,6 @@ - + - - + + + \ No newline at end of file diff --git a/src/Examples.FirstProject/Examples.FirstProject.csproj b/src/Examples.FirstProject/Examples.FirstProject.csproj index 54810071b..dbd5488f8 100644 --- a/src/Examples.FirstProject/Examples.FirstProject.csproj +++ b/src/Examples.FirstProject/Examples.FirstProject.csproj @@ -1,5 +1,5 @@ - - + + Debug AnyCPU @@ -10,10 +10,10 @@ Properties Examples.FirstProject Examples.FirstProject - v4.0 + v3.5 512 Examples.FirstProject.Program - + 3.5 publish\ @@ -31,7 +31,6 @@ false false true - true @@ -72,16 +71,19 @@ AllRules.ruleset - - ..\packages\NHibernate.4.0.0.4000\lib\net40\NHibernate.dll + + ..\packages\NHibernate.3.3.1.4000\lib\Net35\NHibernate.dll + + + ..\packages\Iesi.Collections.3.2.0.4000\lib\Net35\Iesi.Collections.dll 3.5 - - ..\packages\System.Data.SQLite.1.0.66.1\lib\System.Data.SQLite.dll + + ..\packages\System.Data.SQLite.1.0.66.1\lib\System.Data.SQLite.DLL @@ -132,9 +134,7 @@ - - Designer - + - -
- -
- -
- -

Not watching

- You only receive notifications for discussions in which you participate or are @mentioned. - - - Watch - -
-
- -
- -
- -

Watching

- You receive notifications for all discussions in this repository. - - - Unwatch - -
-
- -
- -
- -

Ignoring

- You do not receive any notifications for discussions in this repository. - - - Stop ignoring - -
-
- -
- - - - - - - - -
  • - - - Unstar - - - - Star - - -
  • - -
  • - - - Fork - - -
  • - - - - -

    - public - - - / - fluent-nhibernate -

    - - - - - - -
    - - - - - - -
    - - -
    - - - branch: - master - - -
    - -
    -
    - Switch branches/tags - -
    - -
    -
    - -
    -
    - -
    -
    - -
    - - -
    - - gh-pages -
    -
    - - master -
    -
    - - v1.x -
    - - - - -
    - - -
    - -
    - - release-1.3 -
    -
    - - release-1.2 -
    -
    - - release-1.1 -
    - - - - - - -
    Nothing to show
    - -
    - -
    -
    -
    - -
    - - - -
    - - - - - - - - - - -
    - - - - - - - -
    -
    - - - - - - - - -
    - Fetching contributors… - -
    -

    Octocat-spinner-32-eaf2f5

    -

    Cannot retrieve contributors at this time

    -
    -
    - -
    - -
    -
    - -
    -
    -
    -
    - - file - 226 lines (226 sloc) - 9.283 kb -
    -
    -
    - Edit - Raw - Blame - History -
    -
    - -
    -
    - - - - - -
    -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -208
    -209
    -210
    -211
    -212
    -213
    -214
    -215
    -216
    -217
    -218
    -219
    -220
    -221
    -222
    -223
    -224
    -225
    -226
    -
    -
    -
    <xs:schema targetNamespace="urn:nhibernate-configuration-2.2" xmlns="urn:nhibernate-configuration-2.2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:NS="urn:nhibernate-configuration-2.2">
    <xs:annotation>
    <xs:documentation>
    -- This schema was automatically generated by Syntext Dtd2Schema and changed for NH use --
    -- conversion tool (from file: hibernate-configuration-3.0.dtd) --
    -- Copyright (C) 2002, 2003 Syntext Inc. See http://www.syntext.com for updates. --
    </xs:documentation>
    </xs:annotation>
    <!-- Type definitions -->
    <xs:element name="hibernate-configuration">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="bytecode-provider" minOccurs="0" maxOccurs="1" >
              <xs:annotation>
                <xs:documentation>
                  There are 3 default short-cut values
                  - lcg : default for .NET2.0 and higher.
                  - codedom : CodeDOM-based bytecode provider (mostly for .NET1.1).
                  - null : Disable the reflection optimization completely.
                  In addition you can specify the AssemblyQualifiedName of your custom bytecode-provider (implementation of IBytecodeProvider).
                  Note: the bytecode-provider will be tooks in account only when specified in the app.config or web.config.
                </xs:documentation>
              </xs:annotation>
            </xs:element>
    <xs:element ref="reflection-optimizer" maxOccurs="1" minOccurs="0" />
    <xs:element ref="session-factory" minOccurs="0" maxOccurs="1" />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name="class-cache">
    <xs:complexType>
    <xs:sequence>
    </xs:sequence>
    <xs:attribute name="class" type="xs:string" use="required" />
    <xs:attributeGroup ref="cacheSpecification" />
    <xs:attribute name="include">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:enumeration value="all" />
    <xs:enumeration value="non-lazy" />
    </xs:restriction>
    </xs:simpleType>
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="collection-cache">
    <xs:complexType>
    <xs:sequence />
    <xs:attribute name="collection" type="xs:string" use="required" />
    <xs:attributeGroup ref="cacheSpecification" />
    </xs:complexType>
    </xs:element>
    <xs:element name="mapping">
    <xs:annotation>
    <xs:documentation>
    There are 3 possible combinations of mapping attributes
    1 - resource &amp; assembly: NHibernate will read the mapping resource from the specified assembly
    2 - file only: NHibernate will read the mapping from the file.
    3 - assembly only: NHibernate will find all the resources ending in hbm.xml from the assembly.
    </xs:documentation>
    </xs:annotation>
    <xs:complexType>
    <xs:attribute name="resource" />
    <xs:attribute name="file" />
    <xs:attribute name="assembly" />
    </xs:complexType>
    </xs:element>
    <xs:element name="property">
    <xs:complexType>
    <xs:simpleContent>
    <xs:extension base="xs:string">
    <xs:attribute name="name" use="required">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:enumeration value="connection.provider" />
    <xs:enumeration value="connection.driver_class" />
    <xs:enumeration value="connection.connection_string" />
    <xs:enumeration value="connection.isolation" />
    <xs:enumeration value="connection.release_mode" />
    <xs:enumeration value="connection.connection_string_name" />
    <xs:enumeration value="dialect" />
    <xs:enumeration value="default_schema" />
    <xs:enumeration value="show_sql" />
    <xs:enumeration value="max_fetch_depth" />
    <xs:enumeration value="current_session_context_class" />
    <xs:enumeration value="transaction.factory_class" />
    <xs:enumeration value="cache.provider_class" />
    <xs:enumeration value="cache.use_query_cache" />
    <xs:enumeration value="cache.query_cache_factory" />
    <xs:enumeration value="cache.use_second_level_cache" />
    <xs:enumeration value="cache.region_prefix" />
    <xs:enumeration value="cache.use_minimal_puts" />
    <xs:enumeration value="cache.default_expiration" />
    <xs:enumeration value="query.substitutions" />
    <xs:enumeration value="query.factory_class" />
    <xs:enumeration value="query.imports" />
    <xs:enumeration value="hbm2ddl.auto" />
    <xs:enumeration value="hbm2ddl.keywords" />
    <xs:enumeration value="sql_exception_converter" />
    <xs:enumeration value="adonet.wrap_result_sets" />
    <xs:enumeration value="prepare_sql" />
    <xs:enumeration value="command_timeout" />
    <xs:enumeration value="adonet.batch_size" />
    <xs:enumeration value="use_proxy_validator" />
    <xs:enumeration value="xml.output_stylesheet" />
    <xs:enumeration value="generate_statistics" />
    <xs:enumeration value="query.startup_check" />
    <xs:enumeration value="default_catalog" />
    <xs:enumeration value="proxyfactory.factory_class" />
    <xs:enumeration value="adonet.factory_class" />
    <xs:enumeration value="default_batch_fetch_size" />
    <xs:enumeration value="default_entity_mode" />
    <xs:enumeration value="use_sql_comments" />
    <xs:enumeration value="format_sql" />
    <xs:enumeration value="collectiontype.factory_class" />
                    <xs:enumeration value="order_inserts" />
                  </xs:restriction>
    </xs:simpleType>
    </xs:attribute>
    </xs:extension>
    </xs:simpleContent>
    </xs:complexType>
    </xs:element>
    <xs:element name="session-factory">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="property" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="mapping" minOccurs="0" maxOccurs="unbounded" />
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="class-cache" />
    <xs:element ref="collection-cache" />
    </xs:choice>
    <xs:element ref="event" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="listener" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="name" use="optional" />
    </xs:complexType>
    </xs:element>
    <xs:attributeGroup name="cacheSpecification">
    <xs:attribute name="region" type="xs:string" use="optional" />
    <xs:attribute name="usage" use="required">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:enumeration value="read-only" />
    <xs:enumeration value="read-write" />
    <xs:enumeration value="nonstrict-read-write" />
    <xs:enumeration value="transactional" />
    </xs:restriction>
    </xs:simpleType>
    </xs:attribute>
    </xs:attributeGroup>
    <xs:element name="event">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="listener" minOccurs="1" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="type" type="listenerType" use="required" />
    </xs:complexType>
    </xs:element>
    <xs:element name="listener">
    <xs:complexType>
    <xs:sequence />
    <xs:attribute name="class" type="xs:string" use="required" />
    <xs:attribute name="type" type="listenerType" use="optional" />
    </xs:complexType>
    </xs:element>
    <xs:simpleType name="listenerType">
    <xs:restriction base="xs:string">
    <xs:enumeration value="auto-flush" />
    <xs:enumeration value="merge" />
    <xs:enumeration value="create" />
    <xs:enumeration value="create-onflush" />
    <xs:enumeration value="delete" />
    <xs:enumeration value="dirty-check" />
    <xs:enumeration value="evict" />
    <xs:enumeration value="flush" />
    <xs:enumeration value="flush-entity" />
    <xs:enumeration value="load" />
    <xs:enumeration value="load-collection" />
    <xs:enumeration value="lock" />
    <xs:enumeration value="refresh" />
    <xs:enumeration value="replicate" />
    <xs:enumeration value="save-update" />
    <xs:enumeration value="save" />
    <xs:enumeration value="pre-update" />
    <xs:enumeration value="update" />
    <xs:enumeration value="pre-load" />
    <xs:enumeration value="pre-delete" />
    <xs:enumeration value="pre-insert" />
    <xs:enumeration value="post-load" />
    <xs:enumeration value="post-insert" />
    <xs:enumeration value="post-update" />
    <xs:enumeration value="post-delete" />
    <xs:enumeration value="post-commit-update" />
    <xs:enumeration value="post-commit-insert" />
    <xs:enumeration value="post-commit-delete" />
    <xs:enumeration value="pre-collection-recreate" />
    <xs:enumeration value="pre-collection-remove" />
    <xs:enumeration value="pre-collection-update" />
    <xs:enumeration value="post-collection-recreate" />
    <xs:enumeration value="post-collection-remove" />
    <xs:enumeration value="post-collection-update" />
    </xs:restriction>
    </xs:simpleType>
    <xs:element name="bytecode-provider">
    <xs:complexType>
    <xs:sequence>
    </xs:sequence>
    <xs:attribute name="type" default="lcg">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:enumeration value="codedom" />
    <xs:enumeration value="lcg" />
    <xs:enumeration value="null" />
    </xs:restriction>
    </xs:simpleType>
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="reflection-optimizer">
    <xs:complexType>
    <xs:sequence />
    <xs:attribute name="use" type="xs:boolean" />
    </xs:complexType>
    </xs:element>
    </xs:schema>
    -
    -
    - -
    -
    - - - - -
    -
    -
    - - - - -
    - -
    - - - - - - - - - -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    - - - -
    - - Something went wrong with that request. Please try again. - -
    - - - - - - - - diff --git a/tools/NHibernate/nhibernate-mapping.xsd b/tools/NHibernate/nhibernate-mapping.xsd deleted file mode 100644 index df59ad0dd..000000000 --- a/tools/NHibernate/nhibernate-mapping.xsd +++ /dev/null @@ -1,2316 +0,0 @@ - - - - - - - - - fluent-nhibernate/tools/NHibernate/nhibernate-mapping.xsd at master · jagregory/fluent-nhibernate - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - - - - - -
    -
    - - - - - -
    - - - - - -
    - - -
    -
    - - - - - - - - - - -
    -
    - -
    - - - - - - - - - - -
    -
    - - - - - - - -
    -
    - -
    -
    -
    - - - -
      - -
    • - Pull Request -
    • - -
    • -
      - -
      - - - - Unwatch - - - -
      -
      -
      - Notification status - -
      - -
      - -
      - -
      - -

      Not watching

      - You only receive notifications for discussions in which you participate or are @mentioned. - - - Watch - -
      -
      - -
      - -
      - -

      Watching

      - You receive notifications for all discussions in this repository. - - - Unwatch - -
      -
      - -
      - -
      - -

      Ignoring

      - You do not receive any notifications for discussions in this repository. - - - Stop ignoring - -
      -
      - -
      - -
      -
      -
      - -
      -
    • - -
    • - - - Unstar - - - - Star - - -
    • - -
    • - - - Fork - - -
    • - - -
    - -

    - public - - - / - fluent-nhibernate -

    -
    - - - - - -
    - - - - - - -
    - - -
    - - - branch: - master - - -
    - -
    -
    - Switch branches/tags - -
    - -
    -
    - -
    -
    - -
    -
    - -
    - - -
    - - gh-pages -
    -
    - - master -
    -
    - - v1.x -
    - - - - -
    - - -
    - -
    - - release-1.3 -
    -
    - - release-1.2 -
    -
    - - release-1.1 -
    - - - - - - -
    Nothing to show
    - -
    - -
    -
    -
    - -
    - - - -
    - - - - - - - -
    -
    - -
    - - - - - - - -
    -
    - - - - - - - - -
    - Fetching contributors… - -
    -

    Octocat-spinner-32-eaf2f5

    -

    Cannot retrieve contributors at this time

    -
    -
    - -
    - -
    -
    - -
    -
    -
    -
    - - file - 1699 lines (1699 sloc) - 65.125 kb -
    -
    -
    - Edit - Raw - Blame - History -
    -
    - -
    -
    - - - - - -
    -
    1
    -2
    -3
    -4
    -5
    -6
    -7
    -8
    -9
    -10
    -11
    -12
    -13
    -14
    -15
    -16
    -17
    -18
    -19
    -20
    -21
    -22
    -23
    -24
    -25
    -26
    -27
    -28
    -29
    -30
    -31
    -32
    -33
    -34
    -35
    -36
    -37
    -38
    -39
    -40
    -41
    -42
    -43
    -44
    -45
    -46
    -47
    -48
    -49
    -50
    -51
    -52
    -53
    -54
    -55
    -56
    -57
    -58
    -59
    -60
    -61
    -62
    -63
    -64
    -65
    -66
    -67
    -68
    -69
    -70
    -71
    -72
    -73
    -74
    -75
    -76
    -77
    -78
    -79
    -80
    -81
    -82
    -83
    -84
    -85
    -86
    -87
    -88
    -89
    -90
    -91
    -92
    -93
    -94
    -95
    -96
    -97
    -98
    -99
    -100
    -101
    -102
    -103
    -104
    -105
    -106
    -107
    -108
    -109
    -110
    -111
    -112
    -113
    -114
    -115
    -116
    -117
    -118
    -119
    -120
    -121
    -122
    -123
    -124
    -125
    -126
    -127
    -128
    -129
    -130
    -131
    -132
    -133
    -134
    -135
    -136
    -137
    -138
    -139
    -140
    -141
    -142
    -143
    -144
    -145
    -146
    -147
    -148
    -149
    -150
    -151
    -152
    -153
    -154
    -155
    -156
    -157
    -158
    -159
    -160
    -161
    -162
    -163
    -164
    -165
    -166
    -167
    -168
    -169
    -170
    -171
    -172
    -173
    -174
    -175
    -176
    -177
    -178
    -179
    -180
    -181
    -182
    -183
    -184
    -185
    -186
    -187
    -188
    -189
    -190
    -191
    -192
    -193
    -194
    -195
    -196
    -197
    -198
    -199
    -200
    -201
    -202
    -203
    -204
    -205
    -206
    -207
    -208
    -209
    -210
    -211
    -212
    -213
    -214
    -215
    -216
    -217
    -218
    -219
    -220
    -221
    -222
    -223
    -224
    -225
    -226
    -227
    -228
    -229
    -230
    -231
    -232
    -233
    -234
    -235
    -236
    -237
    -238
    -239
    -240
    -241
    -242
    -243
    -244
    -245
    -246
    -247
    -248
    -249
    -250
    -251
    -252
    -253
    -254
    -255
    -256
    -257
    -258
    -259
    -260
    -261
    -262
    -263
    -264
    -265
    -266
    -267
    -268
    -269
    -270
    -271
    -272
    -273
    -274
    -275
    -276
    -277
    -278
    -279
    -280
    -281
    -282
    -283
    -284
    -285
    -286
    -287
    -288
    -289
    -290
    -291
    -292
    -293
    -294
    -295
    -296
    -297
    -298
    -299
    -300
    -301
    -302
    -303
    -304
    -305
    -306
    -307
    -308
    -309
    -310
    -311
    -312
    -313
    -314
    -315
    -316
    -317
    -318
    -319
    -320
    -321
    -322
    -323
    -324
    -325
    -326
    -327
    -328
    -329
    -330
    -331
    -332
    -333
    -334
    -335
    -336
    -337
    -338
    -339
    -340
    -341
    -342
    -343
    -344
    -345
    -346
    -347
    -348
    -349
    -350
    -351
    -352
    -353
    -354
    -355
    -356
    -357
    -358
    -359
    -360
    -361
    -362
    -363
    -364
    -365
    -366
    -367
    -368
    -369
    -370
    -371
    -372
    -373
    -374
    -375
    -376
    -377
    -378
    -379
    -380
    -381
    -382
    -383
    -384
    -385
    -386
    -387
    -388
    -389
    -390
    -391
    -392
    -393
    -394
    -395
    -396
    -397
    -398
    -399
    -400
    -401
    -402
    -403
    -404
    -405
    -406
    -407
    -408
    -409
    -410
    -411
    -412
    -413
    -414
    -415
    -416
    -417
    -418
    -419
    -420
    -421
    -422
    -423
    -424
    -425
    -426
    -427
    -428
    -429
    -430
    -431
    -432
    -433
    -434
    -435
    -436
    -437
    -438
    -439
    -440
    -441
    -442
    -443
    -444
    -445
    -446
    -447
    -448
    -449
    -450
    -451
    -452
    -453
    -454
    -455
    -456
    -457
    -458
    -459
    -460
    -461
    -462
    -463
    -464
    -465
    -466
    -467
    -468
    -469
    -470
    -471
    -472
    -473
    -474
    -475
    -476
    -477
    -478
    -479
    -480
    -481
    -482
    -483
    -484
    -485
    -486
    -487
    -488
    -489
    -490
    -491
    -492
    -493
    -494
    -495
    -496
    -497
    -498
    -499
    -500
    -501
    -502
    -503
    -504
    -505
    -506
    -507
    -508
    -509
    -510
    -511
    -512
    -513
    -514
    -515
    -516
    -517
    -518
    -519
    -520
    -521
    -522
    -523
    -524
    -525
    -526
    -527
    -528
    -529
    -530
    -531
    -532
    -533
    -534
    -535
    -536
    -537
    -538
    -539
    -540
    -541
    -542
    -543
    -544
    -545
    -546
    -547
    -548
    -549
    -550
    -551
    -552
    -553
    -554
    -555
    -556
    -557
    -558
    -559
    -560
    -561
    -562
    -563
    -564
    -565
    -566
    -567
    -568
    -569
    -570
    -571
    -572
    -573
    -574
    -575
    -576
    -577
    -578
    -579
    -580
    -581
    -582
    -583
    -584
    -585
    -586
    -587
    -588
    -589
    -590
    -591
    -592
    -593
    -594
    -595
    -596
    -597
    -598
    -599
    -600
    -601
    -602
    -603
    -604
    -605
    -606
    -607
    -608
    -609
    -610
    -611
    -612
    -613
    -614
    -615
    -616
    -617
    -618
    -619
    -620
    -621
    -622
    -623
    -624
    -625
    -626
    -627
    -628
    -629
    -630
    -631
    -632
    -633
    -634
    -635
    -636
    -637
    -638
    -639
    -640
    -641
    -642
    -643
    -644
    -645
    -646
    -647
    -648
    -649
    -650
    -651
    -652
    -653
    -654
    -655
    -656
    -657
    -658
    -659
    -660
    -661
    -662
    -663
    -664
    -665
    -666
    -667
    -668
    -669
    -670
    -671
    -672
    -673
    -674
    -675
    -676
    -677
    -678
    -679
    -680
    -681
    -682
    -683
    -684
    -685
    -686
    -687
    -688
    -689
    -690
    -691
    -692
    -693
    -694
    -695
    -696
    -697
    -698
    -699
    -700
    -701
    -702
    -703
    -704
    -705
    -706
    -707
    -708
    -709
    -710
    -711
    -712
    -713
    -714
    -715
    -716
    -717
    -718
    -719
    -720
    -721
    -722
    -723
    -724
    -725
    -726
    -727
    -728
    -729
    -730
    -731
    -732
    -733
    -734
    -735
    -736
    -737
    -738
    -739
    -740
    -741
    -742
    -743
    -744
    -745
    -746
    -747
    -748
    -749
    -750
    -751
    -752
    -753
    -754
    -755
    -756
    -757
    -758
    -759
    -760
    -761
    -762
    -763
    -764
    -765
    -766
    -767
    -768
    -769
    -770
    -771
    -772
    -773
    -774
    -775
    -776
    -777
    -778
    -779
    -780
    -781
    -782
    -783
    -784
    -785
    -786
    -787
    -788
    -789
    -790
    -791
    -792
    -793
    -794
    -795
    -796
    -797
    -798
    -799
    -800
    -801
    -802
    -803
    -804
    -805
    -806
    -807
    -808
    -809
    -810
    -811
    -812
    -813
    -814
    -815
    -816
    -817
    -818
    -819
    -820
    -821
    -822
    -823
    -824
    -825
    -826
    -827
    -828
    -829
    -830
    -831
    -832
    -833
    -834
    -835
    -836
    -837
    -838
    -839
    -840
    -841
    -842
    -843
    -844
    -845
    -846
    -847
    -848
    -849
    -850
    -851
    -852
    -853
    -854
    -855
    -856
    -857
    -858
    -859
    -860
    -861
    -862
    -863
    -864
    -865
    -866
    -867
    -868
    -869
    -870
    -871
    -872
    -873
    -874
    -875
    -876
    -877
    -878
    -879
    -880
    -881
    -882
    -883
    -884
    -885
    -886
    -887
    -888
    -889
    -890
    -891
    -892
    -893
    -894
    -895
    -896
    -897
    -898
    -899
    -900
    -901
    -902
    -903
    -904
    -905
    -906
    -907
    -908
    -909
    -910
    -911
    -912
    -913
    -914
    -915
    -916
    -917
    -918
    -919
    -920
    -921
    -922
    -923
    -924
    -925
    -926
    -927
    -928
    -929
    -930
    -931
    -932
    -933
    -934
    -935
    -936
    -937
    -938
    -939
    -940
    -941
    -942
    -943
    -944
    -945
    -946
    -947
    -948
    -949
    -950
    -951
    -952
    -953
    -954
    -955
    -956
    -957
    -958
    -959
    -960
    -961
    -962
    -963
    -964
    -965
    -966
    -967
    -968
    -969
    -970
    -971
    -972
    -973
    -974
    -975
    -976
    -977
    -978
    -979
    -980
    -981
    -982
    -983
    -984
    -985
    -986
    -987
    -988
    -989
    -990
    -991
    -992
    -993
    -994
    -995
    -996
    -997
    -998
    -999
    -1000
    -1001
    -1002
    -1003
    -1004
    -1005
    -1006
    -1007
    -1008
    -1009
    -1010
    -1011
    -1012
    -1013
    -1014
    -1015
    -1016
    -1017
    -1018
    -1019
    -1020
    -1021
    -1022
    -1023
    -1024
    -1025
    -1026
    -1027
    -1028
    -1029
    -1030
    -1031
    -1032
    -1033
    -1034
    -1035
    -1036
    -1037
    -1038
    -1039
    -1040
    -1041
    -1042
    -1043
    -1044
    -1045
    -1046
    -1047
    -1048
    -1049
    -1050
    -1051
    -1052
    -1053
    -1054
    -1055
    -1056
    -1057
    -1058
    -1059
    -1060
    -1061
    -1062
    -1063
    -1064
    -1065
    -1066
    -1067
    -1068
    -1069
    -1070
    -1071
    -1072
    -1073
    -1074
    -1075
    -1076
    -1077
    -1078
    -1079
    -1080
    -1081
    -1082
    -1083
    -1084
    -1085
    -1086
    -1087
    -1088
    -1089
    -1090
    -1091
    -1092
    -1093
    -1094
    -1095
    -1096
    -1097
    -1098
    -1099
    -1100
    -1101
    -1102
    -1103
    -1104
    -1105
    -1106
    -1107
    -1108
    -1109
    -1110
    -1111
    -1112
    -1113
    -1114
    -1115
    -1116
    -1117
    -1118
    -1119
    -1120
    -1121
    -1122
    -1123
    -1124
    -1125
    -1126
    -1127
    -1128
    -1129
    -1130
    -1131
    -1132
    -1133
    -1134
    -1135
    -1136
    -1137
    -1138
    -1139
    -1140
    -1141
    -1142
    -1143
    -1144
    -1145
    -1146
    -1147
    -1148
    -1149
    -1150
    -1151
    -1152
    -1153
    -1154
    -1155
    -1156
    -1157
    -1158
    -1159
    -1160
    -1161
    -1162
    -1163
    -1164
    -1165
    -1166
    -1167
    -1168
    -1169
    -1170
    -1171
    -1172
    -1173
    -1174
    -1175
    -1176
    -1177
    -1178
    -1179
    -1180
    -1181
    -1182
    -1183
    -1184
    -1185
    -1186
    -1187
    -1188
    -1189
    -1190
    -1191
    -1192
    -1193
    -1194
    -1195
    -1196
    -1197
    -1198
    -1199
    -1200
    -1201
    -1202
    -1203
    -1204
    -1205
    -1206
    -1207
    -1208
    -1209
    -1210
    -1211
    -1212
    -1213
    -1214
    -1215
    -1216
    -1217
    -1218
    -1219
    -1220
    -1221
    -1222
    -1223
    -1224
    -1225
    -1226
    -1227
    -1228
    -1229
    -1230
    -1231
    -1232
    -1233
    -1234
    -1235
    -1236
    -1237
    -1238
    -1239
    -1240
    -1241
    -1242
    -1243
    -1244
    -1245
    -1246
    -1247
    -1248
    -1249
    -1250
    -1251
    -1252
    -1253
    -1254
    -1255
    -1256
    -1257
    -1258
    -1259
    -1260
    -1261
    -1262
    -1263
    -1264
    -1265
    -1266
    -1267
    -1268
    -1269
    -1270
    -1271
    -1272
    -1273
    -1274
    -1275
    -1276
    -1277
    -1278
    -1279
    -1280
    -1281
    -1282
    -1283
    -1284
    -1285
    -1286
    -1287
    -1288
    -1289
    -1290
    -1291
    -1292
    -1293
    -1294
    -1295
    -1296
    -1297
    -1298
    -1299
    -1300
    -1301
    -1302
    -1303
    -1304
    -1305
    -1306
    -1307
    -1308
    -1309
    -1310
    -1311
    -1312
    -1313
    -1314
    -1315
    -1316
    -1317
    -1318
    -1319
    -1320
    -1321
    -1322
    -1323
    -1324
    -1325
    -1326
    -1327
    -1328
    -1329
    -1330
    -1331
    -1332
    -1333
    -1334
    -1335
    -1336
    -1337
    -1338
    -1339
    -1340
    -1341
    -1342
    -1343
    -1344
    -1345
    -1346
    -1347
    -1348
    -1349
    -1350
    -1351
    -1352
    -1353
    -1354
    -1355
    -1356
    -1357
    -1358
    -1359
    -1360
    -1361
    -1362
    -1363
    -1364
    -1365
    -1366
    -1367
    -1368
    -1369
    -1370
    -1371
    -1372
    -1373
    -1374
    -1375
    -1376
    -1377
    -1378
    -1379
    -1380
    -1381
    -1382
    -1383
    -1384
    -1385
    -1386
    -1387
    -1388
    -1389
    -1390
    -1391
    -1392
    -1393
    -1394
    -1395
    -1396
    -1397
    -1398
    -1399
    -1400
    -1401
    -1402
    -1403
    -1404
    -1405
    -1406
    -1407
    -1408
    -1409
    -1410
    -1411
    -1412
    -1413
    -1414
    -1415
    -1416
    -1417
    -1418
    -1419
    -1420
    -1421
    -1422
    -1423
    -1424
    -1425
    -1426
    -1427
    -1428
    -1429
    -1430
    -1431
    -1432
    -1433
    -1434
    -1435
    -1436
    -1437
    -1438
    -1439
    -1440
    -1441
    -1442
    -1443
    -1444
    -1445
    -1446
    -1447
    -1448
    -1449
    -1450
    -1451
    -1452
    -1453
    -1454
    -1455
    -1456
    -1457
    -1458
    -1459
    -1460
    -1461
    -1462
    -1463
    -1464
    -1465
    -1466
    -1467
    -1468
    -1469
    -1470
    -1471
    -1472
    -1473
    -1474
    -1475
    -1476
    -1477
    -1478
    -1479
    -1480
    -1481
    -1482
    -1483
    -1484
    -1485
    -1486
    -1487
    -1488
    -1489
    -1490
    -1491
    -1492
    -1493
    -1494
    -1495
    -1496
    -1497
    -1498
    -1499
    -1500
    -1501
    -1502
    -1503
    -1504
    -1505
    -1506
    -1507
    -1508
    -1509
    -1510
    -1511
    -1512
    -1513
    -1514
    -1515
    -1516
    -1517
    -1518
    -1519
    -1520
    -1521
    -1522
    -1523
    -1524
    -1525
    -1526
    -1527
    -1528
    -1529
    -1530
    -1531
    -1532
    -1533
    -1534
    -1535
    -1536
    -1537
    -1538
    -1539
    -1540
    -1541
    -1542
    -1543
    -1544
    -1545
    -1546
    -1547
    -1548
    -1549
    -1550
    -1551
    -1552
    -1553
    -1554
    -1555
    -1556
    -1557
    -1558
    -1559
    -1560
    -1561
    -1562
    -1563
    -1564
    -1565
    -1566
    -1567
    -1568
    -1569
    -1570
    -1571
    -1572
    -1573
    -1574
    -1575
    -1576
    -1577
    -1578
    -1579
    -1580
    -1581
    -1582
    -1583
    -1584
    -1585
    -1586
    -1587
    -1588
    -1589
    -1590
    -1591
    -1592
    -1593
    -1594
    -1595
    -1596
    -1597
    -1598
    -1599
    -1600
    -1601
    -1602
    -1603
    -1604
    -1605
    -1606
    -1607
    -1608
    -1609
    -1610
    -1611
    -1612
    -1613
    -1614
    -1615
    -1616
    -1617
    -1618
    -1619
    -1620
    -1621
    -1622
    -1623
    -1624
    -1625
    -1626
    -1627
    -1628
    -1629
    -1630
    -1631
    -1632
    -1633
    -1634
    -1635
    -1636
    -1637
    -1638
    -1639
    -1640
    -1641
    -1642
    -1643
    -1644
    -1645
    -1646
    -1647
    -1648
    -1649
    -1650
    -1651
    -1652
    -1653
    -1654
    -1655
    -1656
    -1657
    -1658
    -1659
    -1660
    -1661
    -1662
    -1663
    -1664
    -1665
    -1666
    -1667
    -1668
    -1669
    -1670
    -1671
    -1672
    -1673
    -1674
    -1675
    -1676
    -1677
    -1678
    -1679
    -1680
    -1681
    -1682
    -1683
    -1684
    -1685
    -1686
    -1687
    -1688
    -1689
    -1690
    -1691
    -1692
    -1693
    -1694
    -1695
    -1696
    -1697
    -1698
    -1699
    -
    -
    -
    <xs:schema targetNamespace="urn:nhibernate-mapping-2.2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:nhibernate-mapping-2.2" elementFormDefault="qualified" attributeFormDefault="unqualified">
    <xs:element name="any">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="meta-value" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="column" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="column" type="xs:string" />
    <xs:attribute name="id-type" use="required" type="xs:string" />
    <xs:attribute name="meta-type" type="xs:string" />
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="access" type="xs:string" />
    <xs:attribute name="insert" default="true" type="xs:boolean" />
    <xs:attribute name="update" default="true" type="xs:boolean" />
    <xs:attribute name="cascade" type="xs:string" />
    <xs:attribute name="index" type="xs:string" />
    <xs:attribute name="optimistic-lock" default="true" type="xs:boolean" />
    <xs:attribute name="lazy" default="false" type="xs:boolean" />
    <xs:attribute name="node" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="array">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="subselect" minOccurs="0" />
    <xs:element ref="cache" minOccurs="0" />
    <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="comment" minOccurs="0" />
    <xs:element ref="key" />
    <xs:choice>
    <xs:element ref="index" />
    <xs:element ref="list-index" />
    </xs:choice>
    <xs:choice>
    <xs:element ref="element" />
    <xs:element ref="one-to-many" />
    <xs:element ref="many-to-many" />
    <xs:element ref="composite-element" />
    <xs:element ref="many-to-any" />
    </xs:choice>
    <xs:element ref="loader" minOccurs="0" />
    <xs:element ref="sql-insert" minOccurs="0" />
    <xs:element ref="sql-update" minOccurs="0" />
    <xs:element ref="sql-delete" minOccurs="0" />
    <xs:element ref="sql-delete-all" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="access" type="xs:string" />
    <xs:attribute name="table" type="xs:string" />
    <xs:attribute name="schema" type="xs:string" />
    <xs:attribute name="catalog" type="xs:string" />
    <xs:attribute name="subselect" type="xs:string" />
    <xs:attribute name="inverse" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="mutable" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="element-class" type="xs:string" />
    <xs:attribute name="cascade" type="xs:string" />
    <xs:attribute name="where" type="xs:string" />
    <xs:attribute name="batch-size" type="xs:int" />
    <xs:attribute name="outer-join" type="outerJoinStrategy">
    </xs:attribute>
    <xs:attribute name="fetch" type="collectionFetchMode">
    </xs:attribute>
    <xs:attribute name="persister" type="xs:string" />
    <xs:attribute name="collection-type" type="xs:string" />
    <xs:attribute name="check" type="xs:string" />
    <xs:attribute name="optimistic-lock" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="node" type="xs:string" />
    <xs:attribute name="embed-xml" default="true" type="xs:boolean">
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="bag">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="subselect" minOccurs="0" />
    <xs:element ref="cache" minOccurs="0" />
    <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="comment" minOccurs="0" />
    <xs:element ref="key" />
    <xs:choice>
    <xs:element ref="element" />
    <xs:element ref="one-to-many" />
    <xs:element ref="many-to-many" />
    <xs:element ref="composite-element" />
    <xs:element ref="many-to-any" />
    </xs:choice>
    <xs:element ref="loader" minOccurs="0" />
    <xs:element ref="sql-insert" minOccurs="0" />
    <xs:element ref="sql-update" minOccurs="0" />
    <xs:element ref="sql-delete" minOccurs="0" />
    <xs:element ref="sql-delete-all" minOccurs="0" />
    <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attributeGroup ref="baseCollectionAttributes" />
    </xs:complexType>
    </xs:element>
    <xs:element name="cache">
    <xs:complexType>
    <xs:attribute name="usage" use="required">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:enumeration value="read-only" />
    <xs:enumeration value="read-write" />
    <xs:enumeration value="nonstrict-read-write" />
    <xs:enumeration value="transactional" />
    </xs:restriction>
    </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="region" type="xs:string" use="optional">
    </xs:attribute>
    <xs:attribute name="include" default="all">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:enumeration value="all" />
    <xs:enumeration value="non-lazy" />
    </xs:restriction>
    </xs:simpleType>
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="class">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="subselect" minOccurs="0" />
    <xs:element ref="cache" minOccurs="0" />
    <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="comment" minOccurs="0" />
    <xs:element ref="tuplizer" minOccurs="0" maxOccurs="unbounded" />
    <xs:choice>
    <xs:element ref="id" />
    <xs:element ref="composite-id" />
    </xs:choice>
    <xs:element ref="discriminator" minOccurs="0" />
    <xs:element ref="natural-id" minOccurs="0" />
    <xs:choice minOccurs="0">
    <xs:element ref="version" />
    <xs:element ref="timestamp" />
    </xs:choice>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="property" />
    <xs:element ref="many-to-one" />
    <xs:element ref="one-to-one" />
    <xs:element ref="component" />
    <xs:element ref="dynamic-component" />
    <xs:element ref="properties" />
    <xs:element ref="any" />
    <xs:element ref="map" />
    <xs:element ref="set" />
    <xs:element ref="list" />
    <xs:element ref="bag" />
    <xs:element ref="idbag" />
    <xs:element ref="array" />
    <xs:element ref="primitive-array" />
    </xs:choice>
    <xs:choice>
    <xs:sequence>
    <xs:element ref="join" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="subclass" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:element ref="joined-subclass" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="union-subclass" minOccurs="0" maxOccurs="unbounded" />
    </xs:choice>
    <xs:element ref="loader" minOccurs="0" />
    <xs:element ref="sql-insert" minOccurs="0" />
    <xs:element ref="sql-update" minOccurs="0" />
    <xs:element ref="sql-delete" minOccurs="0" />
    <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="resultset" minOccurs="0" maxOccurs="unbounded" />
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="query" />
    <xs:element ref="sql-query" />
    </xs:choice>
    </xs:sequence>
    <xs:attribute name="entity-name" type="xs:string">
    </xs:attribute>
    <xs:attribute name="name" type="xs:string" />
    <xs:attribute name="proxy" type="xs:string" />
    <xs:attribute name="lazy" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="schema-action" type="xs:string" />
    <xs:attribute name="table" type="xs:string" />
    <xs:attribute name="schema" type="xs:string" />
    <xs:attribute name="catalog" type="xs:string" />
    <xs:attribute name="subselect" type="xs:string" />
    <xs:attribute name="discriminator-value" type="xs:string" />
    <xs:attribute name="mutable" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="abstract" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="polymorphism" default="implicit" type="polymorphismType">
    </xs:attribute>
    <xs:attribute name="where" type="xs:string" />
    <xs:attribute name="persister" type="xs:string" />
    <xs:attribute name="dynamic-update" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="dynamic-insert" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="batch-size" type="xs:int" />
    <xs:attribute name="select-before-update" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="optimistic-lock" default="version" type="optimisticLockMode">
    </xs:attribute>
    <xs:attribute name="check" type="xs:string" />
    <xs:attribute name="rowid" type="xs:string" />
    <xs:attribute name="node" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="collection-id">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="generator" />
    </xs:sequence>
    <xs:attribute name="column" use="required" type="xs:string" />
    <xs:attribute name="type" use="required" type="xs:string" />
    <xs:attribute name="length" type="xs:positiveInteger" />
    </xs:complexType>
    </xs:element>
    <xs:element name="column">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="comment" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="name" use="required" type="xs:string">
    </xs:attribute>
    <xs:attribute name="length" type="xs:positiveInteger" />
    <xs:attribute name="precision" type="xs:positiveInteger" />
    <xs:attribute name="scale" type="xs:nonNegativeInteger" />
    <xs:attribute name="not-null" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="unique" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="unique-key" type="xs:string" />
    <xs:attribute name="sql-type" type="xs:string" />
    <xs:attribute name="index" type="xs:string" />
    <xs:attribute name="check" type="xs:string" />
    <xs:attribute name="default" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="comment">
    <xs:complexType mixed="true">
    </xs:complexType>
    </xs:element>
    <xs:element name="component">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="tuplizer" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="parent" minOccurs="0" />
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="property" />
    <xs:element ref="many-to-one" />
    <xs:element ref="one-to-one" />
    <xs:element ref="component" />
    <xs:element ref="dynamic-component" />
    <xs:element ref="any" />
    <xs:element ref="map" />
    <xs:element ref="set" />
    <xs:element ref="list" />
    <xs:element ref="bag" />
    <xs:element ref="idbag" />
    <xs:element ref="array" />
    <xs:element ref="primitive-array" />
    </xs:choice>
    </xs:sequence>
    <xs:attribute name="class" type="xs:string" />
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="access" type="xs:string" />
    <xs:attribute name="unique" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="update" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="insert" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="lazy" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="optimistic-lock" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="node" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="composite-element">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="parent" minOccurs="0" />
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="property" />
    <xs:element ref="many-to-one" />
    <xs:element ref="any" />
    <xs:element ref="nested-composite-element" />
    </xs:choice>
    </xs:sequence>
    <xs:attribute name="class" use="required" type="xs:string" />
    <xs:attribute name="node" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="composite-id">
    <xs:annotation>
    <xs:documentation>A composite key may be modelled by a .NET class with a property for each key column. The class must be Serializable and override equals() and hashCode()</xs:documentation>
    </xs:annotation>
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:choice maxOccurs="unbounded">
    <xs:element ref="key-property" />
    <xs:element ref="key-many-to-one" />
    </xs:choice>
    </xs:sequence>
    <xs:attribute name="class" type="xs:string" />
    <xs:attribute name="mapped" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="name" type="xs:string" />
    <xs:attribute name="node" type="xs:string" />
    <xs:attribute name="access" type="xs:string" />
    <xs:attribute name="unsaved-value" default="undefined" type="unsavedValueType">
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="composite-index">
    <xs:complexType>
    <xs:sequence>
    <xs:choice maxOccurs="unbounded">
    <xs:element ref="key-property" />
    <xs:element ref="key-many-to-one" />
    </xs:choice>
    </xs:sequence>
    <xs:attribute name="class" use="required" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="composite-map-key">
    <xs:complexType>
    <xs:sequence>
    <xs:choice maxOccurs="unbounded">
    <xs:element ref="key-property" />
    <xs:element ref="key-many-to-one" />
    </xs:choice>
    </xs:sequence>
    <xs:attribute name="class" use="required" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="create">
    <xs:complexType mixed="true">
    </xs:complexType>
    </xs:element>
    <xs:element name="database-object">
    <xs:complexType>
    <xs:sequence>
    <xs:choice>
    <xs:element ref="definition" />
    <xs:sequence>
    <xs:element ref="create" />
    <xs:element ref="drop" />
    </xs:sequence>
    </xs:choice>
    <xs:element ref="dialect-scope" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    </xs:complexType>
    </xs:element>
    <xs:element name="definition">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="class" use="required" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="dialect-scope">
    <xs:complexType mixed="true">
    <xs:attribute name="name" use="required" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="discriminator">
    <xs:complexType>
    <xs:sequence>
    <xs:choice minOccurs="0">
    <xs:element ref="column" />
    <xs:element ref="formula" />
    </xs:choice>
    </xs:sequence>
    <xs:attribute name="column" type="xs:string" />
    <xs:attribute name="formula" type="xs:string" />
    <xs:attribute name="type" default="string" type="xs:string" />
    <xs:attribute name="not-null" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="length" type="xs:positiveInteger" />
    <xs:attribute name="force" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="insert" default="true" type="xs:boolean">
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="drop">
    <xs:complexType mixed="true">
    </xs:complexType>
    </xs:element>
    <xs:element name="dynamic-component">
    <xs:complexType>
    <xs:sequence>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="property" />
    <xs:element ref="many-to-one" />
    <xs:element ref="one-to-one" />
    <xs:element ref="component" />
    <xs:element ref="dynamic-component" />
    <xs:element ref="any" />
    <xs:element ref="map" />
    <xs:element ref="set" />
    <xs:element ref="list" />
    <xs:element ref="bag" />
    <xs:element ref="array" />
    <xs:element ref="primitive-array" />
    </xs:choice>
    </xs:sequence>
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="access" type="xs:string" />
    <xs:attribute name="unique" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="update" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="insert" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="optimistic-lock" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="node" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="element">
    <xs:complexType>
    <xs:sequence>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="column" />
    <xs:element ref="formula" />
    </xs:choice>
    <xs:element ref="type" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="column" type="xs:string" />
    <xs:attribute name="node" type="xs:string" />
    <xs:attribute name="formula" type="xs:string" />
    <xs:attribute name="type" type="xs:string" />
    <xs:attribute name="length" type="xs:positiveInteger" />
    <xs:attribute name="precision" type="xs:positiveInteger" />
    <xs:attribute name="scale" type="xs:nonNegativeInteger" />
    <xs:attribute name="not-null" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="unique" default="false" type="xs:boolean">
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="filter">
    <xs:complexType mixed="true">
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="condition" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="filter-def">
    <xs:complexType mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="filter-param" />
    </xs:choice>
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="condition" type="xs:string" />
    <xs:attribute name="use-many-to-one" default="true" type="xs:boolean"/>
    </xs:complexType>
    </xs:element>
    <xs:element name="filter-param">
    <xs:complexType>
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="type" use="required" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="formula">
    <xs:complexType mixed="true">
    </xs:complexType>
    </xs:element>
    <xs:element name="generator">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="class" use="required" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="hibernate-mapping">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="typedef" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="import" minOccurs="0" maxOccurs="unbounded" />
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="class" />
    <xs:element ref="subclass" />
    <xs:element ref="joined-subclass" />
    <xs:element ref="union-subclass" />
    </xs:choice>
    <xs:element ref="resultset" minOccurs="0" maxOccurs="unbounded" />
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="query" />
    <xs:element ref="sql-query" />
    </xs:choice>
    <xs:element ref="filter-def" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="database-object" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="schema" type="xs:string" />
    <xs:attribute name="catalog" type="xs:string" />
    <xs:attribute name="default-cascade" default="none" type="xs:string" />
    <xs:attribute name="default-access" default="property" type="xs:string" />
    <xs:attribute name="default-lazy" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="auto-import" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="namespace" type="xs:string" use="optional">
    <xs:annotation>
    <xs:documentation>Namespace used to find not-Fully Qualified Type Names</xs:documentation>
    </xs:annotation>
    </xs:attribute>
    <xs:attribute name="assembly" type="xs:string" use="optional">
    <xs:annotation>
    <xs:documentation>Assembly used to find not-Fully Qualified Type Names</xs:documentation>
    </xs:annotation>
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="id">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="type" minOccurs="0" />
    <xs:element ref="generator" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="name" type="xs:string" />
    <xs:attribute name="node" type="xs:string" />
    <xs:attribute name="access" type="xs:string" />
    <xs:attribute name="column" type="xs:string" />
    <xs:attribute name="type" type="xs:string" />
    <xs:attribute name="length" type="xs:positiveInteger" />
    <xs:attribute name="unsaved-value" type="xs:string" />
    <xs:attribute name="generator" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="idbag">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="subselect" minOccurs="0" />
    <xs:element ref="cache" minOccurs="0" />
    <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="comment" minOccurs="0" />
    <xs:element ref="collection-id" />
    <xs:element ref="key" />
    <xs:choice>
    <xs:element ref="element" />
    <xs:element ref="many-to-many" />
    <xs:element ref="composite-element" />
    <xs:element ref="many-to-any" />
    </xs:choice>
    <xs:element ref="loader" minOccurs="0" />
    <xs:element ref="sql-insert" minOccurs="0" />
    <xs:element ref="sql-update" minOccurs="0" />
    <xs:element ref="sql-delete" minOccurs="0" />
    <xs:element ref="sql-delete-all" minOccurs="0" />
    <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attributeGroup ref="baseCollectionAttributes" />
    </xs:complexType>
    </xs:element>
    <xs:element name="import">
    <xs:complexType>
    <xs:attribute name="class" use="required" type="xs:string" />
    <xs:attribute name="rename" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="index">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="column" type="xs:string" />
    <xs:attribute name="type" type="xs:string" />
    <xs:attribute name="length" type="xs:positiveInteger" />
    </xs:complexType>
    </xs:element>
    <xs:element name="index-many-to-any">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="column" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="id-type" use="required" type="xs:string" />
    <xs:attribute name="meta-type" type="xs:string" />
    <xs:attribute name="column" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="index-many-to-many">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="class" use="required" type="xs:string" />
    <xs:attribute name="entity-name" type="xs:string" />
    <xs:attribute name="column" type="xs:string" />
    <xs:attribute name="foreign-key" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="join">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="subselect" minOccurs="0" />
    <xs:element ref="comment" minOccurs="0" />
    <xs:element ref="key" />
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="property" />
    <xs:element ref="many-to-one" />
    <xs:element ref="component" />
    <xs:element ref="dynamic-component" />
    <xs:element ref="any" />
    <xs:element ref="map" />
    <xs:element ref="set" />
    <xs:element ref="list" />
    <xs:element ref="bag" />
    <xs:element ref="idbag" />
    <xs:element ref="array" />
    <xs:element ref="primitive-array" />
    </xs:choice>
    <xs:element ref="sql-insert" minOccurs="0" />
    <xs:element ref="sql-update" minOccurs="0" />
    <xs:element ref="sql-delete" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="table" use="required" type="xs:string" />
    <xs:attribute name="schema" type="xs:string" />
    <xs:attribute name="catalog" type="xs:string" />
    <xs:attribute name="subselect" type="xs:string" />
    <xs:attribute name="fetch" default="join">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:enumeration value="join" />
    <xs:enumeration value="select" />
    </xs:restriction>
    </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="inverse" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="optional" default="false" type="xs:boolean">
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="joined-subclass">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="subselect" minOccurs="0" />
    <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="comment" minOccurs="0" />
    <xs:element ref="tuplizer" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="key" />
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="property" />
    <xs:element ref="many-to-one" />
    <xs:element ref="one-to-one" />
    <xs:element ref="component" />
    <xs:element ref="dynamic-component" />
    <xs:element ref="properties" />
    <xs:element ref="any" />
    <xs:element ref="map" />
    <xs:element ref="set" />
    <xs:element ref="list" />
    <xs:element ref="bag" />
    <xs:element ref="idbag" />
    <xs:element ref="array" />
    <xs:element ref="primitive-array" />
    </xs:choice>
    <xs:element ref="joined-subclass" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="loader" minOccurs="0" />
    <xs:element ref="sql-insert" minOccurs="0" />
    <xs:element ref="sql-update" minOccurs="0" />
    <xs:element ref="sql-delete" minOccurs="0" />
    <xs:element ref="resultset" minOccurs="0" maxOccurs="unbounded" />
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="query" />
    <xs:element ref="sql-query" />
    </xs:choice>
    </xs:sequence>
    <xs:attribute name="entity-name" type="xs:string">
    </xs:attribute>
    <xs:attribute name="name" type="xs:string" />
    <xs:attribute name="proxy" type="xs:string" />
    <xs:attribute name="table" type="xs:string" />
    <xs:attribute name="schema-action" type="xs:string" />
    <xs:attribute name="schema" type="xs:string" />
    <xs:attribute name="catalog" type="xs:string" />
    <xs:attribute name="subselect" type="xs:string" />
    <xs:attribute name="dynamic-update" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="dynamic-insert" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="select-before-update" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="extends" type="xs:string" />
    <xs:attribute name="lazy" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="abstract" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="persister" type="xs:string" />
    <xs:attribute name="check" type="xs:string" />
    <xs:attribute name="batch-size" type="xs:positiveInteger" />
    <xs:attribute name="node" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="key">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="column" type="xs:string" />
    <xs:attribute name="property-ref" type="xs:string" />
    <xs:attribute name="foreign-key" type="xs:string" />
    <xs:attribute name="on-delete" default="noaction" type="ondelete">
    </xs:attribute>
    <xs:attribute name="not-null" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="update" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="unique" type="xs:boolean">
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="key-many-to-one">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="access" type="xs:string" />
    <xs:attribute name="class" type="xs:string" />
    <xs:attribute name="entity-name" type="xs:string" />
    <xs:attribute name="column" type="xs:string" />
    <xs:attribute name="foreign-key" type="xs:string" />
    <xs:attribute name="lazy" type="restrictedLaziness">
    </xs:attribute>
    <xs:attribute name="not-found" default="exception" type="notFoundMode"/>
    </xs:complexType>
    </xs:element>
    <xs:element name="key-property">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="type" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="access" type="xs:string" />
    <xs:attribute name="type" type="xs:string" />
    <xs:attribute name="column" type="xs:string" />
    <xs:attribute name="length" type="xs:positiveInteger" />
    <xs:attribute name="node" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="list">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="subselect" minOccurs="0" />
    <xs:element ref="cache" minOccurs="0" />
    <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="comment" minOccurs="0" />
    <xs:element ref="key" />
    <xs:choice>
    <xs:element ref="index" />
    <xs:element ref="list-index" />
    </xs:choice>
    <xs:choice>
    <xs:element ref="element" />
    <xs:element ref="one-to-many" />
    <xs:element ref="many-to-many" />
    <xs:element ref="composite-element" />
    <xs:element ref="many-to-any" />
    </xs:choice>
    <xs:element ref="loader" minOccurs="0" />
    <xs:element ref="sql-insert" minOccurs="0" />
    <xs:element ref="sql-update" minOccurs="0" />
    <xs:element ref="sql-delete" minOccurs="0" />
    <xs:element ref="sql-delete-all" minOccurs="0" />
    <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attributeGroup ref="baseCollectionAttributes" />
    </xs:complexType>
    </xs:element>
    <xs:element name="list-index">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="column" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="column" type="xs:string" />
    <xs:attribute name="base" type="xs:positiveInteger" use="optional" />
    </xs:complexType>
    </xs:element>
    <xs:element name="load-collection">
    <xs:complexType>
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="return-property" />
    </xs:sequence>
    <xs:attribute name="alias" use="required" type="xs:string" />
    <xs:attribute name="role" use="required" type="xs:string" />
    <xs:attribute name="lock-mode" default="read" type="lockMode">
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="loader">
    <xs:complexType>
    <xs:attribute name="query-ref" use="required" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="many-to-any">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta-value" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="column" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="column" type="xs:string" />
    <xs:attribute name="id-type" use="required" type="xs:string" />
    <xs:attribute name="meta-type" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="many-to-many">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="column" />
    <xs:element ref="formula" />
    </xs:choice>
    <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="class" type="xs:string" />
    <xs:attribute name="node" type="xs:string" />
    <xs:attribute name="embed-xml" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="entity-name" type="xs:string" />
    <xs:attribute name="column" type="xs:string" />
    <xs:attribute name="formula" type="xs:string" />
    <xs:attribute name="not-found" default="exception" type="notFoundMode">
    </xs:attribute>
    <xs:attribute name="outer-join" type="outerJoinStrategy">
    </xs:attribute>
    <xs:attribute name="fetch" type="fetchMode">
    </xs:attribute>
    <xs:attribute name="lazy" type="restrictedLaziness">
    </xs:attribute>
    <xs:attribute name="foreign-key" type="xs:string" />
    <xs:attribute name="unique" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="where" type="xs:string" />
    <xs:attribute name="order-by" type="xs:string" />
    <xs:attribute name="property-ref" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="many-to-one">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="column" />
    <xs:element ref="formula" />
    </xs:choice>
    </xs:sequence>
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="access" type="xs:string" />
    <xs:attribute name="class" type="xs:string" />
    <xs:attribute name="entity-name" type="xs:string" />
    <xs:attribute name="column" type="xs:string" />
    <xs:attribute name="not-null" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="unique" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="unique-key" type="xs:string" />
    <xs:attribute name="index" type="xs:string" />
    <xs:attribute name="cascade" type="xs:string" />
    <xs:attribute name="outer-join" type="outerJoinStrategy">
    </xs:attribute>
    <xs:attribute name="fetch" type="fetchMode">
    </xs:attribute>
    <xs:attribute name="update" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="insert" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="optimistic-lock" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="foreign-key" type="xs:string" />
    <xs:attribute name="property-ref" type="xs:string" />
    <xs:attribute name="formula" type="xs:string" />
    <xs:attribute name="lazy" type="laziness">
    </xs:attribute>
    <xs:attribute name="not-found" default="exception" type="notFoundMode">
    </xs:attribute>
    <xs:attribute name="node" type="xs:string" />
    <xs:attribute name="embed-xml" default="true" type="xs:boolean">
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="map">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="subselect" minOccurs="0" />
    <xs:element ref="cache" minOccurs="0" />
    <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="comment" minOccurs="0" />
    <xs:element ref="key" />
    <xs:choice>
    <xs:element ref="map-key" />
    <xs:element ref="composite-map-key" />
    <xs:element ref="map-key-many-to-many" />
    <xs:element ref="index" />
    <xs:element ref="composite-index" />
    <xs:element ref="index-many-to-many" />
    <xs:element ref="index-many-to-any" />
    </xs:choice>
    <xs:choice>
    <xs:element ref="element" />
    <xs:element ref="one-to-many" />
    <xs:element ref="many-to-many" />
    <xs:element ref="composite-element" />
    <xs:element ref="many-to-any" />
    </xs:choice>
    <xs:element ref="loader" minOccurs="0" />
    <xs:element ref="sql-insert" minOccurs="0" />
    <xs:element ref="sql-update" minOccurs="0" />
    <xs:element ref="sql-delete" minOccurs="0" />
    <xs:element ref="sql-delete-all" minOccurs="0" />
    <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attributeGroup ref="baseCollectionAttributes" />
    <xs:attribute name="sort" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="map-key">
    <xs:complexType>
    <xs:sequence>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="column" />
    <xs:element ref="formula" />
    </xs:choice>
    </xs:sequence>
    <xs:attribute name="column" type="xs:string" />
    <xs:attribute name="formula" type="xs:string" />
    <xs:attribute name="type" use="required" type="xs:string" />
    <xs:attribute name="length" type="xs:positiveInteger" />
    <xs:attribute name="node" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="map-key-many-to-many">
    <xs:complexType>
    <xs:sequence>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="column" />
    <xs:element ref="formula" />
    </xs:choice>
    </xs:sequence>
    <xs:attribute name="class" type="xs:string" />
    <xs:attribute name="entity-name" type="xs:string" />
    <xs:attribute name="column" type="xs:string" />
    <xs:attribute name="formula" type="xs:string" />
    <xs:attribute name="foreign-key" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="meta">
    <xs:complexType mixed="true">
    <xs:attribute name="attribute" use="required" type="xs:string" />
    <xs:attribute name="inherit" default="true" type="xs:boolean" />
    </xs:complexType>
    </xs:element>
    <xs:element name="meta-value">
    <xs:complexType>
    <xs:attribute name="value" use="required" type="xs:string" />
    <xs:attribute name="class" use="required" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="natural-id">
    <xs:complexType>
    <xs:sequence>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="property" />
    <xs:element ref="many-to-one" />
    <xs:element ref="component" />
    <xs:element ref="dynamic-component" />
    <xs:element ref="any" />
    </xs:choice>
    </xs:sequence>
    <xs:attribute name="mutable" default="false" type="xs:boolean">
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="nested-composite-element">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="parent" minOccurs="0" />
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="property" />
    <xs:element ref="many-to-one" />
    <xs:element ref="any" />
    <xs:element ref="nested-composite-element" />
    </xs:choice>
    </xs:sequence>
    <xs:attribute name="class" use="required" type="xs:string" />
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="access" type="xs:string" />
    <xs:attribute name="node" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="one-to-many">
    <xs:complexType>
    <xs:attribute name="class" type="xs:string" />
    <xs:attribute name="not-found" default="exception" type="notFoundMode">
    </xs:attribute>
    <xs:attribute name="node" type="xs:string" />
    <xs:attribute name="embed-xml" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="entity-name" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="one-to-one">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="formula" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="formula" type="xs:string" />
    <xs:attribute name="access" type="xs:string" />
    <xs:attribute name="class" type="xs:string" />
    <xs:attribute name="entity-name" type="xs:string" />
    <xs:attribute name="cascade" type="xs:string" />
    <xs:attribute name="outer-join" type="outerJoinStrategy">
    </xs:attribute>
    <xs:attribute name="fetch" type="fetchMode">
    </xs:attribute>
    <xs:attribute name="constrained" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="foreign-key" type="xs:string" />
    <xs:attribute name="property-ref" type="xs:string" />
    <xs:attribute name="lazy" type="laziness">
    </xs:attribute>
    <xs:attribute name="node" type="xs:string" />
    <xs:attribute name="embed-xml" default="true" type="xs:boolean">
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="param">
    <xs:complexType mixed="true">
    <xs:attribute name="name" use="required" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="parent">
    <xs:complexType>
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="access" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="primitive-array">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="subselect" minOccurs="0" />
    <xs:element ref="cache" minOccurs="0" />
    <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="comment" minOccurs="0" />
    <xs:element ref="key" />
    <xs:choice>
    <xs:element ref="index" />
    <xs:element ref="list-index" />
    </xs:choice>
    <xs:element ref="element" />
    <xs:element ref="loader" minOccurs="0" />
    <xs:element ref="sql-insert" minOccurs="0" />
    <xs:element ref="sql-update" minOccurs="0" />
    <xs:element ref="sql-delete" minOccurs="0" />
    <xs:element ref="sql-delete-all" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="name" use="required" type="xs:string">
    </xs:attribute>
    <xs:attribute name="access" type="xs:string" />
    <xs:attribute name="table" type="xs:string" />
    <xs:attribute name="schema" type="xs:string" />
    <xs:attribute name="catalog" type="xs:string" />
    <xs:attribute name="subselect" type="xs:string" />
    <xs:attribute name="mutable" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="where" type="xs:string" />
    <xs:attribute name="batch-size" type="xs:positiveInteger" />
    <xs:attribute name="outer-join">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:enumeration value="true" />
    <xs:enumeration value="false" />
    <xs:enumeration value="auto" />
    </xs:restriction>
    </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="fetch">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:enumeration value="join" />
    <xs:enumeration value="select" />
    <xs:enumeration value="subselect" />
    </xs:restriction>
    </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="persister" type="xs:string" />
    <xs:attribute name="collection-type" type="xs:string" />
    <xs:attribute name="check" type="xs:string" />
    <xs:attribute name="optimistic-lock" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="node" type="xs:string" />
    <xs:attribute name="embed-xml" default="true" type="xs:boolean">
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="properties">
    <xs:complexType>
    <xs:sequence>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="property" />
    <xs:element ref="many-to-one" />
    <xs:element ref="component" />
    <xs:element ref="dynamic-component" />
    </xs:choice>
    </xs:sequence>
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="unique" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="insert" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="update" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="optimistic-lock" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="node" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="property">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="column" />
    <xs:element ref="formula" />
    </xs:choice>
    <xs:element ref="type" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="node" type="xs:string" />
    <xs:attribute name="access" type="xs:string" />
    <xs:attribute name="type" type="xs:string" />
    <xs:attribute name="column" type="xs:string" />
    <xs:attribute name="length" type="xs:positiveInteger" />
    <xs:attribute name="precision" type="xs:positiveInteger" />
    <xs:attribute name="scale" type="xs:nonNegativeInteger" />
    <xs:attribute name="not-null" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="unique" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="unique-key" type="xs:string" />
    <xs:attribute name="index" type="xs:string" />
    <xs:attribute name="update" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="insert" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="optimistic-lock" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="formula" type="xs:string" />
    <xs:attribute name="lazy" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="generated" default="never" type="propertyGeneration">
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="query">
    <xs:complexType mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="query-param" />
    </xs:choice>
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="flush-mode" type="flushMode">
    </xs:attribute>
    <xs:attribute name="cacheable" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="cache-region" type="xs:string" />
    <xs:attribute name="fetch-size" type="xs:int" />
    <xs:attribute name="timeout" type="xs:positiveInteger" />
    <xs:attribute name="cache-mode" type="cacheMode">
    </xs:attribute>
    <xs:attribute name="read-only" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="comment" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="query-param">
    <xs:complexType>
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="type" use="required" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="resultset">
    <xs:complexType>
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="return-scalar" />
    <xs:element ref="return" />
    <xs:element ref="return-join" />
    <xs:element ref="load-collection" />
    </xs:choice>
    <xs:attribute name="name" use="required" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="return">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="return-discriminator" minOccurs="0" maxOccurs="1" />
    <xs:element ref="return-property" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="alias" type="xs:string" />
    <xs:attribute name="entity-name" type="xs:string" />
    <xs:attribute name="class" type="xs:string" />
    <xs:attribute name="lock-mode" default="read" type="lockMode">
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="return-column">
    <xs:complexType>
    <xs:attribute name="name" use="required" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="return-discriminator">
    <xs:complexType>
    <xs:attribute name="column" use="required" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="return-join">
    <xs:complexType>
    <xs:sequence minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="return-property" />
    </xs:sequence>
    <xs:attribute name="alias" use="required" type="xs:string" />
    <xs:attribute name="property" use="required" type="xs:string" />
    <xs:attribute name="lock-mode" default="read" type="lockMode">
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="return-property">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="return-column" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="column" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="return-scalar">
    <xs:complexType>
    <xs:attribute name="column" use="required" type="xs:string" />
    <xs:attribute name="type" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="set">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="subselect" minOccurs="0" />
    <xs:element ref="cache" minOccurs="0" />
    <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="comment" minOccurs="0" />
    <xs:element ref="key" />
    <xs:choice>
    <xs:element ref="element" />
    <xs:element ref="one-to-many" />
    <xs:element ref="many-to-many" />
    <xs:element ref="composite-element" />
    <xs:element ref="many-to-any" />
    </xs:choice>
    <xs:element ref="loader" minOccurs="0" />
    <xs:element ref="sql-insert" minOccurs="0" />
    <xs:element ref="sql-update" minOccurs="0" />
    <xs:element ref="sql-delete" minOccurs="0" />
    <xs:element ref="sql-delete-all" minOccurs="0" />
    <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attributeGroup ref="baseCollectionAttributes" />
    <xs:attribute name="sort" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="sql-delete" type="customSQL">
    </xs:element>
    <xs:element name="sql-delete-all" type="customSQL">
    </xs:element>
    <xs:element name="sql-insert" type="customSQL">
    </xs:element>
    <xs:element name="sql-query">
    <xs:complexType mixed="true">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="return-scalar" />
    <xs:element ref="return" />
    <xs:element ref="return-join" />
    <xs:element ref="load-collection" />
    <xs:element ref="synchronize" />
    <xs:element ref="query-param" />
    </xs:choice>
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="resultset-ref" type="xs:string" />
    <xs:attribute name="flush-mode" type="flushMode">
    </xs:attribute>
    <xs:attribute name="cacheable" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="cache-region" type="xs:string" />
    <xs:attribute name="fetch-size" type="xs:int" />
    <xs:attribute name="timeout" type="xs:positiveInteger" />
    <xs:attribute name="cache-mode" type="cacheMode">
    </xs:attribute>
    <xs:attribute name="read-only" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="comment" type="xs:string" />
    <xs:attribute name="callable" default="false" type="xs:boolean">
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="sql-update" type="customSQL">
    </xs:element>
    <xs:element name="subclass">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="tuplizer" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="property" />
    <xs:element ref="many-to-one" />
    <xs:element ref="one-to-one" />
    <xs:element ref="component" />
    <xs:element ref="dynamic-component" />
    <xs:element ref="properties" />
    <xs:element ref="any" />
    <xs:element ref="map" />
    <xs:element ref="set" />
    <xs:element ref="list" />
    <xs:element ref="bag" />
    <xs:element ref="idbag" />
    <xs:element ref="array" />
    <xs:element ref="primitive-array" />
    </xs:choice>
    <xs:element ref="join" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="subclass" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="loader" minOccurs="0" />
    <xs:element ref="sql-insert" minOccurs="0" />
    <xs:element ref="sql-update" minOccurs="0" />
    <xs:element ref="sql-delete" minOccurs="0" />
    <xs:element ref="resultset" minOccurs="0" maxOccurs="unbounded" />
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="query" />
    <xs:element ref="sql-query" />
    </xs:choice>
    </xs:sequence>
    <xs:attribute name="entity-name" type="xs:string" />
    <xs:attribute name="name" type="xs:string" />
    <xs:attribute name="proxy" type="xs:string" />
    <xs:attribute name="discriminator-value" type="xs:string" />
    <xs:attribute name="dynamic-update" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="dynamic-insert" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="select-before-update" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="extends" type="xs:string" />
    <xs:attribute name="lazy" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="abstract" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="persister" type="xs:string" />
    <xs:attribute name="batch-size" type="xs:positiveInteger" />
    <xs:attribute name="node" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="subselect">
    <xs:complexType mixed="true">
    </xs:complexType>
    </xs:element>
    <xs:element name="synchronize">
    <xs:complexType>
    <xs:attribute name="table" use="required" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="timestamp">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="node" type="xs:string" />
    <xs:attribute name="column" type="xs:string" />
    <xs:attribute name="access" type="xs:string" />
    <xs:attribute name="unsaved-value">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:enumeration value="null" />
    <xs:enumeration value="undefined" />
    </xs:restriction>
    </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="source" default="vm">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:enumeration value="vm" />
    <xs:enumeration value="db" />
    </xs:restriction>
    </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="generated" default="never" type="versionGeneration">
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:element name="tuplizer">
    <xs:complexType>
    <xs:attribute name="entity-mode">
    <xs:simpleType>
    <xs:restriction base="xs:string">
    <xs:enumeration value="poco" />
    <xs:enumeration value="xml" />
    <xs:enumeration value="dynamic-map" />
    </xs:restriction>
    </xs:simpleType>
    </xs:attribute>
    <xs:attribute name="class" use="required" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="type">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="name" use="required" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="typedef">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="class" use="required" type="xs:string" />
    <xs:attribute name="name" use="required" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="union-subclass">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="subselect" minOccurs="0" />
    <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="comment" minOccurs="0" />
    <xs:element ref="tuplizer" minOccurs="0" maxOccurs="unbounded" />
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="property" />
    <xs:element ref="many-to-one" />
    <xs:element ref="one-to-one" />
    <xs:element ref="component" />
    <xs:element ref="dynamic-component" />
    <xs:element ref="properties" />
    <xs:element ref="any" />
    <xs:element ref="map" />
    <xs:element ref="set" />
    <xs:element ref="list" />
    <xs:element ref="bag" />
    <xs:element ref="idbag" />
    <xs:element ref="array" />
    <xs:element ref="primitive-array" />
    </xs:choice>
    <xs:element ref="union-subclass" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="loader" minOccurs="0" />
    <xs:element ref="sql-insert" minOccurs="0" />
    <xs:element ref="sql-update" minOccurs="0" />
    <xs:element ref="sql-delete" minOccurs="0" />
    <xs:element ref="resultset" minOccurs="0" maxOccurs="unbounded" />
    <xs:choice minOccurs="0" maxOccurs="unbounded">
    <xs:element ref="query" />
    <xs:element ref="sql-query" />
    </xs:choice>
    </xs:sequence>
    <xs:attribute name="entity-name" type="xs:string" />
    <xs:attribute name="name" type="xs:string" />
    <xs:attribute name="proxy" type="xs:string" />
    <xs:attribute name="table" type="xs:string" />
    <xs:attribute name="schema" type="xs:string" />
    <xs:attribute name="catalog" type="xs:string" />
    <xs:attribute name="subselect" type="xs:string" />
    <xs:attribute name="dynamic-update" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="dynamic-insert" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="select-before-update" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="extends" type="xs:string" />
    <xs:attribute name="lazy" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="abstract" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="persister" type="xs:string" />
    <xs:attribute name="check" type="xs:string" />
    <xs:attribute name="batch-size" type="xs:positiveInteger" />
    <xs:attribute name="node" type="xs:string" />
    </xs:complexType>
    </xs:element>
    <xs:element name="version">
    <xs:complexType>
    <xs:sequence>
    <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="node" type="xs:string" />
    <xs:attribute name="access" type="xs:string" />
    <xs:attribute name="column" type="xs:string" />
    <xs:attribute name="type" default="Int32" type="xs:string" />
    <xs:attribute name="unsaved-value" type="xs:string">
    <xs:annotation>
    <xs:documentation>undefined|any|none|null|0|-1|... </xs:documentation>
    </xs:annotation>
    </xs:attribute>
    <xs:attribute name="generated" default="never" type="versionGeneration">
    </xs:attribute>
    <xs:attribute name="insert" type="xs:boolean">
    </xs:attribute>
    </xs:complexType>
    </xs:element>
    <xs:simpleType name="outerJoinStrategy">
    <xs:restriction base="xs:string">
    <xs:enumeration value="auto" />
    <xs:enumeration value="true" />
    <xs:enumeration value="false" />
    </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="collectionFetchMode">
    <xs:restriction base="xs:string">
    <xs:enumeration value="select" />
    <xs:enumeration value="join" />
    <xs:enumeration value="subselect" />
    </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="collectionLazy">
    <xs:restriction base="xs:string">
    <xs:enumeration value="true" />
    <xs:enumeration value="false" />
    <xs:enumeration value="extra" />
    </xs:restriction>
    </xs:simpleType>
    <xs:attributeGroup name="baseCollectionAttributes">
    <xs:attribute name="name" use="required" type="xs:string" />
    <xs:attribute name="access" type="xs:string" />
    <xs:attribute name="table" type="xs:string" />
    <xs:attribute name="schema" type="xs:string" />
    <xs:attribute name="catalog" type="xs:string" />
    <xs:attribute name="subselect" type="xs:string" />
    <xs:attribute name="lazy" type="collectionLazy">
    </xs:attribute>
    <xs:attribute name="inverse" default="false" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="mutable" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="cascade" type="xs:string" />
    <xs:attribute name="order-by" type="xs:string" />
    <xs:attribute name="where" type="xs:string" />
    <xs:attribute name="batch-size" type="xs:int" />
    <xs:attribute name="outer-join" type="outerJoinStrategy">
    </xs:attribute>
    <xs:attribute name="fetch" type="collectionFetchMode">
    </xs:attribute>
    <xs:attribute name="persister" type="xs:string" />
    <xs:attribute name="collection-type" type="xs:string" />
    <xs:attribute name="check" type="xs:string" />
    <xs:attribute name="optimistic-lock" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="node" type="xs:string" />
    <xs:attribute name="embed-xml" default="true" type="xs:boolean">
    </xs:attribute>
    <xs:attribute name="generic" type="xs:boolean" use="optional">
    <xs:annotation>
    <xs:documentation>The concrete collection should use a generic version or an object-based version.</xs:documentation>
    </xs:annotation>
    </xs:attribute>
    </xs:attributeGroup>
    <xs:simpleType name="optimisticLockMode">
    <xs:restriction base="xs:string">
    <xs:enumeration value="none" />
    <xs:enumeration value="version" />
    <xs:enumeration value="dirty" />
    <xs:enumeration value="all" />
    </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="polymorphismType">
    <xs:annotation>
    <xs:documentation>Types of polymorphism</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
    <xs:enumeration value="implicit" />
    <xs:enumeration value="explicit" />
    </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="unsavedValueType">
    <xs:restriction base="xs:string">
    <xs:enumeration value="undefined" />
    <xs:enumeration value="any" />
    <xs:enumeration value="none" />
    </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ondelete">
    <xs:restriction base="xs:string">
    <xs:enumeration value="cascade" />
    <xs:enumeration value="noaction" />
    </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="restrictedLaziness">
    <xs:restriction base="xs:string">
    <xs:enumeration value="false" />
    <xs:enumeration value="proxy" />
    </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="lockMode">
    <xs:restriction base="xs:string">
    <xs:enumeration value="none" />
    <xs:enumeration value="read" />
    <xs:enumeration value="upgrade" />
    <xs:enumeration value="upgrade-nowait" />
    <xs:enumeration value="write" />
    </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="notFoundMode">
    <xs:restriction base="xs:string">
    <xs:enumeration value="ignore" />
    <xs:enumeration value="exception" />
    </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="fetchMode">
    <xs:restriction base="xs:string">
    <xs:enumeration value="select" />
    <xs:enumeration value="join" />
    </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="laziness">
    <xs:restriction base="xs:string">
    <xs:enumeration value="false" />
    <xs:enumeration value="proxy" />
    <xs:enumeration value="no-proxy" />
    </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="propertyGeneration">
    <xs:restriction base="xs:string">
    <xs:enumeration value="never" />
    <xs:enumeration value="insert" />
    <xs:enumeration value="always" />
    </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="flushMode">
    <xs:restriction base="xs:string">
    <xs:enumeration value="auto" />
    <xs:enumeration value="never" />
    <xs:enumeration value="always" />
    </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="cacheMode">
    <xs:restriction base="xs:string">
    <xs:enumeration value="get" />
    <xs:enumeration value="ignore" />
    <xs:enumeration value="normal" />
    <xs:enumeration value="put" />
    <xs:enumeration value="refresh" />
    </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="customSQLCheck">
    <xs:restriction base="xs:string">
    <xs:enumeration value="none" />
    <xs:enumeration value="rowcount" />
    <xs:enumeration value="param" />
    </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="customSQL" mixed="true">
    <xs:attribute name="callable" type="xs:boolean" />
    <xs:attribute name="check" type="customSQLCheck" use="optional" />
    </xs:complexType>
    <xs:simpleType name="versionGeneration">
    <xs:restriction base="xs:string">
    <xs:enumeration value="never" />
    <xs:enumeration value="always" />
    </xs:restriction>
    </xs:simpleType>
    </xs:schema>
    -
    -
    - -
    -
    - - - - -
    -
    -
    - - - - -
    -
    -
    -
    - - -
    - - - - - -
    -
    -
    - -
    -
    -
    -
    -
    -
    - -
    - - - -
    - - Something went wrong with that request. Please try again. - -
    - - - - - - - - diff --git a/tools/albacore/nuspec_patch.rb b/tools/albacore/nuspec_patch.rb deleted file mode 100644 index 97f01f2b9..000000000 --- a/tools/albacore/nuspec_patch.rb +++ /dev/null @@ -1,109 +0,0 @@ -require 'albacore/albacoretask' -require 'rexml/document' - -class NuspecFile - def initialize(src, target) - @src = src - @target = target - end - - def render(xml) - depend = xml.add_element 'file', { 'src' => @src } - - depend.add_attribute( 'target', @target ) unless @target.nil? - end -end - -class NuspecDependency - - attr_accessor :id, :version - - def initialize(id, version) - @id = id - @version = version - end - - def render( xml ) - depend = xml.add_element 'dependency', {'id' => @id, 'version' => @version} - end -end - -class Nuspec - include Albacore::Task - - attr_accessor :id, :version, :title, :authors, :description, :language, :licenseUrl, :projectUrl, :output_file, - :owners, :summary, :iconUrl, :requireLicenseAcceptance, :tags, :working_directory - - def initialize() - @dependencies = Array.new - @files = Array.new - super() - end - - def dependency(id, version) - @dependencies.push NuspecDependency.new(id, version) - end - - def file(src, target=nil) - @files.push NuspecFile.new(src, target) - end - - def execute - check_required_field @output_file, "output_file" - check_required_field @id, "id" - check_required_field @version, "version" - check_required_field @authors, "authors" - check_required_field @description, "description" - - if(! @working_directory.nil?) - @working_output_file = File.join(@working_directory, @output_file) - else - @working_output_file = @output_file - end - - builder = REXML::Document.new - build(builder) - output="" - builder.write(output) - - File.open(@working_output_file, 'w') {|f| f.write(output) } - end - - def build(document) - document << REXML::XMLDecl.new - - package = document.add_element('package') - package.add_attribute("xmlns", "http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd") - - metadata = package.add_element('metadata') - - metadata.add_element('id').add_text(@id) - metadata.add_element('version').add_text(@version) - metadata.add_element('title').add_text(@title) - metadata.add_element('authors').add_text(@authors) - metadata.add_element('description').add_text(@description) - metadata.add_element('language').add_text(@language) if !@language.nil? - metadata.add_element('licenseUrl').add_text(@licenseUrl) if !@licenseUrl.nil? - metadata.add_element('projectUrl').add_text(@projectUrl) if !@projectUrl.nil? - metadata.add_element('owners').add_text(@owners) if !@owners.nil? - metadata.add_element('summary').add_text(@summary) if !@summary.nil? - metadata.add_element('iconUrl').add_text(@iconUrl) if !@iconUrl.nil? - metadata.add_element('requireLicenseAcceptance').add_text(@requireLicenseAcceptance) if !@requireLicenseAcceptance.nil? - metadata.add_element('tags').add_text(@tags) if !@tags.nil? - - if @dependencies.length > 0 - depend = metadata.add_element('dependencies') - @dependencies.each {|x| x.render(depend)} - end - - if @files.length > 0 - files = package.add_element('files') - @files.each {|x| x.render(files)} - end - end - - def check_required_field(field, fieldname) - return true if !field.nil? - raise "Nuget: required field '#{fieldname}' is not defined" - end -end diff --git a/tools/albacore/zipdirectory_patch.rb b/tools/albacore/zipdirectory_patch.rb deleted file mode 100644 index 95639899a..000000000 --- a/tools/albacore/zipdirectory_patch.rb +++ /dev/null @@ -1,108 +0,0 @@ -# This is a copy of the latest ZipDirectory, from jagregory/albacore/master -# Delete this file if/when albacore gets these changes integrated - -require 'albacore/support/albacore_helper' -require 'zip/zip' -require 'zip/zipfilesystem' -include Zip - -class ZipDirectory - extend AttrMethods - include YAMLConfig - include Failure - - attr_accessor :output_path, :output_file - attr_accessor :flatten_zip - attr_array :directories_to_zip, :additional_files, :exclusions - - def initialize - @flatten_zip = true - @exclusions = [] - super() - end - - def package() - fail_with_message 'Output File cannot be empty' if @output_file.nil? - return if @output_file.nil? - - clean_directories_names - remove zip_name - - ZipFile.open(zip_name, 'w') do |zipfile| - zip_directory(zipfile) - zip_additional(zipfile) - end - end - - def clean_directories_names - return if @directories_to_zip.nil? - @directories_to_zip.each { |d| d.sub!(%r[/$],'')} - end - - def remove(filename) - FileUtils.rm filename, :force=>true - end - - def reject_file(f) - f == zip_name || is_excluded(f) - end - - def is_excluded(f) - expanded_exclusions.any? do |e| - return true if e.respond_to? '~' and f =~ e - e == f - end - end - - def expanded_exclusions - return @expanded_exclusions unless @expanded_exclusions.nil? - - regexp_exclusions, string_exclusions = @exclusions.partition {|x| x.respond_to? '~' } - @expanded_exclusions = [].concat(regexp_exclusions) - - @directories_to_zip.each do |dir| - Dir.chdir(dir) do - string_exclusions.each do |ex| - exclusions = Dir.glob(ex) - exclusions = exclusions.map {|x| File.join(dir, x) } unless exclusions[0] == ex - exclusions << ex if exclusions.empty? - @expanded_exclusions += exclusions - end - end - end - - @expanded_exclusions - end - - def zip_name() - @output_path = set_output_path - File.join(@output_path, @output_file) - end - - def set_output_path() - path = '' - path = @directories_to_zip.first unless @directories_to_zip.nil? - path = @output_path unless @output_path.nil? - return path - end - - - def zip_directory(zipfile) - return if @directories_to_zip.nil? - @directories_to_zip.each do |d| - Dir["#{d}/**/**"].reject{|f| reject_file(f)}.each do |file_path| - file_name = file_path - file_name = file_path.sub(d + '/','') if @flatten_zip - zipfile.add(file_name, file_path) - end - end - end - - def zip_additional(zipfile) - return if @additional_files.nil? - @additional_files.reject{|f| reject_file(f)}.each do |file_path| - file_name = file_path.split('/').last if @flatten_zip - zipfile.add(file_name, file_path) - end - end -end diff --git a/tools/docu/Spark.dll b/tools/docu/Spark.dll new file mode 100644 index 000000000..22b59fdc0 Binary files /dev/null and b/tools/docu/Spark.dll differ diff --git a/tools/docu/docu.exe b/tools/docu/docu.exe index 2e29fbcbd..e15dd3410 100644 Binary files a/tools/docu/docu.exe and b/tools/docu/docu.exe differ diff --git a/tools/docu/docu.pdb b/tools/docu/docu.pdb index 7f02f98ab..0b6469001 100644 Binary files a/tools/docu/docu.pdb and b/tools/docu/docu.pdb differ diff --git a/tools/docu/templates/!namespace/!type.htm.spark b/tools/docu/templates/!namespace/!type.htm.spark index 26736d13f..9177014a3 100644 --- a/tools/docu/templates/!namespace/!type.htm.spark +++ b/tools/docu/templates/!namespace/!type.htm.spark @@ -2,11 +2,12 @@ ${h(Type.PrettyName)} - ${WriteProductName(Assemblies[0])} Documentation - + + @@ -22,23 +23,42 @@
    + +
    + + +
    + Obsolete: ${Type.ObsoleteReason}
    - -

    Events

    + +

    Constructors

      -
    • ${Format(ev)}
    • +
    • ${Format(method)}
    - - + + +

    Static Functions

    +
      +
    • ${Format(method)}
    • +
    +
    +

    Methods

      -
    • ${Format(method)}
    • +
    • ${Format(method)}
    + +

    Events

    +
      +
    • ${Format(ev)}
    • +
    +
    +

    Properties

      @@ -56,13 +76,18 @@ - - + + - + + + + + + - + diff --git a/tools/docu/templates/!namespace/_events.spark b/tools/docu/templates/!namespace/_events.spark index e073646ac..c9819772f 100644 --- a/tools/docu/templates/!namespace/_events.spark +++ b/tools/docu/templates/!namespace/_events.spark @@ -6,6 +6,7 @@
      +
      \ No newline at end of file diff --git a/tools/docu/templates/!namespace/_example.spark b/tools/docu/templates/!namespace/_example.spark new file mode 100644 index 000000000..6a40b3be2 --- /dev/null +++ b/tools/docu/templates/!namespace/_example.spark @@ -0,0 +1,4 @@ +
      + Show Example +
      ${Format(content)}
      +
      \ No newline at end of file diff --git a/tools/docu/templates/!namespace/_fields.spark b/tools/docu/templates/!namespace/_fields.spark index d11246dbc..8fb5b5ce1 100644 --- a/tools/docu/templates/!namespace/_fields.spark +++ b/tools/docu/templates/!namespace/_fields.spark @@ -13,6 +13,7 @@ + \ No newline at end of file diff --git a/tools/docu/templates/!namespace/_methods.spark b/tools/docu/templates/!namespace/_methods.spark index c9d344bde..7990c75d5 100644 --- a/tools/docu/templates/!namespace/_methods.spark +++ b/tools/docu/templates/!namespace/_methods.spark @@ -6,8 +6,13 @@
      + +
      + Obsolete: ${method.ObsoleteReason} +
      +
      - +
      @@ -26,6 +31,7 @@
      -
      + + \ No newline at end of file diff --git a/tools/docu/templates/!namespace/_properties.spark b/tools/docu/templates/!namespace/_properties.spark index 600658837..c38dbacfe 100644 --- a/tools/docu/templates/!namespace/_properties.spark +++ b/tools/docu/templates/!namespace/_properties.spark @@ -6,6 +6,11 @@
      + +
      + Obsolete: ${property.ObsoleteReason} +
      +
      Property type
      @@ -13,6 +18,7 @@

      +
      \ No newline at end of file diff --git a/tools/docu/templates/!namespace/index.htm.spark b/tools/docu/templates/!namespace/index.htm.spark index b0a990931..2eace6089 100644 --- a/tools/docu/templates/!namespace/index.htm.spark +++ b/tools/docu/templates/!namespace/index.htm.spark @@ -2,7 +2,7 @@ ${Namespace.Name} - ${WriteProductName(Assemblies[0])} Documentation - + diff --git a/tools/docu/templates/index.htm.spark b/tools/docu/templates/index.htm.spark index 7f36d0fdb..e0e05ce71 100644 --- a/tools/docu/templates/index.htm.spark +++ b/tools/docu/templates/index.htm.spark @@ -1,35 +1,17 @@  - - ${WriteProductName(Assemblies[0])} Documentation - - - - + + ${WriteProductName(Assemblies[0])} Documentation + + + +
      -

      ${WriteProductName(Assemblies[0])} Documentation

      -
      - -
      -

      You're reading the Fluent NHibernate API documentation. Above are all the namespaces - and types in Fluent NHibernate. Not everything will be of interest to you, as most of it is internal - workings, but you can find the public classes in here too. Not all our classes are documented, but we're - working on it; these docs are updated on every commit of Fluent NHibernate, so if something isn't documented - let us know and we'll update it.

      - -

      Classes of interest:

      - -
      +

      ${WriteProductName(Assemblies[0])} Documentation

      + + - + \ No newline at end of file diff --git a/tools/docu/templates/js/example.js b/tools/docu/templates/js/example.js new file mode 100644 index 000000000..f805c21cc --- /dev/null +++ b/tools/docu/templates/js/example.js @@ -0,0 +1,21 @@ +$(document).ready(function() { + $('div.example').each(function(i, div) { + var a = $('a', div); + var pre = $('pre', div); + + a.pre = pre; + a.preVisible = false; + pre.hide(); + a.click(function() { + if (a.preVisible) { + a.pre.hide(); + a.text('Show Example'); + a.preVisible = false; + } else { + a.pre.show(); + a.text('Hide Example'); + a.preVisible = true; + } + }); + }); +}); \ No newline at end of file diff --git a/tools/docu/templates/main.css b/tools/docu/templates/main.css index 1c85708cf..22119ecf2 100644 --- a/tools/docu/templates/main.css +++ b/tools/docu/templates/main.css @@ -6,8 +6,8 @@ } .header { - background: #900; - border-bottom: 3px solid #600; + background: #048; + border-bottom: 3px solid #006; margin: 0; color: #FFF; padding: 10px; @@ -141,6 +141,14 @@ div.parameters p, div.return p { margin-left: -1px; } +#warning { + color: red ; + background: rgb(255, 218, 0); + border: 1px solid red; + margin: 20px 10px 20px 10px; + padding: 5px 10px; +} + h2.fixed { background: #CCC; color: #000; @@ -169,18 +177,18 @@ div.scroll { } a { - background: #EFEEE4; - color: #900; + background: #eef; + color: #039; text-decoration: none; } a:hover { color: #FFF; - background: #900; + background: #039; } #namespaces a.current, #types a.current { - background: #900; + background: #039; color: #FFF; text-decoration: none; } @@ -207,6 +215,19 @@ blockquote { font-size: 90%; } -#index p { - padding: 10px; +.example { + margin: 10px 0; } + +.example pre { + background: #DDD; + color: #000; + font-size: 14px; + font-family: Monaco, Consolas, Courier New, Monospace; + padding: 4px 10px; + border: 3px solid #AAA; +} + +code { + font-family: Monaco, Consolas, Courier New, Monospace; +} \ No newline at end of file