umbrello  2.32.2
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: simplecodegenerator.h:34
Definition: umlattributelist.h:27
Sets up attribute information.
Definition: attribute.h:28
Information for a non-graphical Concept/Class.
Definition: classifier.h:40
Definition: umlobjectlist.h:29
Definition: xmlschemawriter.h:38
bool hasBeenWritten(UMLClassifier *c)
Definition: xmlschemawriter.cpp:466
QString getElementName(UMLClassifier *c)
Definition: xmlschemawriter.cpp:805
QString makeSchemaTag(QString tagName)
Definition: xmlschemawriter.cpp:841
QStringList findAttributeGroups(UMLClassifier *c)
Definition: xmlschemawriter.cpp:414
void writeConcreteClassifier(UMLClassifier *c, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:379
QString packageNamespaceURI
basic packageNamespace URI
Definition: xmlschemawriter.h:117
QString fixTypeName(const QString &string)
Definition: xmlschemawriter.cpp:779
UMLAttributeList findAttributes(UMLClassifier *c)
Definition: xmlschemawriter.cpp:186
QString fixInitialStringDeclValue(QString value, const QString &type)
Definition: xmlschemawriter.cpp:790
UMLClassifierList writtenClassifiers
a list of UMLClassifiers we have already written
Definition: xmlschemawriter.h:119
UMLObjectList findChildObjsInAssociations(UMLClassifier *c, UMLAssociationList associations)
Definition: xmlschemawriter.cpp:658
QString getElementTypeName(UMLClassifier *c)
Definition: xmlschemawriter.cpp:814
void writeChildObjsInAssociation(UMLClassifier *c, UMLAssociationList assoc, QTextStream &s)
Definition: xmlschemawriter.cpp:451
QString packageNamespaceTag
basic packageNamespace tag
Definition: xmlschemawriter.h:115
QString startline
a , used at the end of each line
Definition: xmlschemawriter.h:118
bool determineIfHasChildNodes(UMLClassifier *c)
Definition: xmlschemawriter.cpp:438
void writeComment(const QString &text, QTextStream &xs)
Definition: xmlschemawriter.cpp:556
void writeElementDecl(const QString &elementName, const QString &elementTypeName, QTextStream &xs)
Definition: xmlschemawriter.cpp:151
virtual ~XMLSchemaWriter()
Definition: xmlschemawriter.cpp:40
void writeAttributeGroupDecl(const QString &elementName, UMLAttributeList &attribs, QTextStream &xs)
Definition: xmlschemawriter.cpp:529
QString getElementGroupTypeName(UMLClassifier *c)
Definition: xmlschemawriter.cpp:823
XMLSchemaWriter()
Definition: xmlschemawriter.cpp:29
QString schemaNamespaceURI
basic schemaNamespace URI
Definition: xmlschemawriter.h:116
virtual Uml::ProgrammingLanguage::Enum language() const
Definition: xmlschemawriter.cpp:47
void writeComplexTypeClassifierDecl(UMLClassifier *c, UMLAssociationList associations, UMLAssociationList aggregations, UMLAssociationList compositions, UMLClassifierList superclassifiers, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:285
virtual void writeClass(UMLClassifier *c)
Definition: xmlschemawriter.cpp:56
void writeAssociationRoleDecl(UMLClassifier *c, const QString &multi, QTextStream &xs)
Definition: xmlschemawriter.cpp:682
void writeAttributeDecl(UMLAttribute *attrib, QTextStream &xs)
Definition: xmlschemawriter.cpp:497
QString schemaNamespaceTag
basic schemaNamespace tag
Definition: xmlschemawriter.h:114
bool writeAssociationDecls(UMLAssociationList associations, bool noRoleOK, bool didOne, Uml::ID::Type id, QTextStream &xs)
Definition: xmlschemawriter.cpp:588
virtual QStringList reservedKeywords() const
Definition: xmlschemawriter.cpp:850
void writeAbstractClassifier(UMLClassifier *c, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:220
void writeAttributeDecls(UMLAttributeList &attribs, QTextStream &xs)
Definition: xmlschemawriter.cpp:487
void markAsWritten(UMLClassifier *c)
Definition: xmlschemawriter.cpp:477
void writeClassifier(UMLClassifier *c, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:165
void writeGroupClassifierDecl(UMLClassifier *c, UMLClassifierList superclassifiers, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:255
QString makePackageTag(QString tagName)
Definition: xmlschemawriter.cpp:832
std::string Type
Definition: basictypes.h:385
Enum
Definition: basictypes.h:305
@ XMLSchema
Definition: basictypes.h:325
QList< UMLAssociation * > UMLAssociationList
Definition: umlassociationlist.h:18
QList< UMLClassifier * > UMLClassifierList
Definition: umlclassifierlist.h:17