1 / 24

Ignacio Hernández-Ros Technology development XBRL International

Using XQuery to process XBRL. Ignacio Hernández-Ros Technology development XBRL International. Using XQuery to process XBRL. What’s XQuery? What’s the relationship between XBRL and XQuery? Using the XBRL functions library. 8’ 10’ 8’. What’s XQuery. 1. XQuery is a W3C standard

beck-weiss
Download Presentation

Ignacio Hernández-Ros Technology development XBRL International

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Using XQuery to process XBRL Ignacio Hernández-Ros Technology development XBRL International

  2. Using XQuery to process XBRL • What’s XQuery? • What’s the relationship between XBRL and XQuery? • Using the XBRL functions library 8’ 10’ 8’

  3. What’s XQuery 1 • XQuery is a W3C standard • http://www.w3.org/TR/xquery/ • The status is Candidate Release 3 Nov. 2005 • XQuery is an extension of XPath 2.0 • Defines semantics about processing XML information • Is not related to any database or storage system

  4. What’s XQuery 1 • But … the most important thing is how XQuery gives you productivity • Notes: • XQuery is not so powerful as the other programming languages. • XQuery execution performance is comparable with scripts over compiled programming languages. • XQuery development requires deep XML knowledge and related technologies like XPath 2.0 Development effort C/C++ Java/.net XQuery

  5. What’s XQuery 1 • Comparing XQuery with XPath 2.0 • Both have more things in common than differences. • A way to do the research is to look at the differences in the processing model of both languages.

  6. What is XQuery 1 • XQuery over XPath 2.0 Find the 3 differences XPath 2.0 XQuery

  7. What is XQuery 1 • 3 – XQuery query prolog supports parameterization of the execution engine XPath 2.0 XQuery

  8. What is XQuery 1 • 1 – XQuery supports modules and modules contains functions • Functions encapsulate the XQuery complexity from the business side • Modules may be stored in web servers XPath 2.0 XQuery

  9. What is XQuery 1 • 2 – XQuery supports XML Schema type checking and validation XPath 2.0 XQuery

  10. What is XQuery 1 • So, XQuery supports: • modules and • strong XML schema validation. • Plus a uniform platform to access/execute the code. • These two characteristics make XQuery a powerful language to process XML/XBRL infosets.

  11. What’s the relationship between XBRL and XQuery? 2 • Is there any relationship? • NOT YET • If there were relationships, what might they be? • The Formula linkbase already uses XPath 2.0 • XPath 2.0 can use functions defined in XQuery modules • A linkbase may declare the XQuery modules where the required functions are defined

  12. What’s the relationship between XBRL and XQuery? 2 Labels lb XBRL Taxonomy Reference lb Presentation lb Calculation lb Definition lb

  13. What’s the relationship between XBRL and XQuery? 2 Labels lb XBRL Taxonomy Reference lb Presentation lb Calculation lb Definition lb Formula lb

  14. What’s the relationship between XBRL and XQuery? 2 Labels lb XBRL Taxonomy Reference lb Presentation lb Calculation lb Definition lb Functions module Functions module Functions modules Formula lb

  15. What’s the relationship between XBRL and XQuery? 2 Functions module Functions module Functions modules Formula lb • Should contain: • Locators to taxonomy concepts • Resources of multiple types • References to modules • Constants definitions • Variable definitions • Business side of the formula • Arcs • Linking all together • Should contain: • Other modules • Other XML Schemas • IT side of the formula • This is, the real formula implementation for any XBRL element regardless of the taxonomy in use

  16. What’s the relationship between XBRL and XQuery? 2 Functions module Functions module Functions modules Formula lb Example(*): Example(*): <formulaLinkxlink:type="extended"xlink:role="http://www.xbrl.org/2003/role/link"> <modulexlink:type="resource"namespace="http://xbrl.org/2006/functions"uri="http://www.xbrl.org/2006/functions/xf-2006.xq"prefix="xfi"/> <link:locVariablexlink:type="locator"xlink:label="item1"xlink:href="TaxonomySchema.xsd#Cash"name="Cash"/> <link:locVariablexlink:type="locator"xlink:label="item2" xlink:href="TaxonomySchema.xsd#IncreaseDecreaseInCash"name="ChangesInCash"/> <formulaxlink:type="resource"xlink:label="movementAnalisys"select="xfi:CheckMovement($Cash,$ChangesInCash,P3M)"/> </formulaLink> xquery version “1.0”; module namespace xfi = “http://xbrl.org/2006/functions”; import schema namespace xl = "http://www.xbrl.org/2003/XLink"at"http://www.xbrl.org/2003/xl-2003-12-31.xsd"; declare function xfi:CheckMovement($instantVar as schema-element(xbrli:item),$durationVar as schema-element(xbrli:item), $period as xdt:yearMonthDuration) as boolean { if (…) then true() else false() }; (*) Examples do not represent the syntax of the XII formula linkbase (under development)

  17. What’s the relationship between XBRL and XQuery? 2 Functions module Functions module Functions modules Formula lb Example(*): Example(*): <formulaLinkxlink:type="extended"xlink:role="http://www.xbrl.org/2003/role/link"> <modulexlink:type="resource"namespace="http://xbrl.org/2006/functions"uri="http://www.xbrl.org/2006/functions/xf-2006.xq"prefix="xfi"/> <link:locVariablexlink:type="locator"xlink:label="item1"xlink:href="TaxonomySchema.xsd#Cash"name="Cash"/> <link:locVariablexlink:type="locator"xlink:label="item2" xlink:href="TaxonomySchema.xsd#IncreaseDecreaseInCash"name="ChangesInCash"/> <formulaxlink:type="resource"xlink:label="movementAnalisys"select="xfi:CheckMovement($Cash,$ChangesInCash,P3M)"/> </formulaLink> xquery version “1.0”; module namespace xfi = “http://xbrl.org/2006/functions”; import schema namespace xl = "http://www.xbrl.org/2003/XLink"at"http://www.xbrl.org/2003/xl-2003-12-31.xsd"; declare function xfi:CheckMovement($instantVar as schema-element(xbrli:item),$durationVar as schema-element(xbrli:item), $period as xdt:yearMonthDuration) as boolean { if (…) then true() else false() }; Formula processors would be free to use the XQuery version of the function or a local (faster) version (*) Examples do not represent the syntax of the XII formula linkbase (under development)

  18. What’s the relationship between XBRL and XQuery? 2 • Tools will hide the complexity of the formula linkbase in the business side. • Functions should be developed by people that: • Understand XBRL • Understand XQuery • Some might be written by the XII Spec WG • Functions are reusable material between taxonomies

  19. Using the XBRL functions library 3 • During the development of the formula/functions XBRL specification, a set of functions to work with XBRL has been defined (IWD of the spec WG) • Those functions will be part of the final XBRL functions specification • All of those functions are now implemented in an XQuery module (xfi) “xf-2006.xq” as a “Proof of Concept”

  20. Using the XBRL functions library 3 • That XQuery module can be used to • Learn XQuery and how XQuery can process XBRL • Develop higher level functions • For testing instance document content • For transforming instance documents • For providing feedback to the Spec WG • …

  21. Using the XBRL functions library 3 • Yes but how can I do that? • You need: • An XQuery processor (e.g., Altova XML Spy, Saxon, …) • A sample instance document • XQuery code written by you XQuery processor XBRL Instance Output XML Your XQuery XII XQuery Module

  22. Using the XBRL functions library 3 • Function blocks: • Accessor functions: provide access to content in the instance document. Contexts, units, periods, segments, entities, facts, tuples etc. • Constructor functions: allow dynamic creation of instance documents • Taxonomy functions: allow navigation throw the taxonomy and linkbases • Utility functions: files in the DTS etc…

  23. Using the XBRL functions library 3 • They are ‘low level’ functions • Required to start building ‘high level’ functions • Running the example …

  24. Thank you!

More Related