umbrello  2.34.3
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
36 public:
37 
39  virtual ~XMLSchemaWriter();
40 
41  virtual void writeClass(UMLClassifier *c);
42 
44 
45  virtual QStringList reservedKeywords() const;
46 
47 private:
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
umlattributelist.h
XMLSchemaWriter::writeAttributeDecl
void writeAttributeDecl(UMLAttribute *attrib, QTextStream &xs)
Definition: xmlschemawriter.cpp:494
XMLSchemaWriter::packageNamespaceURI
QString packageNamespaceURI
basic packageNamespace URI
Definition: xmlschemawriter.h:113
XMLSchemaWriter::writeAssociationRoleDecl
void writeAssociationRoleDecl(UMLClassifier *c, const QString &multi, QTextStream &xs)
Definition: xmlschemawriter.cpp:679
xmlschemawriter.h
XMLSchemaWriter::packageNamespaceTag
QString packageNamespaceTag
basic packageNamespace tag
Definition: xmlschemawriter.h:111
XMLSchemaWriter::getElementGroupTypeName
QString getElementGroupTypeName(UMLClassifier *c)
Definition: xmlschemawriter.cpp:820
Uml::ProgrammingLanguage::Enum
Enum
Definition: basictypes.h:291
UMLClassifier::isInterface
bool isInterface() const
Definition: classifier.cpp:116
UMLAttributeList
Definition: umlattributelist.h:20
UMLObject::name
QString name() const
Definition: umlobject.cpp:207
XMLSchemaWriter::getElementTypeName
QString getElementTypeName(UMLClassifier *c)
Definition: xmlschemawriter.cpp:811
XMLSchemaWriter::makeSchemaTag
QString makeSchemaTag(QString tagName)
Definition: xmlschemawriter.cpp:838
CodeGenerator::getHeadingFile
virtual QString getHeadingFile(const QString &file)
Definition: codegenerator.cpp:406
XMLSchemaWriter::writeAssociationDecls
bool writeAssociationDecls(UMLAssociationList associations, bool noRoleOK, bool didOne, Uml::ID::Type id, QTextStream &xs)
Definition: xmlschemawriter.cpp:585
XMLSchemaWriter::writeAttributeGroupDecl
void writeAttributeGroupDecl(const QString &elementName, UMLAttributeList &attribs, QTextStream &xs)
Definition: xmlschemawriter.cpp:526
XMLSchemaWriter::XMLSchemaWriter
XMLSchemaWriter()
Definition: xmlschemawriter.cpp:26
XMLSchemaWriter::writeAbstractClassifier
void writeAbstractClassifier(UMLClassifier *c, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:217
CodeGenerator::cleanName
static QString cleanName(const QString &name)
Definition: codegenerator.cpp:548
operation.h
UMLAttribute::getInitialValue
QString getInitialValue() const
Definition: attribute.cpp:100
UMLClassifierListItem::getTypeName
virtual QString getTypeName() const
Definition: classifierlistitem.cpp:108
Uml::RoleType::A
@ A
Definition: basictypes.h:237
XMLSchemaWriter::language
virtual Uml::ProgrammingLanguage::Enum language() const
Definition: xmlschemawriter.cpp:44
XMLSchemaWriter::schemaNamespaceURI
QString schemaNamespaceURI
basic schemaNamespace URI
Definition: xmlschemawriter.h:112
association.h
Uml::ProgrammingLanguage::XMLSchema
@ XMLSchema
Definition: basictypes.h:311
UMLObject::isStatic
bool isStatic() const
Definition: umlobject.cpp:362
Model_Utils::hasAssociations
bool hasAssociations(UMLObject::ObjectType type)
Definition: model_utils.cpp:2335
UMLClassifierList
QList< UMLClassifier * > UMLClassifierList
Definition: umlclassifierlist.h:12
Uml::ID::Type
std::string Type
Definition: basictypes.h:371
XMLSchemaWriter::~XMLSchemaWriter
virtual ~XMLSchemaWriter()
Definition: xmlschemawriter.cpp:37
XMLSchemaWriter::writeGroupClassifierDecl
void writeGroupClassifierDecl(UMLClassifier *c, UMLClassifierList superclassifiers, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:252
contains
c Accompany it with the information you received as to the offer to distribute corresponding source complete source code means all the source code for all modules it contains
Definition: GPL-2.0-only.txt:149
XMLSchemaWriter::fixInitialStringDeclValue
QString fixInitialStringDeclValue(QString value, const QString &type)
Definition: xmlschemawriter.cpp:787
UMLObject
The base class for UML objects.
Definition: umlobject.h:69
SimpleCodeGenerator::indent
QString indent()
Definition: simplecodegenerator.cpp:72
XMLSchemaWriter::startline
QString startline
a , used at the end of each line
Definition: xmlschemawriter.h:114
UMLObject::isAbstract
bool isAbstract() const
Definition: umlobject.cpp:344
SimpleCodeGenerator::m_indentLevel
int m_indentLevel
Definition: simplecodegenerator.h:73
XMLSchemaWriter::writeConcreteClassifier
void writeConcreteClassifier(UMLClassifier *c, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:376
CodeGenerator::forceDoc
bool forceDoc() const
Definition: codegenerator.cpp:764
XMLSchemaWriter::fixTypeName
QString fixTypeName(const QString &string)
Definition: xmlschemawriter.cpp:776
Uml::Visibility::Public
@ Public
Definition: basictypes.h:46
XMLSchemaWriter::writeChildObjsInAssociation
void writeChildObjsInAssociation(UMLClassifier *c, UMLAssociationList assoc, QTextStream &s)
Definition: xmlschemawriter.cpp:448
CodeGenerator::showGeneratedFile
void showGeneratedFile(const QString &filename)
Definition: moc_codegenerator.cpp:181
UMLObject::visibility
Uml::Visibility::Enum visibility() const
Definition: umlobject.cpp:462
attribute.h
XMLSchemaWriter::markAsWritten
void markAsWritten(UMLClassifier *c)
Definition: xmlschemawriter.cpp:474
a
QString a
Definition: petalnode.cpp:13
SimpleCodeGenerator::m_endl
QString m_endl
Definition: simplecodegenerator.h:74
XMLSchemaWriter::writeComplexTypeClassifierDecl
void writeComplexTypeClassifierDecl(UMLClassifier *c, UMLAssociationList associations, UMLAssociationList aggregations, UMLAssociationList compositions, UMLClassifierList superclassifiers, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:282
Uml::AssociationType::Association
@ Association
Definition: basictypes.h:96
umlclassifierlist.h
XMLSchemaWriter::writtenClassifiers
UMLClassifierList writtenClassifiers
a list of UMLClassifiers we have already written
Definition: xmlschemawriter.h:115
UMLObject::asUMLClassifier
UMLClassifier * asUMLClassifier()
Definition: umlobject.cpp:1420
SimpleCodeGenerator
Definition: simplecodegenerator.h:29
Uml::RoleType::B
@ B
Definition: basictypes.h:238
XMLSchemaWriter::writeElementDecl
void writeElementDecl(const QString &elementName, const QString &elementTypeName, QTextStream &xs)
Definition: xmlschemawriter.cpp:148
c
type show c for details The hypothetical commands show w and show c should show the appropriate parts of the General Public License Of the commands you use may be called something other than show w and show c
Definition: GPL-2.0-only.txt:301
XMLSchemaWriter::findAttributeGroups
QStringList findAttributeGroups(UMLClassifier *c)
Definition: xmlschemawriter.cpp:411
UMLObject::doc
QString doc() const
Definition: umlobject.cpp:431
XMLSchemaWriter::writeClassifier
void writeClassifier(UMLClassifier *c, QTextStream &XMLSchema)
Definition: xmlschemawriter.cpp:162
UMLAttribute
Sets up attribute information.
Definition: attribute.h:22
logWarn0
#define logWarn0(s)
Definition: uml.h:536
CodeGenerator::codeGenerated
void codeGenerated(UMLClassifier *concept, bool generated)
Definition: moc_codegenerator.cpp:167
XMLSchemaWriter::findChildObjsInAssociations
UMLObjectList findChildObjsInAssociations(UMLClassifier *c, UMLAssociationList associations)
Definition: xmlschemawriter.cpp:655
classifier.h
XMLSchemaWriter::writeClass
virtual void writeClass(UMLClassifier *c)
Definition: xmlschemawriter.cpp:53
XMLSchemaWriter::hasBeenWritten
bool hasBeenWritten(UMLClassifier *c)
Definition: xmlschemawriter.cpp:463
XMLSchemaWriter::findAttributes
UMLAttributeList findAttributes(UMLClassifier *c)
Definition: xmlschemawriter.cpp:183
uml.h
UMLClassifier
Information for a non-graphical Concept/Class.
Definition: classifier.h:34
debug_utils.h
XMLSchemaWriter::determineIfHasChildNodes
bool determineIfHasChildNodes(UMLClassifier *c)
Definition: xmlschemawriter.cpp:435
umlassociationlist.h
UMLAssociation
Sets up association information.
Definition: association.h:28
XMLSchemaWriter::getElementName
QString getElementName(UMLClassifier *c)
Definition: xmlschemawriter.cpp:802
XMLSchemaWriter::reservedKeywords
virtual QStringList reservedKeywords() const
Definition: xmlschemawriter.cpp:847
codegenerator.h
simplecodegenerator.h
XMLSchemaWriter::schemaNamespaceTag
QString schemaNamespaceTag
basic schemaNamespace tag
Definition: xmlschemawriter.h:110
Uml::Visibility::Private
@ Private
Definition: basictypes.h:47
XMLSchemaWriter::writeComment
void writeComment(const QString &text, QTextStream &xs)
Definition: xmlschemawriter.cpp:553
umlobjectlist.h
Uml::Visibility::Protected
@ Protected
Definition: basictypes.h:48
XMLSchemaWriter::makePackageTag
QString makePackageTag(QString tagName)
Definition: xmlschemawriter.cpp:829
UMLObjectList
Definition: umlobjectlist.h:24
UMLAssociationList
QList< UMLAssociation * > UMLAssociationList
Definition: umlassociationlist.h:12
SimpleCodeGenerator::findFileName
QString findFileName(UMLPackage *concept, const QString &ext)
Definition: simplecodegenerator.cpp:87
umldoc.h
XMLSchemaWriter::writeAttributeDecls
void writeAttributeDecls(UMLAttributeList &attribs, QTextStream &xs)
Definition: xmlschemawriter.cpp:484
CodeGenerator::openFile
bool openFile(QFile &file, const QString &name)
Definition: codegenerator.cpp:522
XMLSchemaWriter
Definition: xmlschemawriter.h:33