Create XBRL file in C#
Create XBRL Instance in C#
Aspose.Finance supports creating XBRL documents. For this, the API provides the XbrlDocument class. The default constructor of the XbrlDocument class can be used to create a new XBRL instance document.
The following code snippet demonstrates creating a new XBRL instance document.
XbrlDocument document = new XbrlDocument(); | |
XbrlInstanceCollection xbrlInstances = document.XbrlInstances; | |
XbrlInstance xbrlInstance = xbrlInstances[xbrlInstances.Add()]; | |
document.Save(XbrlFilePath + @"output\document1.xbrl"); |
Add schema reference
Aspose.Finance allows you to add schema reference in newly created XBRL instance. For this, the API provides the SchemaRefCollection class.
The following code snippet demonstrates adding schema reference to a newly created XBRL instance.
XbrlDocument document = new XbrlDocument(); | |
XbrlInstanceCollection xbrlInstances = document.XbrlInstances; | |
XbrlInstance xbrlInstance = xbrlInstances[xbrlInstances.Add()]; | |
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs; | |
schemaRefs.Add(XbrlFilePath + @"schema.xsd", "example", "http://example.com/xbrl/taxonomy"); | |
document.Save(XbrlFilePath + @"output\document2.xbrl"); |
Add context
Aspose.Finance allows you to add context in the newly created XBRL instance. For this, the API provides the Context class.
The following code snippet demonstrates adding context in a newly created XBRL instance.
XbrlDocument document = new XbrlDocument(); | |
XbrlInstanceCollection xbrlInstances = document.XbrlInstances; | |
XbrlInstance xbrlInstance = xbrlInstances[xbrlInstances.Add()]; | |
ContextPeriod contextPeriod = new ContextPeriod(DateTime.Parse("2020-01-01"), DateTime.Parse("2020-02-10")); | |
ContextEntity contextEntity = new ContextEntity("exampleIdentifierScheme", "exampleIdentifier"); | |
Context context = new Context(contextPeriod, contextEntity); | |
xbrlInstance.Contexts.Add(context); | |
document.Save(XbrlFilePath + @"output\document3.xbrl"); |
Add unit
Aspose.Finance allows you to add context in the newly created XBRL instance. For this, the API provides the Unit class.
The following code snippet demonstrates how to add a unit in a newly created XBRL instance.
XbrlDocument document = new XbrlDocument(); | |
XbrlInstanceCollection xbrlInstances = document.XbrlInstances; | |
XbrlInstance xbrlInstance = xbrlInstances[xbrlInstances.Add()]; | |
Unit unit = new Unit(UnitType.Measure); | |
unit.MeasureQualifiedNames.Add(new QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217")); | |
xbrlInstance.Units.Add(unit); | |
document.Save(XbrlFilePath + @"output\document4.xbrl"); |
Add item
Aspose.Finance allows you to add items in the newly created XBRL instance. For this, the API provides the Item class.
The following code snippet demonstrates how to add an item in a newly created XBRL instance.
XbrlDocument document = new XbrlDocument(); | |
XbrlInstanceCollection xbrlInstances = document.XbrlInstances; | |
XbrlInstance xbrlInstance = xbrlInstances[xbrlInstances.Add()]; | |
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs; | |
schemaRefs.Add(XbrlFilePath + @"schema.xsd", "example", "http://example.com/xbrl/taxonomy"); | |
SchemaRef schema = schemaRefs[0]; | |
ContextPeriod contextPeriod = new ContextPeriod(DateTime.Parse("2020-01-01"), DateTime.Parse("2020-02-10")); | |
ContextEntity contextEntity = new ContextEntity("exampleIdentifierScheme", "exampleIdentifier"); | |
Context context = new Context(contextPeriod, contextEntity); | |
xbrlInstance.Contexts.Add(context); | |
Unit unit = new Unit(UnitType.Measure); | |
unit.MeasureQualifiedNames.Add(new QualifiedName("USD", "iso4217", "http://www.xbrl.org/2003/iso4217")); | |
xbrlInstance.Units.Add(unit); | |
Concept fixedAssetsConcept = schema.GetConceptByName("fixedAssets"); | |
if (fixedAssetsConcept != null) | |
{ | |
Item item = new Item(fixedAssetsConcept); | |
item.ContextRef = context; | |
item.UnitRef = unit; | |
item.Precision = 4; | |
item.Value = "1444"; | |
xbrlInstance.Facts.Add(item); | |
} | |
document.Save(XbrlFilePath + @"output\document5.xbrl"); |
Add footnote link
Aspose.Finance allows you to add a footnote link in the newly created XBRL instance. For this, the API provides the FootnoteLink class.
The following code snippet demonstrates how to add a footnote link in a newly created XBRL instance.
XbrlDocument document = new XbrlDocument(); | |
XbrlInstanceCollection xbrlInstances = document.XbrlInstances; | |
XbrlInstance xbrlInstance = xbrlInstances[xbrlInstances.Add()]; | |
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs; | |
schemaRefs.Add(XbrlFilePath + @"schema.xsd", "example", "http://example.com/xbrl/taxonomy"); | |
SchemaRef schema = schemaRefs[0]; | |
ContextPeriod contextPeriod = new ContextPeriod(DateTime.Parse("2020-01-01"), DateTime.Parse("2020-02-10")); | |
ContextEntity contextEntity = new ContextEntity("exampleIdentifierScheme", "exampleIdentifier"); | |
Context context = new Context(contextPeriod, contextEntity); | |
context.Id = "cd1"; | |
xbrlInstance.Contexts.Add(context); | |
FootnoteLink footnoteLink = new FootnoteLink(); | |
Footnote footnote = new Footnote("footnote1"); | |
footnote.Text = "Including the effects of the merger."; | |
Loc loc = new Loc("#cd1", "fact1"); | |
FootnoteArc footnoteArc = new FootnoteArc(loc.Label, footnote.Label); | |
footnoteLink.Footnotes.Add(footnote); | |
footnoteLink.Locators.Add(loc); | |
footnoteLink.FootnoteArcs.Add(footnoteArc); | |
xbrlInstance.FootnoteLinks.Add(footnoteLink); | |
document.Save(XbrlFilePath + @"output\document6.xbrl"); |
Add role reference
Aspose.Finance allows you to add a role reference in the newly created XBRL instance. For this, the API provides the RoleReference class.
The following code snippet demonstrates how to add a role reference in a newly created XBRL instance.
XbrlDocument document = new XbrlDocument(); | |
XbrlInstanceCollection xbrlInstances = document.XbrlInstances; | |
XbrlInstance xbrlInstance = xbrlInstances[xbrlInstances.Add()]; | |
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs; | |
schemaRefs.Add(XbrlFilePath + @"schema.xsd", "example", "http://example.com/xbrl/taxonomy"); | |
SchemaRef schema = schemaRefs[0]; | |
RoleType roleType = schema.GetRoleTypeByURI("http://abc.com/role/link1"); | |
if (roleType != null) | |
{ | |
RoleReference roleReference = new RoleReference(roleType); | |
xbrlInstance.RoleReferences.Add(roleReference); | |
} | |
document.Save(XbrlFilePath + @"output\document7.xbrl"); |
Add arc role reference
Aspose.Finance allows you to add an arc role reference in the newly created XBRL instance. For this, the API provides the ArcroleReference class.
The following code snippet demonstrates how to add an arc role reference in a newly created XBRL instance.
XbrlDocument document = new XbrlDocument(); | |
XbrlInstanceCollection xbrlInstances = document.XbrlInstances; | |
XbrlInstance xbrlInstance = xbrlInstances[xbrlInstances.Add()]; | |
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs; | |
schemaRefs.Add(XbrlFilePath + @"schema.xsd", "example", "http://example.com/xbrl/taxonomy"); | |
SchemaRef schema = schemaRefs[0]; | |
ArcroleType arcroleType = schema.GetArcroleTypeByURI("http://abc.com/arcrole/footnote-test"); | |
if (arcroleType != null) | |
{ | |
ArcroleReference arcroleReference = new ArcroleReference(arcroleType); | |
xbrlInstance.ArcroleReferences.Add(arcroleReference); | |
} | |
document.Save(XbrlFilePath + @"output\document8.xbrl"); |