umbrello  2.31.70
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  * This program is free software; you can redistribute it and/or modify *
3  * it under the terms of the GNU General Public License as published by *
4  * the Free Software Foundation; either version 2 of the License, or *
5  * (at your option) any later version. *
6  * *
7  * copyright (C) 2003 Brian Thomas <brian.thomas@gsfc.nasa.gov> *
8  * copyright (C) 2004-2020 *
9  * Umbrello UML Modeller Authors <umbrello-devel@kde.org> *
10  ***************************************************************************/
11 
12 #ifndef XMLSCHEMAWRITER_H
13 #define XMLSCHEMAWRITER_H
14 
15 #include "attribute.h"
16 #include "association.h"
17 #include "codegenerator.h"
18 #include "umlclassifierlist.h"
19 #include "umlattributelist.h"
20 #include "umlobjectlist.h"
21 #include "umlassociationlist.h"
22 #include "simplecodegenerator.h"
23 
38 {
39  Q_OBJECT
40 public:
41 
43  virtual ~XMLSchemaWriter();
44 
45  virtual void writeClass(UMLClassifier *c);
46 
48 
49  virtual QStringList reservedKeywords() const;
50 
51 private:
52 
53  void writeClassifier(UMLClassifier *c, QTextStream &XMLSchema);
54  void writeAbstractClassifier(UMLClassifier *c, QTextStream &XMLSchema);
55  void writeConcreteClassifier(UMLClassifier *c, QTextStream &XMLSchema);
56 
58  UMLAssociationList associations,
59  UMLAssociationList aggregations,
60  UMLAssociationList compositions,
61  UMLClassifierList superclassifiers,
62  QTextStream &XMLSchema);
63 
65  UMLClassifierList superclassifiers,
66  QTextStream &XMLSchema);
67 
69 
75 // void writeAttributes(UMLClassifier *c, QTextStream &j);
76 
77  void writeElementDecl(const QString &elementName, const QString &elementTypeName, QTextStream &xs);
78 
79  void writeAttributeDecls(UMLAttributeList &attribs, QTextStream &xs);
80 
81  void writeAttributeDecl(UMLAttribute *attrib, QTextStream &xs);
82 
84 
85  QStringList findAttributeGroups(UMLClassifier *c);
86 
87  bool writeAssociationDecls(UMLAssociationList associations, bool noRoleOK, bool didOne,
88  Uml::ID::Type id, QTextStream &xs);
89 
90  void writeAttributeGroupDecl(const QString &elementName, UMLAttributeList &attribs, QTextStream &xs);
91 
92  void writeAssociationRoleDecl(UMLClassifier *c, const QString &multi, QTextStream &xs);
93 
94  QString makeSchemaTag(QString tagName);
95  QString makePackageTag(QString tagName);
96 
97  void writeComment(const QString &text, QTextStream &xs);
98 
100 
101  QString fixTypeName(const QString& string);
102 
103  QString fixInitialStringDeclValue(QString value, const QString &type);
104 
105  QString getElementName(UMLClassifier *c);
106  QString getElementTypeName(UMLClassifier *c);
108 
109  void writeChildObjsInAssociation(UMLClassifier *c, UMLAssociationList assoc, QTextStream &s);
110 
111  bool hasBeenWritten(UMLClassifier *c);
112  void markAsWritten(UMLClassifier *c);
113 
118  QString startline;
120 };
121 
122 #endif // XMLSCHEMAWRITER_H
Definition: basictypes.h:291
UMLClassifierList writtenClassifiers
a list of UMLClassifiers we have already written
Definition: xmlschemawriter.h:119
Information for a non-graphical Concept/Class.
Definition: classifier.h:39
Definition: xmlschemawriter.h:37
QString fixInitialStringDeclValue(QString value, const QString &type)
Definition: xmlschemawriter.cpp:790
void writeComment(const QString &text, QTextStream &xs)
Definition: xmlschemawriter.cpp:556
QList< UMLAssociation * > UMLAssociationList
Definition: umlassociationlist.h:18
QString makeSchemaTag(QString tagName)
Definition: xmlschemawriter.cpp:841
QString packageNamespaceTag
basic packageNamespace tag
Definition: xmlschemawriter.h:115
Enum
Definition: basictypes.h:271
void writeConcreteClassifier(UMLClassifier *c, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:379
void writeGroupClassifierDecl(UMLClassifier *c, UMLClassifierList superclassifiers, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:255
Definition: simplecodegenerator.h:33
Sets up attribute information.
Definition: attribute.h:27
Definition: umlattributelist.h:26
QString fixTypeName(const QString &string)
Definition: xmlschemawriter.cpp:779
QString makePackageTag(QString tagName)
Definition: xmlschemawriter.cpp:832
QString schemaNamespaceTag
basic schemaNamespace tag
Definition: xmlschemawriter.h:114
void markAsWritten(UMLClassifier *c)
Definition: xmlschemawriter.cpp:477
void writeChildObjsInAssociation(UMLClassifier *c, UMLAssociationList assoc, QTextStream &s)
Definition: xmlschemawriter.cpp:451
void writeAbstractClassifier(UMLClassifier *c, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:220
QString getElementGroupTypeName(UMLClassifier *c)
Definition: xmlschemawriter.cpp:823
void writeAttributeGroupDecl(const QString &elementName, UMLAttributeList &attribs, QTextStream &xs)
Definition: xmlschemawriter.cpp:529
void writeElementDecl(const QString &elementName, const QString &elementTypeName, QTextStream &xs)
Definition: xmlschemawriter.cpp:151
void writeComplexTypeClassifierDecl(UMLClassifier *c, UMLAssociationList associations, UMLAssociationList aggregations, UMLAssociationList compositions, UMLClassifierList superclassifiers, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:285
void writeAssociationRoleDecl(UMLClassifier *c, const QString &multi, QTextStream &xs)
Definition: xmlschemawriter.cpp:682
QString schemaNamespaceURI
basic schemaNamespace URI
Definition: xmlschemawriter.h:116
QString getElementTypeName(UMLClassifier *c)
Definition: xmlschemawriter.cpp:814
QString packageNamespaceURI
basic packageNamespace URI
Definition: xmlschemawriter.h:117
UMLObjectList findChildObjsInAssociations(UMLClassifier *c, UMLAssociationList associations)
Definition: xmlschemawriter.cpp:658
QList< UMLClassifier * > UMLClassifierList
Definition: umlclassifierlist.h:17
virtual void writeClass(UMLClassifier *c)
Definition: xmlschemawriter.cpp:56
UMLAttributeList findAttributes(UMLClassifier *c)
Definition: xmlschemawriter.cpp:186
virtual QStringList reservedKeywords() const
Definition: xmlschemawriter.cpp:850
void writeAttributeDecl(UMLAttribute *attrib, QTextStream &xs)
Definition: xmlschemawriter.cpp:497
virtual Uml::ProgrammingLanguage::Enum language() const
Definition: xmlschemawriter.cpp:47
void writeAttributeDecls(UMLAttributeList &attribs, QTextStream &xs)
Definition: xmlschemawriter.cpp:487
std::string Type
Definition: basictypes.h:351
bool writeAssociationDecls(UMLAssociationList associations, bool noRoleOK, bool didOne, Uml::ID::Type id, QTextStream &xs)
Definition: xmlschemawriter.cpp:588
QString getElementName(UMLClassifier *c)
Definition: xmlschemawriter.cpp:805
virtual ~XMLSchemaWriter()
Definition: xmlschemawriter.cpp:40
XMLSchemaWriter()
Definition: xmlschemawriter.cpp:29
Definition: umlobjectlist.h:28
QString startline
a , used at the end of each line
Definition: xmlschemawriter.h:118
bool determineIfHasChildNodes(UMLClassifier *c)
Definition: xmlschemawriter.cpp:438
QStringList findAttributeGroups(UMLClassifier *c)
Definition: xmlschemawriter.cpp:414
bool hasBeenWritten(UMLClassifier *c)
Definition: xmlschemawriter.cpp:466
void writeClassifier(UMLClassifier *c, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:165