UNPKG

isoxml

Version:

JavaScript library to parse and generate ISOXML (ISO11783-10) files

65 lines (64 loc) 1.92 kB
import { TAGS } from './constants'; import { registerEntityClass } from '../classRegistry'; import { fromXML, toXML } from '../utils'; export var LinkGroupLinkGroupTypeEnum; (function (LinkGroupLinkGroupTypeEnum) { LinkGroupLinkGroupTypeEnum["UUIDs"] = "1"; LinkGroupLinkGroupTypeEnum["ManufacturerProprietary"] = "2"; LinkGroupLinkGroupTypeEnum["UniqueResolvableURIs"] = "3"; LinkGroupLinkGroupTypeEnum["InformationalResolvableURIs"] = "4"; })(LinkGroupLinkGroupTypeEnum || (LinkGroupLinkGroupTypeEnum = {})); const ATTRIBUTES = { A: { name: 'LinkGroupId', type: 'xs:ID', isPrimaryId: true, isOptional: false, isOnlyV4: undefined, }, B: { name: 'LinkGroupType', type: 'xs:NMTOKEN', isPrimaryId: false, isOptional: false, isOnlyV4: undefined, }, C: { name: 'ManufacturerGLN', type: 'xs:anyURI', isPrimaryId: false, isOptional: true, isOnlyV4: undefined, }, D: { name: 'LinkGroupNamespace', type: 'xs:token', isPrimaryId: false, isOptional: true, isOnlyV4: undefined, }, E: { name: 'LinkGroupDesignator', type: 'xs:string', isPrimaryId: false, isOptional: true, isOnlyV4: undefined, }, }; const CHILD_TAGS = { LNK: { name: 'Link', isOnlyV4: undefined }, }; export class LinkGroup { constructor(attributes, isoxmlManager) { this.attributes = attributes; this.isoxmlManager = isoxmlManager; this.tag = TAGS.LinkGroup; } static fromXML(xml, isoxmlManager, internalId, targetClass = LinkGroup) { return fromXML(xml, isoxmlManager, targetClass, ATTRIBUTES, CHILD_TAGS, internalId); } toXML() { return toXML(this, ATTRIBUTES, CHILD_TAGS); } } registerEntityClass('main', TAGS.LinkGroup, LinkGroup);