- 
    Bug 
- 
    Resolution: Done
- 
    P2: Important 
- 
    5.4.1
- 
    None
I didn't find a good title 
Consider the following MIME definitions:
<?xml version="1.0" encoding="UTF-8"?>
<mime-info xmlns='http://www.freedesktop.org/standards/shared-mime-info'>
    <!-- The real life example would be that this mime type is a sub class of application/xml
         which has a magic that matches <?xml .
         XML files with an early appearing qnx tag are detected as
         application/vnd.qnx.bar-descriptor. We want that XML files without the qnx tag to be
         identified as application/xml, independent of the order in which the two are registered. -->
    <mime-type type="application/vnd.qnx.bar-descriptor">
      <sub-class-of type="application/foo"/>
      <glob pattern="*.foo"/>
      <magic><!-- higher priority than the parent magic -->
        <match value="<qnx>" type="string" offset="0:200"/>
      </magic>
    </mime-type>
    <mime-type type="application/foo">
      <glob pattern="*.foo"/>
      <magic priority="40">
        <match value="<?foo" type="string" offset="0"/>
      </magic>
    </mime-type>
</mime-info>
and the following file something.foo
<?foo> <blah> </blah>
Both MIME types match by pattern. Magic is consulted, application/foo matches by magic. Currently, the resulting MIME type is application/vnd.qnx.bar-descriptor because that appears first in the list and is a subclass of the MIME type that matches by magic.