# Class WorkflowParser OptimaJet.Workflow.Core.Parser.WorkflowParser Namespace: [OptimaJet.Workflow.Core.Parser](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Parser/) ```csharp public abstract class WorkflowParser : IWorkflowParser where TSchemeMedium : class ``` ## Type Hierarchy - WorkflowParser Current type - [XmlWorkflowParser](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Parser/XmlWorkflowParser/) - Implemented interfaces - [IWorkflowParser](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Parser/IWorkflowParser-TSchemeMedium/) ## Methods `public abstract List ParseTimers(TSchemeMedium schemeMedium)` Parses the [TimerDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TimerDefinition/) instances from an unparsed process scheme. ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed process scheme representation. | ### Returns | Type | Description | | --- | --- | | `List` | The parsed [TimerDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TimerDefinition/) instances. | `public abstract List ParseActors(TSchemeMedium schemeMedium)` Parses the [ActorDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActorDefinition/) instances from an unparsed process scheme. ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed process scheme representation. | ### Returns | Type | Description | | --- | --- | | `List` | The parsed [ActorDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActorDefinition/) instances. | `public abstract List ParseLocalization(TSchemeMedium schemeMedium)` Parses the [Translation](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/Translation/) entries from an unparsed process scheme. ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed process scheme representation. | ### Returns | Type | Description | | --- | --- | | `List` | The parsed [Translation](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/Translation/) entries. | `public abstract List ParseParameters(TSchemeMedium schemeMedium, SchemeParsingType schemeParsingType = SchemeParsingType.Strict)` Parses the [ParameterDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/) instances from an unparsed process scheme. ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed process scheme representation. | | `schemeParsingType` | `SchemeParsingType` | The [SchemeParsingType](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Builder/SchemeParsingType/) mode. [SchemeParsingType.Strict](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Builder/SchemeParsingType/) rejects unresolved parameter types, while [SchemeParsingType.Soft](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Builder/SchemeParsingType/) permits them when parsing an uploaded scheme for correction. | ### Returns | Type | Description | | --- | --- | | `List` | The parsed [ParameterDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/) instances. | `public abstract List ParseCommands(TSchemeMedium schemeMedium, List parameterDefinitions)` Parses the [CommandDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/CommandDefinition/) instances from an unparsed process scheme. ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed process scheme representation. | | `parameterDefinitions` | `List` | The parsed [ParameterDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ParameterDefinition/) instances used to resolve command input parameters. | ### Returns | Type | Description | | --- | --- | | `List` | The parsed [CommandDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/CommandDefinition/) instances. | `public abstract List ParseComments(TSchemeMedium schemeMedium)` Parses the [CommentDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/CommentDefinition/) instances placed on the process scheme canvas. ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed process scheme representation. | ### Returns | Type | Description | | --- | --- | | `List` | The parsed [CommentDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/CommentDefinition/) instances. | `public abstract string GetCalendarName(TSchemeMedium schemeMedium)` Reads the scheme-level work calendar name stored in [ProcessDefinition.CalendarName](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessDefinition/). ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed process scheme representation. | ### Returns | Type | Description | | --- | --- | | `String` | The scheme-level work calendar name. | `public abstract List ParseActivities(TSchemeMedium schemeMedium)` Parses the [ActivityDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActivityDefinition/) instances from an unparsed process scheme. ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed process scheme representation. | ### Returns | Type | Description | | --- | --- | | `List` | The parsed [ActivityDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActivityDefinition/) instances. | `public abstract List ParseCodeActions(TSchemeMedium schemeMedium)` Parses the [CodeActionDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/CodeActionDefinition/) instances from an unparsed process scheme. ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed process scheme representation. | ### Returns | Type | Description | | --- | --- | | `List` | The parsed [CodeActionDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/CodeActionDefinition/) instances. | `public abstract List ParseTransitions(TSchemeMedium schemeMedium, List actorDefinitions, List commandDefinitions, List activityDefinitions, List timerDefinitions)` Parses the [TransitionDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) instances from an unparsed process scheme. ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed process scheme representation. | | `actorDefinitions` | `List` | The parsed [ActorDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActorDefinition/) instances used to resolve transition restrictions. | | `commandDefinitions` | `List` | The parsed [CommandDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/CommandDefinition/) instances used to resolve command triggers. | | `activityDefinitions` | `List` | The parsed [ActivityDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActivityDefinition/) instances used to resolve transition endpoints. | | `timerDefinitions` | `List` | The parsed [TimerDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TimerDefinition/) instances used to resolve timer triggers. | ### Returns | Type | Description | | --- | --- | | `List` | The parsed [TransitionDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) instances. | `public abstract string GetSchemeCode(TSchemeMedium schemeMedium)` Reads the process scheme code from an unparsed process scheme. ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed process scheme representation. | ### Returns | Type | Description | | --- | --- | | `String` | The process scheme code. | `public abstract bool GetCanBeInlined(TSchemeMedium schemeMedium)` Reads the value for [ProcessDefinition.CanBeInlined](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessDefinition/) from an unparsed process scheme. ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed process scheme representation. | ### Returns | Type | Description | | --- | --- | | `Boolean` | [true](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool) if the process scheme can be inlined into another process scheme; otherwise, [false](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool). | `public abstract bool GetLogEnabled(TSchemeMedium schemeMedium)` Reads the value for [ProcessDefinition.LogEnabled](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessDefinition/) from an unparsed process scheme. ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed process scheme representation. | ### Returns | Type | Description | | --- | --- | | `Boolean` | [true](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool) if logging is enabled by default for [ProcessInstance](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessInstance/) instances created from the scheme; otherwise, [false](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool). | `public abstract List GetSchemeTags(TSchemeMedium schemeMedium)` Reads the tags stored in [ProcessDefinition.Tags](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessDefinition/) from an unparsed process scheme. ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed process scheme representation. | ### Returns | Type | Description | | --- | --- | | `List` | The tags associated with the process scheme. | `public abstract string GetCommonUsings(TSchemeMedium schemeMedium)` Reads the namespace imports stored in [ProcessDefinition.CodeActionsCommonUsings](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessDefinition/) from an unparsed process scheme. ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed process scheme representation. | ### Returns | Type | Description | | --- | --- | | `String` | The semicolon-delimited namespace imports shared when [CodeActionDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/CodeActionDefinition/) instances are compiled. | `public abstract DesignerSettings GetDesignerSettings(TSchemeMedium schemeMedium)` Parses the [DesignerSettings](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/DesignerSettings/) from an unparsed representation. ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed representation containing the settings. | ### Returns | Type | Description | | --- | --- | | `DesignerSettings` | The parsed [DesignerSettings](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/DesignerSettings/). | `public abstract ActivityTimeout GetExecutionTimeout(TSchemeMedium schemeMedium)` Parses the [ActivityDefinition.ExecutionTimeout](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActivityDefinition/) configuration for an activity. ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed activity representation. | ### Returns | Type | Description | | --- | --- | | `ActivityTimeout` | The parsed [ActivityTimeout](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActivityTimeout/) configuration. | `public abstract ActivityTimeout GetIdleTimeout(TSchemeMedium schemeMedium)` Parses the [ActivityDefinition.IdleTimeout](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActivityDefinition/) configuration for an activity. ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed activity representation. | ### Returns | Type | Description | | --- | --- | | `ActivityTimeout` | The parsed [ActivityTimeout](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActivityTimeout/) configuration. | `public abstract List GetExceptionsHandlers(TSchemeMedium schemeMedium)` Parses the handlers stored in [ActivityDefinition.ExceptionsHandlers](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActivityDefinition/) for an activity. ### Parameters | Name | Type | Description | | --- | --- | --- | | `schemeMedium` | `{TSchemeMedium}` | The unparsed activity representation. | ### Returns | Type | Description | | --- | --- | | `List` | The parsed [ActivityExceptionsHandler](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActivityExceptionsHandler/) instances. | `public abstract ProcessDefinition Parse(WorkflowRuntime workflowRuntime, string scheme, SchemeParsingType schemeParsingType = SchemeParsingType.Strict)` Parses scheme text into a [ProcessDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessDefinition/). ### Parameters | Name | Type | Description | | --- | --- | --- | | `workflowRuntime` | `WorkflowRuntime` | The [WorkflowRuntime](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime/WorkflowRuntime/) whose configuration is available during parsing. | | `scheme` | `String` | The scheme text to parse. | | `schemeParsingType` | `SchemeParsingType` | The parsing mode. Use [SchemeParsingType.Soft](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Builder/SchemeParsingType/) only for an uploaded scheme that may contain an unresolved parameter CLR type. | ### Returns | Type | Description | | --- | --- | | `ProcessDefinition` | The parsed [ProcessDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessDefinition/). | `public abstract TSchemeMedium SerializeToSchemeMedium(ProcessDefinition processDefinition)` Serializes a [ProcessDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessDefinition/) to the unparsed scheme representation. ### Parameters | Name | Type | Description | | --- | --- | --- | | `processDefinition` | `ProcessDefinition` | The [ProcessDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessDefinition/) to serialize. | ### Returns | Type | Description | | --- | --- | | `{TSchemeMedium}` | The serialized scheme represented by `TSchemeMedium`. | `public virtual string SerializeToString(ProcessDefinition processDefinition)` Serializes a [ProcessDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessDefinition/) to scheme text. ### Parameters | Name | Type | Description | | --- | --- | --- | | `processDefinition` | `ProcessDefinition` | The [ProcessDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessDefinition/) to serialize. | ### Returns | Type | Description | | --- | --- | | `String` | The serialized scheme text. | ### Remarks The default implementation calls `ToString()` on the value returned by [WorkflowParser.SerializeToSchemeMedium(ProcessDefinition)](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Parser/WorkflowParser-TSchemeMedium/). `public ProcessDefinition Parse(WorkflowRuntime workflowRuntime, TSchemeMedium schemeMedium, SchemeParsingType schemeParsingType = SchemeParsingType.Strict)` Parses an unparsed scheme representation into a [ProcessDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessDefinition/). ### Parameters | Name | Type | Description | | --- | --- | --- | | `workflowRuntime` | `WorkflowRuntime` | The [WorkflowRuntime](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Runtime/WorkflowRuntime/) whose configuration is available during parsing. | | `schemeMedium` | `{TSchemeMedium}` | The unparsed scheme representation. | | `schemeParsingType` | `SchemeParsingType` | The parsing mode. Use [SchemeParsingType.Soft](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Builder/SchemeParsingType/) only for an uploaded scheme that may contain an unresolved parameter CLR type. | ### Returns | Type | Description | | --- | --- | | `ProcessDefinition` | The parsed [ProcessDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessDefinition/). | ### Remarks This implementation parses the individual scheme components, adds the runtime's predefined actors to the actors declared in the scheme, and assembles the resulting [ProcessDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessDefinition/). [Previous IWorkflowParser](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Parser/IWorkflowParser-TSchemeMedium/) [Next XmlWorkflowParser](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Parser/XmlWorkflowParser/)