class Lutaml::Xml::NamespaceNeeds

def validate!

Raises:
  • (RuntimeError) - if inconsistent state detected
def validate!
  # Type attribute and element namespaces should be mutually exclusive
  overlap = @type_attribute_namespaces & @type_element_namespaces
  unless overlap.empty?
    raise "Type namespaces appear in both attribute and element contexts: #{overlap.to_a}"
  end
  # All type namespace classes should be in type_namespace_classes
  @type_attribute_namespaces.each do |ns_class|
    unless @type_namespace_classes.include?(ns_class)
      raise "Type attribute namespace #{ns_class} not in type_namespace_classes"
    end
  end
  @type_element_namespaces.each do |ns_class|
    unless @type_namespace_classes.include?(ns_class)
      raise "Type element namespace #{ns_class} not in type_namespace_classes"
    end
  end
  true
end