UNPKG

isoxml

Version:

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

113 lines (112 loc) 4.21 kB
import { TAGS } from './constants'; import { registerEntityClass } from '../classRegistry'; import { fromXML, toXML } from '../utils'; export var ISO11783TaskDataFileVersionMajorEnum; (function (ISO11783TaskDataFileVersionMajorEnum) { ISO11783TaskDataFileVersionMajorEnum["TheVersionOfTheSecondEditionPublishedAsAFinalDraftInternationalStandard"] = "4"; })(ISO11783TaskDataFileVersionMajorEnum || (ISO11783TaskDataFileVersionMajorEnum = {})); export var ISO11783TaskDataFileVersionMinorEnum; (function (ISO11783TaskDataFileVersionMinorEnum) { ISO11783TaskDataFileVersionMinorEnum["Value0"] = "0"; ISO11783TaskDataFileVersionMinorEnum["Value1"] = "1"; ISO11783TaskDataFileVersionMinorEnum["Value2"] = "2"; ISO11783TaskDataFileVersionMinorEnum["Value3"] = "3"; })(ISO11783TaskDataFileVersionMinorEnum || (ISO11783TaskDataFileVersionMinorEnum = {})); export var ISO11783TaskDataFileDataTransferOriginEnum; (function (ISO11783TaskDataFileDataTransferOriginEnum) { ISO11783TaskDataFileDataTransferOriginEnum["FMIS"] = "1"; ISO11783TaskDataFileDataTransferOriginEnum["MICS"] = "2"; })(ISO11783TaskDataFileDataTransferOriginEnum || (ISO11783TaskDataFileDataTransferOriginEnum = {})); const ATTRIBUTES = { VersionMajor: { name: 'VersionMajor', type: 'xs:NMTOKEN', isPrimaryId: false, isOptional: false, isOnlyV4: false, }, VersionMinor: { name: 'VersionMinor', type: 'xs:NMTOKEN', isPrimaryId: false, isOptional: false, isOnlyV4: false, }, ManagementSoftwareManufacturer: { name: 'ManagementSoftwareManufacturer', type: 'xs:string', isPrimaryId: false, isOptional: false, isOnlyV4: false, }, ManagementSoftwareVersion: { name: 'ManagementSoftwareVersion', type: 'xs:string', isPrimaryId: false, isOptional: false, isOnlyV4: false, }, TaskControllerManufacturer: { name: 'TaskControllerManufacturer', type: 'xs:string', isPrimaryId: false, isOptional: true, isOnlyV4: false, }, TaskControllerVersion: { name: 'TaskControllerVersion', type: 'xs:string', isPrimaryId: false, isOptional: true, isOnlyV4: false, }, DataTransferOrigin: { name: 'DataTransferOrigin', type: 'xs:NMTOKEN', isPrimaryId: false, isOptional: false, isOnlyV4: false, }, lang: { name: 'lang', type: 'xs:language', isPrimaryId: false, isOptional: true, isOnlyV4: true, }, }; const CHILD_TAGS = { AFE: { name: 'AttachedFile', isOnlyV4: true }, BSN: { name: 'BaseStation', isOnlyV4: true }, CCT: { name: 'CodedComment', isOnlyV4: false }, CCG: { name: 'CodedCommentGroup', isOnlyV4: false }, CLD: { name: 'ColourLegend', isOnlyV4: false }, CTP: { name: 'CropType', isOnlyV4: false }, CPC: { name: 'CulturalPractice', isOnlyV4: false }, CTR: { name: 'Customer', isOnlyV4: false }, DVC: { name: 'Device', isOnlyV4: false }, FRM: { name: 'Farm', isOnlyV4: false }, OTQ: { name: 'OperationTechnique', isOnlyV4: false }, PFD: { name: 'Partfield', isOnlyV4: false }, PDT: { name: 'Product', isOnlyV4: false }, PGP: { name: 'ProductGroup', isOnlyV4: false }, TSK: { name: 'Task', isOnlyV4: false }, TCC: { name: 'TaskControllerCapabilities', isOnlyV4: true }, VPN: { name: 'ValuePresentation', isOnlyV4: false }, WKR: { name: 'Worker', isOnlyV4: false }, XFR: { name: 'ExternalFileReference', isOnlyV4: false }, }; export class ISO11783TaskDataFile { constructor(attributes, isoxmlManager) { this.attributes = attributes; this.isoxmlManager = isoxmlManager; this.tag = TAGS.ISO11783TaskDataFile; } static fromXML(xml, isoxmlManager, internalId, targetClass = ISO11783TaskDataFile) { return fromXML(xml, isoxmlManager, targetClass, ATTRIBUTES, CHILD_TAGS, internalId); } toXML() { return toXML(this, ATTRIBUTES, CHILD_TAGS); } } registerEntityClass('main', TAGS.ISO11783TaskDataFile, ISO11783TaskDataFile);