Добавление объектов в документы XBRL с помощью C#

XBRL (расширяемый язык бизнес-отчетности) определяет и обменивает финансовую информацию, такую как финансовый отчет. Образец документа XBRL представляет собой набор фактов, которые вместе составляют бизнес-отчет. Мы можем легко создать экземпляр документа XBRL программно и добавить объекты или элементы, такие как ссылка на схему, контекст, единица измерения, элементы и т. д. В этой статье мы узнаем, как добавлять объекты в экземпляр документа XBRL с помощью C#.

В этой статье должны быть раскрыты следующие темы:

C# API для добавления объектов в экземпляры документов XBRL

Для создания экземпляра документа XBRL и добавления объектов мы будем использовать API Aspose.Finance for .NET. Он позволяет создавать экземпляры XBRL, анализировать и проверять файлы XBRL или iXBRL. Пожалуйста, загрузите DLL API или установите его с помощью NuGet.

PM> Install-Package Aspose.Finance

Добавить ссылку на схему в XBRL с помощью C#

Мы можем добавить ссылку на схему в экземпляр документа XBRL, выполнив следующие шаги:

  1. Во-первых, создайте экземпляр класса XbrlDocument.
  2. Затем получите коллекцию экземпляров объекта XbrlDocument в объект XbrlInstanceCollection.
  3. Затем добавьте новый экземпляр XBRL, используя метод XbrlInstanceCollection.Add().
  4. Затем получите коллекцию ссылок на схему объекта XbrlInstance в объект SchemaRefCollection.
  5. После этого добавьте новую ссылку на схему, используя метод SchemaRefCollection.Add().
  6. Наконец, сохраните файл XBRL, используя метод XbrlDocument.Save(). Он принимает путь к выходному файлу в качестве аргумента.

В следующем примере кода показано, как добавить ссылку на схему в экземпляр документа XBRL с помощью C#.

// В этом примере кода показано, как добавить объект SchemaReference в XBRL.
// Создайте экземпляр класса XbrlDocument
XbrlDocument document = new XbrlDocument();

// Получить экземпляры Xbrl
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

// Добавить экземпляр Xbrl
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];

// Получить коллекцию ссылок схемы
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs;

// Добавить ссылку на схему
schemaRefs.Add(@"D:\Files\Finance\schema.xsd", "example", "http://example.com/xbrl/taxonomy");

// Сохраните выходной файл
document.Save(@"D:\Files\Finance\output.xbrl");

Добавить объект контекста в XBRL с помощью C#

Мы можем добавить контекст в документ экземпляра XBRL, выполнив шаги, указанные ниже:

  1. Во-первых, создайте экземпляр класса XbrlDocument.
  2. Затем получите коллекцию экземпляров объекта XbrlDocument в объект XbrlInstanceCollection.
  3. Затем добавьте новый экземпляр XBRL, используя метод XbrlInstanceCollection.Add().
  4. Затем создайте экземпляр класса ContextPeriod с датами начала и окончания.
  5. Затем создайте ContextEntity и укажите схему и идентификатор.
  6. Затем создайте экземпляр класса Context с определенными ContextPeriod и ContextEntity.
  7. После этого добавьте объект Context в коллекцию Объекты контекста.
  8. Наконец, сохраните файл XBRL, используя метод XbrlDocument.Save(). Он принимает путь к выходному файлу в качестве аргумента.

В следующем примере кода показано, как добавить объект контекста в экземпляр документа XBRL с помощью C#.

// В этом примере кода показано, как добавить объект Context в XBRL.
// Создайте экземпляр класса XbrlDocument
XbrlDocument document = new XbrlDocument();

// Получить экземпляры Xbrl
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

// Добавить экземпляр Xbrl
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];

// Определить период контекста
ContextPeriod contextPeriod = new ContextPeriod(DateTime.Parse("2020-01-01"), DateTime.Parse("2020-02-10"));

// Запись контекста Cretae
ContextEntity contextEntity = new ContextEntity("exampleIdentifierScheme", "exampleIdentifier");

// Создать контекст
Context context = new Context(contextPeriod, contextEntity);

