diff options
Diffstat (limited to 'testdata/osxmlparser/book_ontology.osxml')
-rw-r--r-- | testdata/osxmlparser/book_ontology.osxml | 98 |
1 files changed, 98 insertions, 0 deletions
diff --git a/testdata/osxmlparser/book_ontology.osxml b/testdata/osxmlparser/book_ontology.osxml new file mode 100644 index 0000000..0b393e6 --- /dev/null +++ b/testdata/osxmlparser/book_ontology.osxml @@ -0,0 +1,98 @@ +<?xml version="1.0" standalone="yes"?> +<!-- The ontology node is the root node of a single ontology definition --> +<ontology name="book"> + <!-- We start by declaring the structured classes. This implicitly defines + a context free grammar, which specifies the language of documents that + may be constructed using this ontology. Note that this grammar may be + influenced by other ontologies depending on this one. --> + <!-- Note that we specify neither attributes, + nor parent, nor transparency, meaning that we refer to the default + values. Also note that we need to specify explicitly, which classes + are allowed as root nodes. --> + <struct name="book" cardinality="{1}" isRoot="true"> + <!-- implicitly: + <struct name="book" cardinality="{1}" isRoot="true" + transparent="false" isa="" attributesDescriptor=""> + --> + <!-- Note that we assume that, if not specified, a + field is assumed to have no name, be of type TREE + and not optional. --> + <field> + <!-- implicitly: + <field name="" isSubtree="false" optional="false"> + --> + <!-- Using such child references might be problematic if + multiple nodes are matched. This should probably + result in an exception. + Also note that we only reference the child classes. + We do _not_ declare them here. This might lead to + some difficulties in the parsing process as I + effectively use forward declarations here. So the + resolve() process may only be started _after_ all + delcarations are read. --> + <childRef ref="book.chapter"/> + <!-- The dot notation as path separator might be changed + but I think it to be intuitive. If we want a more + CSS like style we can use whitespaces here. --> + <childRef ref="book.paragraph"/> + </field> + </struct> + <struct name="chapter"> + <!-- implicitly: + <struct name="chapter" isRoot="false" cardinality="{*}" + transparent="false" isa="" attributesDescriptor=""> + --> + <field> + <!-- implicitly: + <field name="" isSubtree="false" optional="false"> + --> + <childRef ref="book.section"/> + <childRef ref="book.paragraph"/> + </field> + </struct> + <struct name="section"> + <!-- implicitly: + <struct name="section" isRoot="false" cardinality="{*}" + transparent="false" isa="" attributesDescriptor=""> + --> + <field> + <!-- implicitly: + <field name="" isSubtree="false" optional="false"> + --> + <childRef ref="book.subsection"/> + <childRef ref="book.paragraph"/> + </field> + </struct> + <struct name="subsection"> + <!-- implicitly: + <struct name="subsection" isRoot="false" cardinality="{*}" + transparent="false" isa="" attributesDescriptor=""> + --> + <field> + <!-- implicitly: + <field name="" isSubtree="false" optional="false"> + --> + <childRef ref="book.paragraph"/> + </field> + </struct> + <struct name="paragraph" transparent="true"> + <!-- implicitly: + <struct name="subsection" isRoot="false" cardinality="{*}" + transparent="true" isa="" attributesDescriptor=""> + --> + <field> + <!-- implicitly: + <field name="" type="TREE" optional="false"> + --> + <childRef ref="book.text"/> + </field> + </struct> + <struct name="text" transparent="true"> + <!-- implicitly: + <struct name="text" isRoot="false" cardinality="{*}" + transparent="true" isa="" attributesDescriptor=""> + --> + <!-- we might want to specify std.string here --> + <primitive type="string"/> + </struct> +</ontology> |