xhtmltaxonomyxbrl

ESEF XHTML - schemaRef


Hi I am currently trying to learn how ESEF works and i have some questions about the link:schemaRef Element.

Please correct me when I am wrong at any point as I am still learning :)

In general the folder structure seems to look like this in the final format:

META-INF/
├─ taxonomyPackage.xml
├─ catalog.xml
reports/
├─ Esef.xhtml
www.mycompany.com/
├─ xbrl/
│  ├─ 2024/
│  │  ├─ mycompany_2024.xsd
│  │  ├─ mycompany_2024_def.xml
│  │  ├─ mycompany_2024_pre.xml
│  │  ├─ mycompany_2024_cal.xml
│  │  ├─ mycompany_2024_lab_de.xml
│  │  ├─ mycompany_2024_lab_en.xml

www.mycompany.com/xbrl/2024 contains the taxonomy.

The Esef.xhtml has a section link:schemaRef where a link to the taxonomy is given.

<link:schemaRef xlink:href="https://www.mycompany.com/xbrl/2024/mycompany_2024.xsd" xlink:type="simple"></link:schemaRef>

I would understand if behind the link you come to the xsd file online but thats never the case in those ESEF files I have seen so far so why - when the taxonomy is already there physically - the link is not like this:

<link:schemaRef xlink:href="../www.mycompany.com/xbrl/2024/mycompany_2024.xsd" xlink:type="simple"></link:schemaRef>

That would make more sense to me?!

Thanks in advance to anyone who can give me a solid answer for that :)


Solution

  • The official location of the taxonomy schemas (and linkbases) is their absolute URL, which makes them accessible online.

    However, it would not be efficient to always download the files over and over again. For this reason, the packages contain a mapping between the absolute URL of a file and the local copy of it in the package zip.

    You will find this mapping in META-INF/catalog.xml. That way, the XBRL processor can directly read the taxonomy files locally but knowing that they correspond to the online version.

    Concretely, an XBRL processor that implements the taxonomy package specification will read the schemaRef URL, convert it to a local path with the catalog.xml mapping, and then read the local version in the zip.

    And at the same time, a generic XML processor that wants to validate the instance file and that is not aware of the mapping mechanism will download the file online, ignoring the local schema file. It is less efficient, but does not break.