XBRL(eXtensible Business Reporting Language)은 재무제표와 같은 재무 정보를 정의하고 교환합니다. XBRL 인스턴스 문서는 비즈니스 보고서를 함께 구성하는 사실의 모음입니다. 프로그래밍 방식으로 XBRL 인스턴스 문서를 쉽게 만들고 스키마 참조, 컨텍스트, 단위, 항목 등과 같은 개체 또는 요소를 추가할 수 있습니다. 이 기사에서는 C#을 사용하여 XBRL 인스턴스 문서에 개체를 추가하는 방법을 배웁니다.
이 기사에서는 다음 주제를 다룹니다.
XBRL 인스턴스 문서에 개체를 추가하는 C# API
XBRL 인스턴스 문서를 생성하고 객체를 추가하기 위해 Aspose.Finance for .NET API를 사용합니다. XBRL 인스턴스 생성, 구문 분석 및 XBRL 또는 iXBRL 파일 유효성 검사를 허용합니다. API의 DLL을 다운로드하거나 NuGet을 사용하여 설치하십시오.
PM> Install-Package Aspose.Finance
C#을 사용하여 XBRL에 스키마 참조 추가
다음 단계에 따라 XBRL 인스턴스 문서에 스키마 참조를 추가할 수 있습니다.
- 먼저 XbrlDocument 클래스의 인스턴스를 만듭니다.
- 다음으로 XbrlDocument 개체의 인스턴스 컬렉션을 XbrlInstanceCollection 개체로 가져옵니다.
- 그런 다음 XbrlInstanceCollection.Add() 메서드를 사용하여 새 XBRL 인스턴스를 추가합니다.
- 다음으로 XbrlInstance 개체의 스키마 참조 컬렉션을 SchemaRefCollection 개체로 가져옵니다.
- 그런 다음 SchemaRefCollection.Add() 메서드를 사용하여 새 스키마 참조를 추가합니다.
- 마지막으로 XbrlDocument.Save() 메서드를 사용하여 XBRL 파일을 저장합니다. 출력 파일 경로를 인수로 사용합니다.
다음 코드 샘플은 C#을 사용하여 XBRL 인스턴스 문서에 스키마 참조를 추가하는 방법을 보여줍니다.
// 이 코드 예제는 XBRL에 SchemaReference 개체를 추가하는 방법을 보여줍니다.
// XbrlDocument 클래스의 인스턴스 만들기
XbrlDocument document = new XbrlDocument();
// XbrlInstances 가져오기
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;
// XbrlInstance 추가
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");
C#을 사용하여 XBRL에 컨텍스트 개체 추가
아래 단계에 따라 XBRL 인스턴스 문서에 컨텍스트를 추가할 수 있습니다.
- 먼저 XbrlDocument 클래스의 인스턴스를 만듭니다.
- 다음으로 XbrlDocument 개체의 인스턴스 컬렉션을 XbrlInstanceCollection 개체로 가져옵니다.
- 그런 다음 XbrlInstanceCollection.Add() 메서드를 사용하여 새 XBRL 인스턴스를 추가합니다.
- 다음으로 시작 날짜와 종료 날짜가 있는 ContextPeriod 클래스의 인스턴스를 만듭니다.
- 그런 다음 ContextEntity를 만들고 스키마와 식별자를 제공합니다.
- 다음으로 정의된 ContextPeriod 및 ContextEntity를 사용하여 Context 클래스의 인스턴스를 만듭니다.
- 그런 다음 Context objects 컬렉션에 Context 개체를 추가합니다.
- 마지막으로 XbrlDocument.Save() 메서드를 사용하여 XBRL 파일을 저장합니다. 출력 파일 경로를 인수로 사용합니다.
다음 코드 샘플은 C#을 사용하여 XBRL 인스턴스 문서에 컨텍스트 개체를 추가하는 방법을 보여줍니다.
// 이 코드 예제는 XBRL에 Context 개체를 추가하는 방법을 보여줍니다.
// XbrlDocument 클래스의 인스턴스 만들기
XbrlDocument document = new XbrlDocument();
// XbrlInstances 가져오기
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;
// XbrlInstance 추가
xbrlInstances.Add();
XbrlInstance xbrlInstance = xbrlInstances[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);
// 출력 파일 저장
document.Save(@"D:\Files\Finance\Output.xbrl");
C#을 사용하여 XBRL에서 단위 생성
XBRL의 단위는 숫자 항목을 측정합니다. 다음 단계에 따라 XBRL 인스턴스 문서에 단위를 추가할 수 있습니다.
- 먼저 XbrlDocument 클래스의 인스턴스를 만듭니다.
- 다음으로 XbrlDocument 개체의 인스턴스 컬렉션을 XbrlInstanceCollection 개체로 가져옵니다.
- 그런 다음 XbrlInstanceCollection.Add() 메서드를 사용하여 새 XBRL 인스턴스를 추가합니다.
- 다음으로 UnitType을 Measure로 사용하여 Unit 클래스의 인스턴스를 만듭니다.
- 그런 다음 MeasureQualifiedNames 컬렉션에 QualifiedName을 추가합니다.
- 그런 다음 Unit objects 컬렉션에 Unit을 추가합니다.
- 마지막으로 XbrlDocument.Save() 메서드를 사용하여 XBRL 파일을 저장합니다. 출력 파일 경로를 인수로 사용합니다.
다음 코드 샘플은 C#을 사용하여 XBRL 인스턴스 문서에 단위 개체를 추가하는 방법을 보여줍니다.
// 이 코드 예제는 XBRL에 Unit 개체를 추가하는 방법을 보여줍니다.
// XbrlDocument 클래스의 인스턴스 만들기
XbrlDocument document = new XbrlDocument();
// XbrlInstances 가져오기
XbrlInstanceCollection xbrlInstances = document.XbrlInstances;
// XbrlInstance 추가
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");
C#을 사용하여 XBRL에 사실 개체 추가
XBRL의 사실은 항목 요소를 사용하여 정의됩니다. XBRL의 항목에는 단순 사실의 값과 해당 사실을 올바르게 해석하기 위한 컨텍스트에 대한 참조가 포함됩니다. 다음 단계에 따라 XBRL 인스턴스 문서에 항목을 추가할 수 있습니다.
- 먼저 XbrlDocument 클래스의 인스턴스를 만듭니다.
- XbrlDocument 개체의 인스턴스에 새 XBRL 인스턴스를 추가합니다.
- XbrlInstance 개체의 스키마 참조에 새 스키마 참조를 추가합니다.
- SchemaRefCollection에서 해당 인덱스로 SchemaRef를 가져옵니다.
- Context 인스턴스를 초기화하고 Context objects 컬렉션에 추가합니다.
- Unit 인스턴스를 정의하고 Unit objects 컬렉션에 추가합니다.
- SchemaRef.GetConceptByName() 메서드를 사용하여 Concept 클래스 인스턴스를 만듭니다.
- Concept 개체를 인수로 사용하여 Item 클래스의 인스턴스를 만듭니다.
- ContextRef, UnitRef, Precision, Value 등과 같은 항목 속성을 설정합니다.
- 그런 다음 Fact objects 컬렉션에 Item을 추가합니다.
- 마지막으로 XbrlDocument.Save() 메서드를 사용하여 XBRL 파일을 저장합니다. 출력 파일 경로를 인수로 사용합니다.
다음 코드 샘플은 C#을 사용하여 XBRL 인스턴스 문서에서 항목 요소로 팩트를 추가하는 방법을 보여줍니다.
// 이 코드 예제는 XBRL에 Fact 항목 개체를 추가하는 방법을 보여줍니다.
// 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 = 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");
무료 라이선스 받기
평가 제한 없이 라이브러리를 사용해 보려면 무료 임시 라이센스를 얻으십시오.
결론
이 기사에서는 C#을 사용하여 XBRL 문서를 만드는 방법을 배웠습니다. 또한 프로그래밍 방식으로 생성된 XBRL 인스턴스 문서에 다양한 XBRL 개체를 추가하는 방법을 살펴보았습니다. 또한 문서를 사용하여 Aspose.Finance for .NET API에 대해 자세히 알아볼 수 있습니다. 모호한 부분이 있는 경우 포럼을 통해 언제든지 문의해 주십시오.