umbrello 2.32.0
Umbrello UML Modeller is a Unified Modelling Language (UML) diagram program based on KDE Technology
xmlschemawriter.h
Go to the documentation of this file.
1/*
2 SPDX-License-Identifier: GPL-2.0-or-later
3
4 SPDX-FileCopyrightText: 2003 Brian Thomas <brian.thomas@gsfc.nasa.gov>
5 SPDX-FileCopyrightText: 2004-2020 Umbrello UML Modeller Authors <umbrello-devel@kde.org>
6*/
7
8#ifndef XMLSCHEMAWRITER_H
9#define XMLSCHEMAWRITER_H
10
11#include "attribute.h"
12#include "association.h"
13#include "codegenerator.h"
14#include "umlclassifierlist.h"
15#include "umlattributelist.h"
16#include "umlobjectlist.h"
17#include "umlassociationlist.h"
18#include "simplecodegenerator.h"
19
34{
35 Q_OBJECT
36public:
37
39 virtual ~XMLSchemaWriter();
40
41 virtual void writeClass(UMLClassifier *c);
42
44
45 virtual QStringList reservedKeywords() const;
46
47private:
48
49 void writeClassifier(UMLClassifier *c, QTextStream &XMLSchema);
50 void writeAbstractClassifier(UMLClassifier *c, QTextStream &XMLSchema);
51 void writeConcreteClassifier(UMLClassifier *c, QTextStream &XMLSchema);
52
54 UMLAssociationList associations,
55 UMLAssociationList aggregations,
56 UMLAssociationList compositions,
57 UMLClassifierList superclassifiers,
58 QTextStream &XMLSchema);
59
61 UMLClassifierList superclassifiers,
62 QTextStream &XMLSchema);
63
65
71// void writeAttributes(UMLClassifier *c, QTextStream &j);
72
73 void writeElementDecl(const QString &elementName, const QString &elementTypeName, QTextStream &xs);
74
75 void writeAttributeDecls(UMLAttributeList &attribs, QTextStream &xs);
76
77 void writeAttributeDecl(UMLAttribute *attrib, QTextStream &xs);
78
80
81 QStringList findAttributeGroups(UMLClassifier *c);
82
83 bool writeAssociationDecls(UMLAssociationList associations, bool noRoleOK, bool didOne,
84 Uml::ID::Type id, QTextStream &xs);
85
86 void writeAttributeGroupDecl(const QString &elementName, UMLAttributeList &attribs, QTextStream &xs);
87
88 void writeAssociationRoleDecl(UMLClassifier *c, const QString &multi, QTextStream &xs);
89
90 QString makeSchemaTag(QString tagName);
91 QString makePackageTag(QString tagName);
92
93 void writeComment(const QString &text, QTextStream &xs);
94
96
97 QString fixTypeName(const QString& string);
98
99 QString fixInitialStringDeclValue(QString value, const QString &type);
100
101 QString getElementName(UMLClassifier *c);
104
105 void writeChildObjsInAssociation(UMLClassifier *c, UMLAssociationList assoc, QTextStream &s);
106
109
114 QString startline;
116};
117
118#endif // XMLSCHEMAWRITER_H
Definition: simplecodegenerator.h:30
Definition: umlattributelist.h:21
Sets up attribute information.
Definition: attribute.h:23
Information for a non-graphical Concept/Class.
Definition: classifier.h:35
Definition: umlobjectlist.h:25
Definition: xmlschemawriter.h:34
bool hasBeenWritten(UMLClassifier *c)
Definition: xmlschemawriter.cpp:462
QString getElementName(UMLClassifier *c)
Definition: xmlschemawriter.cpp:801
QString makeSchemaTag(QString tagName)
Definition: xmlschemawriter.cpp:837
QStringList findAttributeGroups(UMLClassifier *c)
Definition: xmlschemawriter.cpp:410
void writeConcreteClassifier(UMLClassifier *c, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:375
QString packageNamespaceURI
basic packageNamespace URI
Definition: xmlschemawriter.h:113
QString fixTypeName(const QString &string)
Definition: xmlschemawriter.cpp:775
UMLAttributeList findAttributes(UMLClassifier *c)
Definition: xmlschemawriter.cpp:182
QString fixInitialStringDeclValue(QString value, const QString &type)
Definition: xmlschemawriter.cpp:786
UMLClassifierList writtenClassifiers
a list of UMLClassifiers we have already written
Definition: xmlschemawriter.h:115
UMLObjectList findChildObjsInAssociations(UMLClassifier *c, UMLAssociationList associations)
Definition: xmlschemawriter.cpp:654
QString getElementTypeName(UMLClassifier *c)
Definition: xmlschemawriter.cpp:810
void writeChildObjsInAssociation(UMLClassifier *c, UMLAssociationList assoc, QTextStream &s)
Definition: xmlschemawriter.cpp:447
QString packageNamespaceTag
basic packageNamespace tag
Definition: xmlschemawriter.h:111
QString startline
a , used at the end of each line
Definition: xmlschemawriter.h:114
bool determineIfHasChildNodes(UMLClassifier *c)
Definition: xmlschemawriter.cpp:434
void writeComment(const QString &text, QTextStream &xs)
Definition: xmlschemawriter.cpp:552
void writeElementDecl(const QString &elementName, const QString &elementTypeName, QTextStream &xs)
Definition: xmlschemawriter.cpp:147
virtual ~XMLSchemaWriter()
Definition: xmlschemawriter.cpp:36
void writeAttributeGroupDecl(const QString &elementName, UMLAttributeList &attribs, QTextStream &xs)
Definition: xmlschemawriter.cpp:525
QString getElementGroupTypeName(UMLClassifier *c)
Definition: xmlschemawriter.cpp:819
XMLSchemaWriter()
Definition: xmlschemawriter.cpp:25
QString schemaNamespaceURI
basic schemaNamespace URI
Definition: xmlschemawriter.h:112
virtual Uml::ProgrammingLanguage::Enum language() const
Definition: xmlschemawriter.cpp:43
void writeComplexTypeClassifierDecl(UMLClassifier *c, UMLAssociationList associations, UMLAssociationList aggregations, UMLAssociationList compositions, UMLClassifierList superclassifiers, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:281
virtual void writeClass(UMLClassifier *c)
Definition: xmlschemawriter.cpp:52
void writeAssociationRoleDecl(UMLClassifier *c, const QString &multi, QTextStream &xs)
Definition: xmlschemawriter.cpp:678
void writeAttributeDecl(UMLAttribute *attrib, QTextStream &xs)
Definition: xmlschemawriter.cpp:493
QString schemaNamespaceTag
basic schemaNamespace tag
Definition: xmlschemawriter.h:110
bool writeAssociationDecls(UMLAssociationList associations, bool noRoleOK, bool didOne, Uml::ID::Type id, QTextStream &xs)
Definition: xmlschemawriter.cpp:584
virtual QStringList reservedKeywords() const
Definition: xmlschemawriter.cpp:846
void writeAbstractClassifier(UMLClassifier *c, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:216
void writeAttributeDecls(UMLAttributeList &attribs, QTextStream &xs)
Definition: xmlschemawriter.cpp:483
void markAsWritten(UMLClassifier *c)
Definition: xmlschemawriter.cpp:473
void writeClassifier(UMLClassifier *c, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:161
void writeGroupClassifierDecl(UMLClassifier *c, UMLClassifierList superclassifiers, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:251
QString makePackageTag(QString tagName)
Definition: xmlschemawriter.cpp:828
std::string Type
Definition: basictypes.h:371
Enum
Definition: basictypes.h:291
@ XMLSchema
Definition: basictypes.h:311
QList< UMLAssociation * > UMLAssociationList
Definition: umlassociationlist.h:12
QList< UMLClassifier * > UMLClassifierList
Definition: umlclassifierlist.h:12