A TypeScript library for parsing CDISC Define-XML 2.0 and 2.1 files, with support for ARM (Analysis Results Metadata) extensions.
importparseDefineXmlfrom"parse-define-xml";The main function is parseDefineXml. It supports both Define-XML 2.0 and 2.1, and can optionally parse ARM extensions.
parseDefineXml(xmlString: string,defineVer: "2.0",hasArm?: false): Promise<Define20.DefineXml>parseDefineXml(xmlString: string,defineVer: "2.1",hasArm?: false): Promise<Define21.DefineXml>parseDefineXml(xmlString: string,defineVer: "2.0",hasArm?: true): Promise<ArmDefine20.DefineXml>parseDefineXml(xmlString: string,defineVer: "2.1",hasArm?: true): Promise<ArmDefine21.DefineXml>xmlString: The XML content as a string.defineVer: The Define-XML version ("2.0" or "2.1").hasArm: Set totrueto parse ARM extensions (optional, default isfalse).
importparseDefineXmlfrom"parse-define-xml";import{Define21}from"parse-define-xml";constxmlString="...";// Load your Define-XML file as a stringconstdefine=awaitparseDefineXml(xmlString,"2.1");// define is typed as Define21.DefineXmlThe package exports four main interface namespaces for type safety:
- Define20: Types for standard Define-XML 2.0 files (no ARM).
- Define21: Types for standard Define-XML 2.1 files (no ARM).
- ArmDefine20: Types for Define-XML 2.0 files with ARM extensions.
- ArmDefine21: Types for Define-XML 2.1 files with ARM extensions.
Each namespace contains a DefineXml interface representing the root structure of the parsed file, as well as all related types for items, groups, code lists, etc.
importparseDefineXml,{Define21,ArmDefine21}from"parse-define-xml";// Parse standard Define-XML 2.1constdefine: Define21.DefineXml=awaitparseDefineXml(xmlString,"2.1");// Parse Define-XML 2.1 with ARMconstdefineArm: ArmDefine21.DefineXml=awaitparseDefineXml(xmlString,"2.1",true);MIT