Add schemas to use with workflows with Azure Logic Apps

Workflow actions such as Flat File and XML Validation require a schema to perform their tasks. For example, the XML Validation action requires an XML schema to check that documents use valid XML and have the expected data in the predefined format. This schema is an XML document that uses XML Schema Definition (XSD) language and has the .xsd file name extension. The Flat File actions use a schema to encode and decode XML content.

This article shows how to add a schema to your integration account. If you're working with a Standard logic app workflow, you can also add a schema directly to your logic app resource.

Prerequisites

  • An Azure account and subscription. If you don't have a subscription yet, sign up for a Azure account.

  • The schema file that you want to add. To create schemas, you can use the following tools:

    Note

    Don't install the extension alongside the BizTalk Server extension. Having both extensions might produce unexpected behavior. Make sure that you only have one of these extensions installed.

    On high resolution monitors, you might experience a display problem with the map designer in Visual Studio. To resolve this display problem, either restart Visual Studio in DPI-unaware mode, or add the DPIUNAWARE registry value.

  • Based on whether you're working on a Consumption or Standard logic app workflow, you'll need an integration account resource. Usually, you need this resource when you want to define and store artifacts for use in enterprise integration and B2B workflows.

    Important

    To work together, both your integration account and logic app resource must exist in the same Azure subscription and Azure region.

    • If you're working on a Consumption logic app workflow, you'll need an integration account that's linked to your logic app resource.

    • If you're working on a Standard logic app workflow, you can link your integration account to your logic app resource, upload schemas directly to your logic app resource, or both, based on the following scenarios:

      • If you already have an integration account with the artifacts that you need or want to use, you can link your integration account to multiple Standard logic app resources where you want to use the artifacts. That way, you don't have to upload schemas to each individual logic app. For more information, review Link your logic app resource to your integration account.

      • The Flat File built-in connector lets you select a schema that you previously uploaded to your logic app resource or to a linked integration account, but not both. You can then use this artifact across all child workflows within the same logic app resource.

      So, if you don't have or need an integration account, you can use the upload option. Otherwise, you can use the linking option. Either way, you can use these artifacts across all child workflows within the same logic app resource.

Limitations

  • Limits apply to the number of artifacts, such as schemas, per integration account. For more information, review Limits and configuration information for Azure Logic Apps.

  • Based on whether you're working on a Consumption or Standard logic app workflow, schema file size limits might apply.

    • If you're working with Standard workflows, no limits apply to schema file sizes.

    • If you're working with Consumption workflows, the following limits apply:

  • Usually, when you're using an integration account with your workflow, you add the schema to that account. However, if you're referencing or importing a schema that's not in your integration account, you might receive the following error when you use the element xsd:redefine:

    An error occurred while processing the XML schemas: ''SchemaLocation' must successfully resolve if <redefine> contains any child other than <annotation>.'.

    To resolve this error, you need to use the element xsd:import or xsd:include instead of xsd:redefine, or use a URI.

Add schemas

  • If you're working with a Consumption workflow, you must add your schema to a linked integration account.

  • If you're working with a Standard workflow, you have the following options:

    • Add your schema to a linked integration account. You can share the schema and integration account across multiple Standard logic app resources and their child workflows.

    • Add your schema directly to your logic app resource. However, you can only share that schema across child workflows in the same logic app resource.

Add schema to integration account

  1. In the Azure portal, sign in with your Azure account credentials.

  2. In the main Azure search box, enter integration accounts, and select Integration accounts.

  3. Select the integration account where you want to add your schema.

  4. On your integration account's menu, under Settings, select Schemas.

  5. On the Schemas pane toolbar, select Add.

For Consumption workflows, based on your schema's file size, now follow the steps for uploading a schema that's either up to 2 MB or more than 2 MB, up to 8 MB.

Add schemas up to 2 MB

  1. On the Add Schema pane, enter a name for your schema. Keep Small file selected. Next to the Schema box, select the folder icon. Find and select the schema you're uploading.

  2. When you're done, select OK.

    After your schema finishes uploading, the schema appears in the Schemas list.

Add schemas more than 2 MB

To add larger schemas for Consumption workflows to use, you can either use the Azure Logic Apps REST API - Schemas or upload your schema to an Azure blob container in your Azure storage account. Your steps for adding schemas differ based whether your blob container has public read access. So first, check whether or not your blob container has public read access by following these steps: Set public access level for blob container

Check container access level

  1. Open Azure Storage Explorer. In the Explorer window, expand your Azure subscription if not already expanded.

  2. Expand Storage Accounts > {your-storage-account} > Blob Containers. Select your blob container.

  3. From your blob container's shortcut menu, select Set Public Access Level.

Upload to containers with public access

  1. Upload the schema to your storage account. In the right-hand window, select Upload.

  2. After you finish uploading, select your uploaded schema. On the toolbar, select Copy URL so that you copy the schema's URL.

  3. Return to the Azure portal where the Add Schema pane is open. Enter a name for your assembly. Select Large file (larger than 2 MB).

    The Content URI box now appears, rather than the Schema box.

  4. In the Content URI box, paste your schema's URL. Finish adding your schema.

After your schema finishes uploading, the schema appears in the Schemas list. On your integration account's Overview page, under Artifacts, your uploaded schema appears.

Upload to containers without public access

  1. Upload the schema to your storage account. In the right-hand window, select Upload.

  2. After you finish uploading, generate a shared access signature (SAS) for your schema. From your schema's shortcut menu, select Get Shared Access Signature.

  3. In the Shared Access Signature pane, select Generate container-level shared access signature URI > Create. After the SAS URL gets generated, next to the URL box, select Copy.

  4. Return to the Azure portal where the Add Schema pane is open. Select Large file.

    The Content URI box now appears, rather than the Schema box.

  5. In the Content URI box, paste the SAS URI you previously generated. Finish adding your schema.

After your schema finishes uploading, the schema appears in the Schemas list. On your integration account's Overview page, under Artifacts, your uploaded schema appears.


Add schema to Standard logic app resource

The following steps apply only if you want to add a schema directly to your Standard logic app resource. Otherwise, add the schema to your integration account.

Azure portal

  1. On your logic app resource's menu, under Settings, select Schemas.

  2. On the Schemas pane toolbar, select Add.

  3. On the Add schema pane, enter a unique name for your schema.

  4. Next to the Schema box, select the folder icon. Select the schema to upload.

  5. When you're done, select OK.

    After your schema file finishes uploading, the schema appears in the Schemas list. On your integration account's Overview page, under Artifacts, your uploaded schema also appears.

Visual Studio Code

  1. In your logic app project's structure, open the Artifacts folder and then the Schemas folder.

  2. In the Schemas folder, add your schema.


Edit a schema

To update an existing schema, you have to upload a new schema file that has the changes you want. However, you can first download the existing schema for editing.

  1. In the Azure portal, open your integration account, if not already open.

  2. On your integration account's menu, under Settings, select Schemas.

  3. After the Schemas pane opens, select your schema. To download and edit the schema first, on the Schemas pane toolbar, select Download, and save the schema.

  4. When you're ready to upload the updated schema, on the Schemas pane, select the schema that you want to update. On the Schemas pane toolbar, select Update.

  5. Find and select the updated schema you want to upload.

  6. When you're done, select OK.

    After your schema file finishes uploading, the updated schema appears in the Schemas list.

Delete a schema

  1. In the Azure portal, open your integration account, if not already open.

  2. On your integration account's menu, under Settings, select Schemas.

  3. After the Schemas pane opens, select your schema, and then select Delete.

  4. To confirm you want to delete the schema, select Yes.

Next steps