public class Profile
extends java.lang.Object
Implementation note: I'm using dumb and trivial XPath expressions, which might not be optimal...
FIXME: Consider using new XmlSchemaDOM
!
Modifier and Type | Field and Description |
---|---|
private java.util.Map<java.lang.String,java.util.List<org.w3c.dom.Element>> |
_attributesAndAssocEnds |
private Config |
_cfg |
private java.util.Map<java.lang.String,java.lang.String> |
_cimNamespaces |
private java.util.Set<java.lang.String> |
_cimPrimitives |
private java.util.Map<java.lang.String,java.util.List<org.w3c.dom.Element>> |
_classesAndCompounds |
private java.util.Map<java.lang.String,java.util.List<ProfileDatatype>> |
_datatypes |
private java.util.Map<java.lang.String,java.util.List<ProfileEnumeration>> |
_enums |
private java.lang.String |
_envelopeName |
private java.util.Map<java.lang.String,java.util.List<org.w3c.dom.Element>> |
_literals |
private static org.apache.log4j.Logger |
_logger |
private XmlSchemaDOM |
_schema |
private java.util.List<java.lang.String> |
_subdirNames |
private java.util.Map<java.lang.String,java.lang.String> |
_targetNamespace |
private java.util.Set<org.w3c.dom.Element> |
_unclassifieds |
private java.io.File |
_xsdFile |
static char |
FRAGMENT_SEPARATOR |
private static java.util.Map<java.lang.String,java.lang.String> |
PRIMITIVES |
static java.lang.String |
TARGET_NS_PREFIX |
static java.lang.String |
XPATH_ATTR_AND_ASSOC_ENDS |
static java.lang.String |
XPATH_CHOICE_ASSOC_ENDS |
static java.lang.String |
XPATH_CLASSES_AND_COMPOUNDS |
private static java.lang.String |
XPATH_ENVELOPE |
static java.lang.String |
XPATH_LITERALS |
static java.lang.String |
XPATH_LOCAL_DOC |
private static java.lang.String |
XPATH_MODEL_REFS |
Constructor and Description |
---|
Profile(Config cfg,
java.io.File xsdFile)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
private java.lang.StringBuilder |
appendCollectionInfo(java.lang.StringBuilder sb,
int size,
java.lang.String what) |
(package private) static java.util.Map<java.lang.String,java.lang.String> |
collectModelNamespaces(java.util.List<java.lang.String> modelRefValues,
java.lang.String nsPrefix) |
java.util.Map<java.lang.String,java.util.List<org.w3c.dom.Element>> |
getAttributesAndAssocEnds() |
java.util.Map<java.lang.String,java.lang.String> |
getCimNamespaces()
Returns namespace information for all model references found in the profile, with prefix as
key, and URI as value.
|
java.util.Collection<java.lang.String> |
getCimPrimitives() |
java.util.Map<java.lang.String,java.util.List<org.w3c.dom.Element>> |
getClassesAndCompounds() |
java.util.Map<java.lang.String,java.util.List<ProfileDatatype>> |
getDatatypes() |
java.util.Map<java.lang.String,java.util.List<ProfileEnumeration>> |
getEnums() |
java.lang.String |
getEnvelopeName()
Returns envelope name (in instance file, this will be the root element).
|
java.util.Map<java.lang.String,java.util.List<org.w3c.dom.Element>> |
getLiterals() |
java.lang.String |
getName()
Returns profile name (deduced from the file name, without extension); for envelope name, use
getEnvelopeName() . |
java.util.List<XmlNs> |
getNamespaces() |
private XmlNs[] |
getNamespacesVararg() |
static java.util.Map<java.lang.String,java.lang.String> |
getPrimitives() |
java.util.List<java.lang.String> |
getSubdirNames()
Returns list of names, deduced from the profile file path.
|
java.util.Map<java.lang.String,java.lang.String> |
getTargetNamespace()
Returns the target namespace information, with prefix "m" as key, and
URI as value.
|
java.util.Set<org.w3c.dom.Element> |
getUnclassifieds() |
java.io.File |
getXsdFile()
Returns the file that has been used for initalisation, null if the profile has been created
from a string.
|
boolean |
hasInconsistentEnvelopeName()
Returns whether this profile follows the convention to have the envelope name same as the
profile name.
|
boolean |
hasInconsistentNamespace()
Returns whether this profile follows the convention to have the namespace end with the
profile name (followed by the URI fragment separator 35 ).
|
private java.util.Map<java.lang.String,java.lang.String> |
initCimNamespacesAndStoreParentElements(org.w3c.dom.Document doc)
Figures out CIM standard and extension namespaces, and stores elements containing that
reference as unclassified; later on, we'll move the elements we recognise into maps, and what
is left in that set will really be unclassified.
|
private java.util.List<java.lang.String> |
initDescription(org.w3c.dom.Node node,
XmlNs... namespaces) |
private void |
initEnumsAndDatatypes(org.w3c.dom.Document doc) |
private java.lang.String |
initEnvelopeName(org.w3c.dom.Document doc) |
java.lang.String |
toString() |
private static final org.apache.log4j.Logger _logger
public static final java.lang.String TARGET_NS_PREFIX
public static final char FRAGMENT_SEPARATOR
private static final java.util.Map<java.lang.String,java.lang.String> PRIMITIVES
private final Config _cfg
private final java.io.File _xsdFile
private final java.util.List<java.lang.String> _subdirNames
private final XmlSchemaDOM _schema
private final java.util.Map<java.lang.String,java.lang.String> _targetNamespace
private static final java.lang.String XPATH_MODEL_REFS
private final java.util.Map<java.lang.String,java.lang.String> _cimNamespaces
private static final java.lang.String XPATH_ENVELOPE
private final java.lang.String _envelopeName
public static final java.lang.String XPATH_LOCAL_DOC
public static final java.lang.String XPATH_CLASSES_AND_COMPOUNDS
private final java.util.Map<java.lang.String,java.util.List<org.w3c.dom.Element>> _classesAndCompounds
private final java.util.Map<java.lang.String,java.util.List<ProfileEnumeration>> _enums
private final java.util.Map<java.lang.String,java.util.List<ProfileDatatype>> _datatypes
private final java.util.Set<java.lang.String> _cimPrimitives
public static final java.lang.String XPATH_ATTR_AND_ASSOC_ENDS
public static final java.lang.String XPATH_CHOICE_ASSOC_ENDS
private final java.util.Map<java.lang.String,java.util.List<org.w3c.dom.Element>> _attributesAndAssocEnds
public static final java.lang.String XPATH_LITERALS
private final java.util.Map<java.lang.String,java.util.List<org.w3c.dom.Element>> _literals
private final java.util.Set<org.w3c.dom.Element> _unclassifieds
public Profile(Config cfg, java.io.File xsdFile)
TODO: ctor from XmlString
cfg
- xsdFile
- public static java.util.Map<java.lang.String,java.lang.String> getPrimitives()
private java.lang.String initEnvelopeName(org.w3c.dom.Document doc)
private java.util.Map<java.lang.String,java.lang.String> initCimNamespacesAndStoreParentElements(org.w3c.dom.Document doc)
static java.util.Map<java.lang.String,java.lang.String> collectModelNamespaces(java.util.List<java.lang.String> modelRefValues, java.lang.String nsPrefix)
private void initEnumsAndDatatypes(org.w3c.dom.Document doc)
private java.util.List<java.lang.String> initDescription(org.w3c.dom.Node node, XmlNs... namespaces)
public java.util.List<java.lang.String> getSubdirNames()
OwningWg
for this profile, the remaining names correspond to the names of
UmlPackage
-s to be created recursiverly.public java.lang.String getName()
getEnvelopeName()
.public java.lang.String getEnvelopeName()
public java.io.File getXsdFile()
public java.util.Map<java.lang.String,java.lang.String> getTargetNamespace()
public java.util.List<XmlNs> getNamespaces()
private XmlNs[] getNamespacesVararg()
public java.util.Map<java.lang.String,java.lang.String> getCimNamespaces()
public java.util.Map<java.lang.String,java.util.List<org.w3c.dom.Element>> getClassesAndCompounds()
public java.util.Collection<java.lang.String> getCimPrimitives()
public java.util.Map<java.lang.String,java.util.List<ProfileEnumeration>> getEnums()
public java.util.Map<java.lang.String,java.util.List<ProfileDatatype>> getDatatypes()
public java.util.Map<java.lang.String,java.util.List<org.w3c.dom.Element>> getAttributesAndAssocEnds()
public java.util.Map<java.lang.String,java.util.List<org.w3c.dom.Element>> getLiterals()
public java.util.Set<org.w3c.dom.Element> getUnclassifieds()
public boolean hasInconsistentEnvelopeName()
public boolean hasInconsistentNamespace()
public java.lang.String toString()
toString
in class java.lang.Object
private java.lang.StringBuilder appendCollectionInfo(java.lang.StringBuilder sb, int size, java.lang.String what)
Copyright 2009-2015 Tatjana (Tanja) Kostic