23 #include "modelmaker.h"
30 #include "statement.h"
32 #include <QtXml/QDomElement>
33 #include <QtCore/QString>
35 namespace Syndication {
46 QDomElement rdfNode = doc.documentElement();
48 QDomNodeList list = rdfNode.childNodes();
50 for (uint i = 0; i < list.length(); ++i)
52 if (list.item(i).isElement())
54 QDomElement el = list.item(i).toElement();
55 readResource(model, el);
62 ResourcePtr ModelMaker::readResource(
Model& model,
const QDomElement& el)
65 QString about = QLatin1String(
"about");
66 QString resource = QLatin1String(
"resource");
67 QString descriptionStr = QLatin1String(
"Description");
71 ResourcePtr type = model.
createResource(el.namespaceURI() + el.localName());
86 QDomNodeList children = el.childNodes();
88 bool isSeq = res->isSequence();
90 for (uint i = 0; i < children.length(); ++i)
92 if (children.item(i).isElement())
94 QDomElement ce = children.item(i).toElement();
96 PropertyPtr pred = model.
createProperty(ce.namespaceURI() + ce.localName());
98 if (ce.hasAttribute(resource))
104 SequencePtr tseq = boost::static_pointer_cast<Sequence>(res);
110 else if (!ce.text().isEmpty() && ce.lastChildElement().isNull())
116 SequencePtr tseq = boost::static_pointer_cast<Sequence>(res);
124 QDomElement re = ce.lastChildElement();
126 QString uri = re.attribute(about);
129 NodePtr obj = readResource(model, re);
133 SequencePtr tseq = boost::static_pointer_cast<Sequence>(res);