|
void | writeClassifier (UMLClassifier *c, QTextStream &XMLSchema) |
|
void | writeAbstractClassifier (UMLClassifier *c, QTextStream &XMLSchema) |
|
void | writeConcreteClassifier (UMLClassifier *c, QTextStream &XMLSchema) |
|
void | writeComplexTypeClassifierDecl (UMLClassifier *c, UMLAssociationList associations, UMLAssociationList aggregations, UMLAssociationList compositions, UMLClassifierList superclassifiers, QTextStream &XMLSchema) |
|
void | writeGroupClassifierDecl (UMLClassifier *c, UMLClassifierList superclassifiers, QTextStream &XMLSchema) |
|
bool | determineIfHasChildNodes (UMLClassifier *c) |
|
void | writeElementDecl (const QString &elementName, const QString &elementTypeName, QTextStream &xs) |
|
void | writeAttributeDecls (UMLAttributeList &attribs, QTextStream &xs) |
|
void | writeAttributeDecl (UMLAttribute *attrib, QTextStream &xs) |
|
UMLAttributeList | findAttributes (UMLClassifier *c) |
|
QStringList | findAttributeGroups (UMLClassifier *c) |
|
bool | writeAssociationDecls (UMLAssociationList associations, bool noRoleOK, bool didOne, Uml::ID::Type id, QTextStream &xs) |
|
void | writeAttributeGroupDecl (const QString &elementName, UMLAttributeList &attribs, QTextStream &xs) |
|
void | writeAssociationRoleDecl (UMLClassifier *c, const QString &multi, QTextStream &xs) |
|
QString | makeSchemaTag (QString tagName) |
|
QString | makePackageTag (QString tagName) |
|
void | writeComment (const QString &text, QTextStream &xs) |
|
UMLObjectList | findChildObjsInAssociations (UMLClassifier *c, UMLAssociationList associations) |
|
QString | fixTypeName (const QString &string) |
|
QString | fixInitialStringDeclValue (QString value, const QString &type) |
|
QString | getElementName (UMLClassifier *c) |
|
QString | getElementTypeName (UMLClassifier *c) |
|
QString | getElementGroupTypeName (UMLClassifier *c) |
|
void | writeChildObjsInAssociation (UMLClassifier *c, UMLAssociationList assoc, QTextStream &s) |
|
bool | hasBeenWritten (UMLClassifier *c) |
|
void | markAsWritten (UMLClassifier *c) |
|
|
enum | GenerationState { Generated
, Failed
, Skipped
} |
|
virtual void | syncCodeToDocument () |
|
virtual void | syncCodeToDocument () |
|
void | codeGenerated (UMLClassifier *classifier, bool generated) |
|
void | codeGenerated (UMLClassifier *classifier, CodeGenerator::GenerationState result) |
|
void | showGeneratedFile (const QString &filename) |
|
static QString | cleanName (const QString &name) |
|
static QString | formatDoc (const QString &text, const QString &linePrefix=QStringLiteral(" *"), int lineWidth=80) |
|
static QString | formatFullDocBlock (const QString &text, const QString &blockHeader=QStringLiteral("/* "), const QString &blockFooter=QStringLiteral(" */"), const QString &linePrefix=QStringLiteral(" *"), int lineWidth=80) |
|
static QString | formatSourceCode (const QString &code, const QString &indentation) |
|
static void | findObjectsRelated (UMLClassifier *c, UMLPackageList &cList) |
|
QString | findFileName (UMLPackage *classifier, const QString &ext) |
|
QString | overwritableName (UMLPackage *classifier, const QString &name, const QString &ext) |
|
bool | hasDefaultValueAttr (UMLClassifier *c) |
|
bool | hasAbstractOps (UMLClassifier *c) |
|
QString | indent () |
|
virtual void | initFromParentDocument () |
|
QString | overwritableName (const QString &name, const QString &extension) |
|
bool | openFile (QFile &file, const QString &name) |
|
void | writeListedCodeDocsToFile (CodeDocumentList *docs) |
|
virtual void | finalizeRun () |
|
QString | className_ |
|
QString | fileName_ |
|
QMap< UMLPackage *, QString > | m_fileMap |
|
bool | m_createDirHierarchyForPackages |
|
QString | m_indentation |
|
int | m_indentLevel |
|
QString | m_endl |
|
QHash< QString, CodeDocument * > | m_codeDocumentDictionary |
|
bool | m_applyToAllRemaining |
|
UMLDoc * | m_document |
|
Class XMLSchemaWriter is a code generator for UMLClassifier objects. Create an instance of this class, and feed it a UMLClassifier when calling writeClass and it will generate a XMLschema source file for that concept
Our basic approach is to map UMLClassifiers (classes/interfaces) into XML elements (or nodes). We declare these element in the schema either as complexType or as groups based on whether they are concrete or abstract in nature. This is not a perfect decision, but that's life with XML Schema... you cant fully represent Objects in the XML world ..yet. -b.t.