# Interface IWorkflowParser OptimaJet.Workflow.Core.Parser.IWorkflowParser Defines conversions between an unparsed scheme representation and the [ProcessDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ProcessDefinition/) object model. Namespace: [OptimaJet.Workflow.Core.Parser](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Parser/) ```csharp public interface IWorkflowParser where TSchemeMedium : class ``` ## Type Hierarchy - IWorkflowParser Current type - Implementing types - [WorkflowParser](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Parser/WorkflowParser-TSchemeMedium/) - [XmlWorkflowParser](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Parser/XmlWorkflowParser/) ## Methods `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/). | `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/). | `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`. | `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. | [Previous ProcessDefinitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ProcessDefinitionBuilder/) [Next WorkflowParser](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Parser/WorkflowParser-TSchemeMedium/)