In my prior blog post I talked about how XBRL can be used to prohibit relations. So I created an example of this and show how it would be used. I will walk you through how I did this.
So here is the use case. OK, there are some set of business rules which have been defined, organized, and generated in the XBRL format such as these which I used in that prior blog post. But those rules are somewhat LAX, you want a more STRICT set of rules. Say you want to do the following:
- You don't want to allow the concept us-gaap:LiabilitiesAndPartnersCapital because it has been deprecated
- You dont want to allow the concept us-gaap:CommonStockholdersEquity because it has also been deprecated.
- You don't want your company to use the concepts us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosure, us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPolicies, us-gaap:OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesDisclosure because you would prefer your organization to break each disclosure into the individual pieces, rather than pack several disclosures together.
Here is how you prohibit those relations which disallow those options:
- You create an empty XBRL taxonomy schema. Here is an example. That is just a schema which references the XBRL schema.
- You import the set of business rules you are using. That is the business rules from the previous example in this case.
- You save the schema then open it in your XBRL taxonomy editor and create new relations which prohibit the existing relations.
- You resave the schema and your XBRL taxonomy editor will automatically save the definition relations you articulated and link it to your taxonomy schema. (Again, this is the end result which is the same as above: XBRL Taxonomy Schema, XBRL Definition Relations)
Visually, what you created looks something like what my XBRL taxonomy editor shows in the graphic below:
If you look at the XBRL definition relations, you will notice that you did not really delete anything. You cannot do that because you don't "own" the business rules. You cannot edit those. What you do is create new relations which prohibit the existing relations. You can see this if you look at the XBRL Definition relations, notice the use='prohibited' attribute on the definitionArc element.
That is all there is to it.