// Добавить контекст
xbrlInstance.Contexts.Add(context);

// Сохраните выходной файл
document.Save(@"D:\Files\Finance\Output.xbrl");

Создание единиц в XBRL с использованием C#

Единицы в XBRL измеряют числовые статьи. Мы можем добавить единицу в экземпляр документа XBRL, выполнив шаги, указанные ниже:

  1. Во-первых, создайте экземпляр класса XbrlDocument.
  2. Затем получите коллекцию экземпляров объекта XbrlDocument в объект XbrlInstanceCollection.
  3. Затем добавьте новый экземпляр XBRL, используя метод XbrlInstanceCollection.Add().
  4. Затем создайте экземпляр класса Unit с UnitType в качестве меры.
  5. Затем добавьте QualifiedName в коллекцию MeasureQualifiedNames.
  6. После этого добавьте Объект в коллекцию Объекты объекта.
  7. Наконец, сохраните файл XBRL, используя метод XbrlDocument.Save(). Он принимает путь к выходному файлу в качестве аргумента.

В следующем примере кода показано, как добавить объект модуля в экземпляр документа XBRL с помощью C#.

// В этом примере кода показано, как добавить объект Unit в XBRL.
// Создайте экземпляр класса XbrlDocument
XbrlDocument document = new XbrlDocument();

// Получить экземпляры Xbrl
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;

// Добавить экземпляр Xbrl
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[0];

// Определить единицу измерения
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(@"D:\Files\Finance\Output.xbrl");

Добавить объект факта в XBRL с помощью C#

Факты в XBRL определяются с использованием элементов позиции. Элемент в XBRL содержит значение простого факта и ссылку на контекст для правильной интерпретации этого факта. Мы можем добавить элемент в экземпляр документа XBRL, выполнив шаги, указанные ниже:

  1. Во-первых, создайте экземпляр класса XbrlDocument.
  2. Добавьте новый экземпляр XBRL к экземплярам объекта XbrlDocument.
  3. Добавьте новую ссылку на схему к ссылкам на схему объекта XbrlInstance.
  4. Получить SchemaRef по его индексу из SchemaRefCollection.
  5. Инициализируйте экземпляр Context и добавьте его в коллекцию Context objects.
  6. Определите экземпляр Unit и добавьте его в коллекцию Объекты Unit.
  7. Создайте экземпляр класса Concept с помощью метода SchemaRef.GetConceptByName().
  8. Создайте экземпляр класса Item с объектом Concept в качестве аргумента.
  9. Установите свойства элемента, такие как ContextRef, UnitRef, Precision, Value и т. д.
  10. После этого добавьте Предмет в коллекцию Объекты фактов.
  11. Наконец, сохраните файл XBRL, используя метод XbrlDocument.Save(). Он принимает путь к выходному файлу в качестве аргумента.

В следующем примере кода показано, как добавить факт в качестве элемента элемента в экземпляр документа XBRL с помощью C#.

// В этом примере кода показано, как добавить объект элемента фактов в XBRL.
// Создать XbrlDocument
XbrlDocument document = new XbrlDocument();
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;
XbrlInstance xbrlInstance = xbrlInstances[xbrlInstances.Add()];

// Определить ссылку на схему
SchemaRefCollection schemaRefs = xbrlInstance.SchemaRefs;
schemaRefs.Add(@"D:\Files\Finance\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 item = new Item(fixedAssetsConcept);
    item.ContextRef = context;
    item.UnitRef = unit;
    item.Precision = 4;
    item.Value = "1444";
    
    // Добавить элемент элемента к фактам
    xbrlInstance.Facts.Add(item);
}

// Сохраните выходной файл
document.Save(@"D:\Files\Finance\Output.xbrl");

Получить бесплатную лицензию

Вы можете получить бесплатную временную лицензию, чтобы попробовать библиотеку без ограничений пробной версии.

Вывод

В этой статье мы узнали, как создать документ XBRL с помощью C#. Мы также увидели, как программно добавлять различные объекты XBRL в созданный экземпляр документа XBRL. Кроме того, вы можете узнать больше об Aspose.Finance for .NET API, используя документацию. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на форуме.

Смотрите также