summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenjamin Paassen <bpaassen@techfak.uni-bielefeld.de>2015-04-08 13:03:08 +0200
committerAndreas Stöckel <astoecke@techfak.uni-bielefeld.de>2016-04-25 22:19:34 +0200
commitcdbcd9d2d43ec90a6bf64595042a215c95c28efd (patch)
treea569b34d020a7e9d47d37822d4ed71888ee53908
parent9d04fb897ffca7db1c6030125198345b2203e858 (diff)
added a new integration test for complicated inheritance of fields.
-rw-r--r--src/plugins/xml/XmlOutput.cpp14
-rw-r--r--testdata/integration/domain_interaction/field_inheritance.in.osml47
-rw-r--r--testdata/integration/domain_interaction/field_inheritance.out.osml61
3 files changed, 117 insertions, 5 deletions
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 <core/common/Variant.hpp>
#include <core/common/VariantWriter.hpp>
+// TODO: REMOVE
+#include <iostream>
+
namespace ousia {
namespace xml {
@@ -142,6 +145,7 @@ void XmlTransformer::transformChildren(DocumentEntity *parentEntity,
Manager &mgr = parent->getManager();
NodeVector<FieldDescriptor> fieldDescs =
parentEntity->getDescriptor()->getFieldDescriptors();
+
for (size_t f = 0; f < fieldDescs.size(); f++) {
NodeVector<StructureNode> field = parentEntity->getField(f);
Rooted<FieldDescriptor> fieldDesc = fieldDescs[f];
@@ -196,10 +200,10 @@ Rooted<Element> XmlTransformer::transformStructuredEntity(
auto attrs = transformAttributes(s->getName(), s.get(), logger, pretty);
addNameAttribute(s, attrs);
// create the XML element itself.
- Rooted<Element> elem{
- new Element{mgr, parent, s->getDescriptor()->getName(),
- transformAttributes(s->getName(), s.get(), logger, pretty),
- s->getDescriptor()->getParent().cast<Ontology>()->getName()}};
+ Rooted<Element> elem{new Element{
+ mgr, parent, s->getDescriptor()->getName(),
+ transformAttributes(s->getName(), s.get(), logger, pretty),
+ s->getDescriptor()->getParent().cast<Ontology>()->getName()}};
// then transform the children.
transformChildren(s.get(), elem, logger, pretty);
return elem;
@@ -268,4 +272,4 @@ Rooted<Text> XmlTransformer::transformPrimitive(Handle<Element> 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 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<document xmlns:book="book" xmlns:editors="editors" xmlns:headings="headings" xmlns:meta="meta">
+ <import rel="ontology" src="/home/bpaassen/GIT/ousia-src/data/ontology/book.osxml"/>
+ <import rel="ontology" src="/home/bpaassen/GIT/ousia-src/data/ontology/headings.osxml"/>
+ <import rel="ontology" src="/home/bpaassen/GIT/ousia-src/data/ontology/meta.osxml"/>
+ <import rel="ontology" src="/home/bpaassen/GIT/ousia-src/testdata/integration/domain_interaction/field_inheritance.in.osml"/>
+ <import rel="typesystem" src="/home/bpaassen/GIT/ousia-src/testdata/integration/domain_interaction/field_inheritance.in.osml"/>
+ <book:book>
+ <heading>
+ <headings:heading>
+ <book:text>Beantwortung der Frage: Was ist Aufklärung?</book:text>
+ </headings:heading>
+ </heading>
+ <meta>
+ <meta:meta>
+ <meta:authors>
+ <meta:primaryAuthor>
+ <firstName>Immanuel</firstName>
+ <secondNames/>
+ <lastName>Kant</lastName>
+ <email>[
+ &quot;domainName&quot;= &quot;philo.albertus-koenigsberg&quot;,
+ &quot;domainSuffix&quot;= &quot;de&quot;,
+ &quot;local&quot;= &quot;ikant&quot;
+]</email>
+ <affiliation>[
+ &quot;departement&quot;= &quot;Faculty of Philosophy&quot;,
+ &quot;institution&quot;= &quot;Albertus-University Königsberg&quot;,
+ &quot;workgroup&quot;= &quot;Logic and Metaphysics&quot;
+]</affiliation>
+ </meta:primaryAuthor>
+ <editors:editor>
+ <firstName>Benjamin</firstName>
+ <secondNames/>
+ <lastName>Paaßen</lastName>
+ <email/>
+ <affiliation/>
+ <title>Iro Gnaden</title>
+ </editors:editor>
+ </meta:authors>
+ <meta:version>[
+ &quot;major&quot;= 1,
+ &quot;minor&quot;= 0,
+ &quot;patch&quot;= 0
+]</meta:version>
+ </meta:meta>
+ </meta>
+ <book:chapter>
+ <heading>
+ <headings:heading>
+ <book:text>Was ist Aufklärung?</book:text>
+ </headings:heading>
+ </heading>
+ <meta/>
+ <book:paragraph>
+ <heading/>
+ <book:text>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.</book:text>
+ </book:paragraph>
+ </book:chapter>
+ </book:book>
+</document>