Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

conflicting ID-types for attribute "id" of f:* elements #2

Closed
thvitt opened this issue Sep 4, 2018 · 5 comments
Closed

conflicting ID-types for attribute "id" of f:* elements #2

thvitt opened this issue Sep 4, 2018 · 5 comments
Assignees
Milestone

Comments

@thvitt
Copy link
Member

thvitt commented Sep 4, 2018

In Oxygen using the default validation settings, our schema fails with the message conflicting ID-types for attribute "id" for one of the elements from the Faust namespace. This is relaxng/jing-trang#211.

As a workaround, go to Options → Preferences in Oxygen, and on the XML / XML Parser / RELAX NG page, uncheck Check ID/IDREF.

The root of the trouble is this excerpt in the generated Relax NG:

   <define name="anyElement-xenoData">
      <element>
         <anyName>
            <except>
               <nsName ns="http://www.tei-c.org/ns/1.0"/>
               <name ns="http://www.tei-c.org/ns/Examples">egXML</name>
            </except>
         </anyName>
         <zeroOrMore>
            <attribute>
               <anyName/>
            </attribute>
         </zeroOrMore>
         <zeroOrMore>
            <choice>
               <text/>
               <ref name="anyElement-xenoData"/>
            </choice>
         </zeroOrMore>
      </element>
   </define>

This allows our f:*-Elements, but it allows for them to have any attribute of any type which effectively allows xml:id to be anything, not only xs:ID. Since we need the f: elements there for the testimony data, I currently don’t see a solution.

@thvitt thvitt self-assigned this Sep 4, 2018
@thvitt
Copy link
Member Author

thvitt commented Sep 4, 2018

also cf. TEIC/TEI#1399

@gerritbruening
Copy link
Contributor

This seems to prevent me from validating a file after making a change to adjust it to schema, right?

@thvitt
Copy link
Member Author

thvitt commented Oct 2, 2018

As a workaround, go to Options → Preferences in Oxygen, and on the XML / XML Parser / RELAX NG page, uncheck Check ID/IDREF.

@gerritbruening
Copy link
Contributor

Thanks, done!

@thvitt thvitt added this to the post-1.0 milestone Oct 9, 2018
@thvitt
Copy link
Member Author

thvitt commented Oct 9, 2018

As outlined in this e-mail thread, the obvious solution – explicitely defining the datatype of xml:ID for the any elements also isn’t compatible with the DTD compatibility layer.

So effectively, this issue could only be fixed by explicitly forbidding the faust namespace in the xenoData element, which would require modifications in testimony processing, which I won’t implement for 1.0rc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants