class LibXML::XML::Schema::Type
Public Instance Methods
annonymus_subtypes()
click to toggle source
# File lib/libxml/schema/type.rb, line 16 def annonymus_subtypes elements.select { |_, e| e.type.name.nil? } end
annonymus_subtypes_recursively(parent=nil)
click to toggle source
# File lib/libxml/schema/type.rb, line 20 def annonymus_subtypes_recursively(parent=nil) annonymus_subtypes.map do |element_name, e| [{[parent, element_name].compact.join('::') => e.type}, e.type.annonymus_subtypes_recursively(element_name)] end.flatten end
annotation()
click to toggle source
static VALUE rxml_schema_type_annot(VALUE self) { xmlSchemaTypePtr xtype; Data_Get_Struct(self, xmlSchemaType, xtype); if(xtype != NULL && xtype->annot != NULL) return get_annotation(xtype->annot); else return Qnil; }
attributes()
click to toggle source
static VALUE rxml_schema_type_attributes(VALUE self) { VALUE attributes; xmlSchemaTypePtr xtype; xmlSchemaAttributeUsePtr use; xmlSchemaItemListPtr uses; int i; Data_Get_Struct(self, xmlSchemaType, xtype); if (rb_iv_get(self, "@attributes") == Qnil) { attributes = rb_ary_new(); rb_iv_set(self, "@attributes", attributes); uses = xtype->attrUses; if ((uses == NULL) || (uses->nbItems == 0)) return rb_iv_get(self, "@attributes"); for (i = 0; i < uses->nbItems; i++) { use = (xmlSchemaAttributeUsePtr) uses->items[i]; rb_ary_push(attributes, rxml_wrap_schema_attribute(use)); } } return rb_iv_get(self, "@attributes"); }
base()
click to toggle source
static VALUE rxml_schema_type_base(VALUE self) { xmlSchemaTypePtr xtype; Data_Get_Struct(self, xmlSchemaType, xtype); return Data_Wrap_Struct(cXMLSchemaType, NULL, rxml_schema_type_free, xtype->baseType); }
elements()
click to toggle source
static VALUE rxml_schema_type_elements(VALUE self) { VALUE elements; xmlSchemaTypePtr xtype; Data_Get_Struct(self, xmlSchemaType, xtype); if (rb_iv_get(self, "@elements") == Qnil) { elements = rb_hash_new(); rb_iv_set(self, "@elements", elements); rxmlSchemaCollectElements((xmlSchemaParticlePtr) xtype->subtypes, self); } return rb_iv_get(self, "@elements"); }
facets()
click to toggle source
static VALUE rxml_schema_type_facets(VALUE self) { xmlSchemaTypePtr xtype; xmlSchemaFacetPtr facet; VALUE facets; VALUE rfacet; facets = rb_iv_get(self, "@facets"); if (facets == Qnil) { facets = rb_ary_new(); Data_Get_Struct(self, xmlSchemaType, xtype); facet = xtype->facets; while (facet != NULL) { rfacet = rxml_wrap_schema_facet((xmlSchemaFacetPtr) facet); rb_ary_push(facets, rfacet); facet = facet->next; } rb_iv_set(self, "@facets", facets); } return facets; }
kind()
click to toggle source
static VALUE rxml_schema_type_kind(VALUE self) { xmlSchemaTypePtr xtype; Data_Get_Struct(self, xmlSchemaType, xtype); return INT2NUM(xtype->type); }
kind_name()
click to toggle source
# File lib/libxml/schema/type.rb, line 4 def kind_name Schema::Types.constants.find { |k| Schema::Types.const_get(k) == kind } end
name()
click to toggle source
static VALUE rxml_schema_type_name(VALUE self) { xmlSchemaTypePtr xtype; Data_Get_Struct(self, xmlSchemaType, xtype); QNIL_OR_STRING(xtype->name) }
namespace()
click to toggle source
static VALUE rxml_schema_type_namespace(VALUE self) { xmlSchemaTypePtr xtype; Data_Get_Struct(self, xmlSchemaType, xtype); QNIL_OR_STRING(xtype->targetNamespace) }
node()
click to toggle source
static VALUE rxml_schema_type_node(VALUE self) { xmlSchemaTypePtr xtype; Data_Get_Struct(self, xmlSchemaType, xtype); if(xtype->node != NULL) return rxml_node_wrap(xtype->node); else return Qnil; }