Skip to content

XSD not allowing <semantics>-element as child of <apply>-element #498

Open
@mgrub

Description

@mgrub

Dear maintainers,

thank you very much for providing MathML and taking care of it!

I want to semantically annotate operators in a formula, which seems to be a perfect use-case for the <semantics>-element. A minimal working example (MWE) for my application is very similiar to the last example of subsection 4.2.1.3:

mathml_mwe.xml:

<math xmlns="http://www.w3.org/1998/Math/MathML">
    <apply>
        <semantics>
            <csymbol id="operation">OP</csymbol>
            <annotation>OPERATOR</annotation>
        </semantics>
        <semantics>
            <ci id="input">x</ci>
            <annotation>INPUT</annotation>
        </semantics>
    </apply>
</math>

However, if I validate either the MWE or the mentioned example in the documentation against the XSD, both result in (something like) this:

failed validating <Element '{http://www.w3.org/1998/Math/MathML}apply' at 
0x00000219EFDF6ED0> with XsdGroup(model='sequence', occurs=[1, 1]):

Reason: Unexpected child with tag 'm:semantics' at position 1.

Similiar errors arise, if only the <csymbol>-element or the <ci>-element is semantically annotated. It seems, like the schema does not allow a <semantics>-child inside an <apply>-element. My questions are therefore: Is this behaviour intended? Am I using the <semantics>-element in a wrong way? Might this be a problem with my validation script? Or does the schema need an adjustment?

Best regards
Maximilian


I am validating using Python and xmlschema as follows:

mathml_validate.py:

import os
import xmlschema

mathml_object = os.path.abspath("mathml_mwe.xml")
mathml_schema_path = "https://www.w3.org/Math/XMLSchema/mathml3/mathml3.xsd"

try:
    schema = xmlschema.XMLSchema(mathml_schema_path)
    result = schema.validate(mathml_object)
    print(result)
except Exception as e:
    print(f"Schema did not validate successfully. (Error: {e})")

Metadata

Metadata

Assignees

Labels

MathML 4Issues affecting the MathML 4 specificationneed specification updateIssues requiring specification changes

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions