From cdbcd9d2d43ec90a6bf64595042a215c95c28efd Mon Sep 17 00:00:00 2001 From: Benjamin Paassen Date: Wed, 8 Apr 2015 13:03:08 +0200 Subject: added a new integration test for complicated inheritance of fields. --- src/plugins/xml/XmlOutput.cpp | 14 +++-- .../domain_interaction/field_inheritance.in.osml | 47 +++++++++++++++++ .../domain_interaction/field_inheritance.out.osml | 61 ++++++++++++++++++++++ 3 files changed, 117 insertions(+), 5 deletions(-) create mode 100644 testdata/integration/domain_interaction/field_inheritance.in.osml create mode 100644 testdata/integration/domain_interaction/field_inheritance.out.osml diff --git a/src/plugins/xml/XmlOutput.cpp b/src/plugins/xml/XmlOutput.cpp index bf5897b..166fbf7 100644 --- a/src/plugins/xml/XmlOutput.cpp +++ b/src/plugins/xml/XmlOutput.cpp @@ -23,6 +23,9 @@ #include #include +// TODO: REMOVE +#include + namespace ousia { namespace xml { @@ -142,6 +145,7 @@ void XmlTransformer::transformChildren(DocumentEntity *parentEntity, Manager &mgr = parent->getManager(); NodeVector fieldDescs = parentEntity->getDescriptor()->getFieldDescriptors(); + for (size_t f = 0; f < fieldDescs.size(); f++) { NodeVector field = parentEntity->getField(f); Rooted fieldDesc = fieldDescs[f]; @@ -196,10 +200,10 @@ Rooted XmlTransformer::transformStructuredEntity( auto attrs = transformAttributes(s->getName(), s.get(), logger, pretty); addNameAttribute(s, attrs); // create the XML element itself. - Rooted elem{ - new Element{mgr, parent, s->getDescriptor()->getName(), - transformAttributes(s->getName(), s.get(), logger, pretty), - s->getDescriptor()->getParent().cast()->getName()}}; + Rooted elem{new Element{ + mgr, parent, s->getDescriptor()->getName(), + transformAttributes(s->getName(), s.get(), logger, pretty), + s->getDescriptor()->getParent().cast()->getName()}}; // then transform the children. transformChildren(s.get(), elem, logger, pretty); return elem; @@ -268,4 +272,4 @@ Rooted XmlTransformer::transformPrimitive(Handle parent, return text; } } -} +} \ No newline at end of file diff --git a/testdata/integration/domain_interaction/field_inheritance.in.osml b/testdata/integration/domain_interaction/field_inheritance.in.osml new file mode 100644 index 0000000..0e782cb --- /dev/null +++ b/testdata/integration/domain_interaction/field_inheritance.in.osml @@ -0,0 +1,47 @@ +\import[ontology]{book} +\import[ontology]{headings} +\import[ontology]{meta} + +% Define a constant for the affiliation +\typesystem#affiliations + \import[typesystem]{affiliation} + \constant#LaM[ + type=affiliation, + value=[ + Logic and Metaphysics, + Faculty of Philosophy, + Albertus-University Königsberg + ] + ] + +% Define a ontology for editors +\ontology#editors + \struct#extendedAuthor[isa=author] + \primitive#title[type=string, subtree=true] + \struct#editor[isa=extendedAuthor] + +\begin{book}{Beantwortung der Frage: Was ist Aufklärung?} + % Add some more information about the book: authors, version + \meta{ + \primaryAuthor{ + \firstName Immanuel + \lastName Kant + + % Lateron e-mail adresses may be parsed + \email [ikant,philo.albertus-koenigsberg,de] + + % Specify affiliation, use constant defined above + \affiliation LaM + } + \editor{ + \title Iro Gnaden + \firstName Benjamin + \lastName Paaßen + } + \version [1, 0, 0] + } + + \chapter{Was ist Aufklärung?} + + Aufklärung ist der Ausgang des Menschen aus seiner selbstverschuldeten Unmündigkeit. Unmündigkeit ist das Unvermögen, sich seines Verstandes ohne Leitung eines anderen zu bedienen. Selbstverschuldet ist diese Unmündigkeit, wenn die Ursache derselben nicht am Mangel des Verstandes, sondern der Entschließung und des Mutes liegt, sich seiner ohne Leitung eines andern zu bedienen. Sapere aude! Habe Mut, dich deines eigenen Verstandes zu bedienen! ist also der Wahlspruch der Aufklärung. +\end{book} diff --git a/testdata/integration/domain_interaction/field_inheritance.out.osml b/testdata/integration/domain_interaction/field_inheritance.out.osml new file mode 100644 index 0000000..41c657d --- /dev/null +++ b/testdata/integration/domain_interaction/field_inheritance.out.osml @@ -0,0 +1,61 @@ + + + + + + + + + + + Beantwortung der Frage: Was ist Aufklärung? + + + + + + + Immanuel + + Kant + [ + "domainName"= "philo.albertus-koenigsberg", + "domainSuffix"= "de", + "local"= "ikant" +] + [ + "departement"= "Faculty of Philosophy", + "institution"= "Albertus-University Königsberg", + "workgroup"= "Logic and Metaphysics" +] + + + Benjamin + + Paaßen + + + Iro Gnaden + + + [ + "major"= 1, + "minor"= 0, + "patch"= 0 +] + + + + + + Was ist Aufklärung? + + + + + + Aufklärung ist der Ausgang des Menschen aus seiner selbstverschuldeten Unmündigkeit. Unmündigkeit ist das Unvermögen, sich seines Verstandes ohne Leitung eines anderen zu bedienen. Selbstverschuldet ist diese Unmündigkeit, wenn die Ursache derselben nicht am Mangel des Verstandes, sondern der Entschließung und des Mutes liegt, sich seiner ohne Leitung eines andern zu bedienen. Sapere aude! Habe Mut, dich deines eigenen Verstandes zu bedienen! ist also der Wahlspruch der Aufklärung. + + + + -- cgit v1.2.3