Module: Mxsd_Schema
- Included in:
- Cxsd_Schema
- Defined in:
- lib/ontomde-java/java/xsd.rb
Constant Summary collapse
- XSD_HEADER =
<<END <?xml version="1.0" encoding="UTF-8"?> <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> END
- XSD_FOOTER =
<<END </xsd:schema> END
Instance Method Summary collapse
-
#xsd_computeDependencies!(defaultXSD) ⇒ Object
compute xsd dependencies from file.
- #xsd_generateSchema ⇒ Object
-
#xsd_getSetOfTypeUsedByAttributes ⇒ Object
return set of types used by attributes of classes in current xsd file.
-
#xsd_openOutStream(&block) ⇒ Object
Opens xsd_SchemaName for writing.
- #xsd_SchemaName ⇒ Object
- #xsd_writeImports ⇒ Object
Instance Method Details
#xsd_computeDependencies!(defaultXSD) ⇒ Object
compute xsd dependencies from file
35 36 37 38 39 40 41 42 43 44 45 46 47 |
# File 'lib/ontomde-java/java/xsd.rb', line 35 def xsd_computeDependencies!(defaultXSD) deps=Set.new xsd_getSetOfTypeUsedByAttributes.each { |clazz| clazz.xsd_types_inv.each {|i| next if i==self deps.add(i) } } deps.each {|d| xsd_dependencies_add(d) } return end |
#xsd_generateSchema ⇒ Object
58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/ontomde-java/java/xsd.rb', line 58 def xsd_generateSchema xsd_openOutStream { write(XSD_HEADER) xsd_writeImports xsd_types.each { |clazz| # puts "--> #{clazz}" clazz.xsd_writeType } write(XSD_FOOTER) } end |
#xsd_getSetOfTypeUsedByAttributes ⇒ Object
return set of types used by attributes of classes in current xsd file.
17 18 19 20 21 22 23 24 25 |
# File 'lib/ontomde-java/java/xsd.rb', line 17 def xsd_getSetOfTypeUsedByAttributes types=Set.new xsd_types.each { |clazz| clazz.uml_ownedAttribute.each { |param| types.merge(param.uml_type) } } return types end |
#xsd_openOutStream(&block) ⇒ Object
Opens xsd_SchemaName for writing
Example usage: xsd_openOutStream { write (“this text goes in java file”) }
84 85 86 87 88 |
# File 'lib/ontomde-java/java/xsd.rb', line 84 def xsd_openOutStream(&block) mtk_writeSession(xsd_SchemaName) { yield } end |
#xsd_SchemaName ⇒ Object
70 71 72 73 74 75 76 |
# File 'lib/ontomde-java/java/xsd.rb', line 70 def xsd_SchemaName if xsd_baseName.empty? return "global.xsd" else return xsd_baseName_one.xsd_SchemaName end end |
#xsd_writeImports ⇒ Object
27 28 29 30 31 32 33 |
# File 'lib/ontomde-java/java/xsd.rb', line 27 def xsd_writeImports xsd_dependencies.each {|dep| base=Pathname.new(File.dirname(self.xsd_SchemaName)) target=Pathname.new(dep.xsd_SchemaName) write(%{ <xsd:include schemaLocation="#{target.relative_path_from(base)}"/>\n}) } end |