﻿<?xml version="1.0"?>
<DTS:Executable xmlns:DTS="www.microsoft.com/SqlServer/Dts"
  DTS:refId="Package"
  DTS:CreationDate="1/10/2018 2:46:18 PM"
  DTS:CreationName="SSIS.Package.3"
  DTS:DTSID="{D6FE5347-B5FB-46E7-B17C-9C3A8802C170}"
  DTS:ExecutableType="SSIS.Package.3"
  DTS:LastModifiedProductVersion="14.0.1000.169"
  DTS:LocaleID="1063"
  DTS:ObjectName="JSON-XML Flattening"
  DTS:PackageType="5"
  DTS:VersionBuild="12"
  DTS:VersionGUID="{6CED9904-2B9F-4A64-8FAA-1FED49FF9CAA}">
  <DTS:Property
    DTS:Name="PackageFormatVersion">6</DTS:Property>
  <DTS:Variables />
  <DTS:Executables>
    <DTS:Executable
      DTS:refId="Package\JSON Flattening"
      DTS:CreationName="SSIS.Pipeline.3"
      DTS:Description="Data Flow Task"
      DTS:DTSID="{197DD930-6B7C-45DC-8050-683B36D660B1}"
      DTS:ExecutableType="SSIS.Pipeline.3"
      DTS:LocaleID="-1"
      DTS:ObjectName="JSON Flattening"
      DTS:TaskContact="Performs high-performance data extraction, transformation and loading;Microsoft Corporation; Microsoft SQL Server; (C) Microsoft Corporation; All Rights Reserved;http://www.microsoft.com/sql/support/default.asp;1">
      <DTS:Variables />
      <DTS:ObjectData>
        <pipeline
          version="1">
          <components>
            <component
              refId="Package\JSON Flattening\Array Flattening"
              componentClassID="DTS.ManagedComponentWrapper.3"
              contactInfo="JSON Source (REST API or File); ZappySys LLC (c) All Rights Reserved; SSIS PowerPack; http://www.zappysys.com/support"
              description="The JSON source is used to read data from JSON files, RESTful Web Service or direct JSON String."
              name="Array Flattening"
              usesDispositions="true"
              version="25">
              <properties>
                <property
                  dataType="System.Int32"
                  description="LoggingMode determines how much information is logged during Package Execution. Set Logging mode to Debugging for maximum log."
                  expressionType="Notify"
                  name="LoggingMode"
                  typeConverter="ZappySys.PowerPack.Common.LoggingMode, ZappySys.PowerPack90, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="When you enable this property it will prefix timestamp before Log messages."
                  expressionType="Notify"
                  name="PrefixTimestamp">false</property>
                <property
                  dataType="System.Null"
                  expressionType="Notify"
                  name="SelfRef"
                  typeConverter="NOTBROWSABLE" />
                <property
                  dataType="System.Boolean"
                  description="Treat empty string as NULL for any numeric datatypes"
                  expressionType="Notify"
                  name="TreatBlankNumberAsNull">true</property>
                <property
                  dataType="System.Int32"
                  description="Defines how to read the JSON file or direct string"
                  expressionType="Notify"
                  name="AccessMode"
                  typeConverter="ZappySys.Common.Ssis.FileValueAccessMode, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.String"
                  description="Defines how to read the JSON file or direct string"
                  expressionType="Notify"
                  name="DirectValue"
                  UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">{
"things": {
		"animals" : {
				"dogs": { 
					"dobermann": { "name": "Nick", "age": 5 },
					"rottweiler": { "name": "Max", "age": 10 },
					"pitbull": { "name": "Charlie", "age": 15 }
				},
				"cat": {"name": "Scratchy", "age": 7},
				"mouse": {"name": "Squeeky", "age": 1 },
				"other": ["pig", "crocodile", "chicken"]
		},
		"cars": ["Audi", "Mercedez", "Volvo"]
	}
}</property>
                <property
                  dataType="System.String"
                  description="Variable name which holds JSON string"
                  expressionType="Notify"
                  name="ValueVariable"
                  typeConverter="ZappySys.PowerPack.Converters.VariableEditor,ZappySys.PowerPack110.UI,Version=1.0.0.0,Culture=neutral,PublicKeyToken=1903265a93eae502"></property>
                <property
                  dataType="System.String"
                  description="Variable name which holds data file path or url"
                  expressionType="Notify"
                  name="PathVariable"
                  typeConverter="ZappySys.PowerPack.Converters.VariableEditor,ZappySys.PowerPack110.UI,Version=1.0.0.0,Culture=neutral,PublicKeyToken=1903265a93eae502"></property>
                <property
                  dataType="System.String"
                  description="JSON file file path (e.g. c:\data\myfile.json) or pattern to process multiple files (e.g. c:\data\*.json)"
                  expressionType="Notify"
                  name="DirectPath"
                  UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"></property>
                <property
                  dataType="System.String"
                  description="Set this if you want to set custom Http headers. You may use variable anywhere in the header value using syntax {{User::YourVarName}}. Syntax of Header key value pair is : &amp;lt;request&amp;gt;&amp;lt;header&amp;gt;&amp;lt;name&amp;gt;x-myheader-1&amp;lt;/name&amp;gt;&amp;lt;value&amp;gt;AAA&amp;lt;/value&amp;gt;&amp;lt;/header&amp;gt; &amp;lt;header&amp;gt;&amp;lt;name&amp;gt;x-myheader-2&amp;lt;/name&amp;gt;&amp;lt;value&amp;gt;BBB&amp;lt;/value&amp;gt;&amp;lt;/header&amp;gt;&amp;lt;/request&amp;gt;"
                  expressionType="Notify"
                  name="HttpHeaders">&lt;request&gt;&lt;header&gt;&lt;name&gt;Accept&lt;/name&gt;&lt;value&gt;*/*&lt;/value&gt;&lt;/header&gt;&lt;header&gt;&lt;name&gt;Cache-Control&lt;/name&gt;&lt;value&gt;no-cache&lt;/value&gt;&lt;/header&gt;&lt;/request&gt;</property>
                <property
                  dataType="System.String"
                  description="User defined data you wish to send along with your HTTP Request (e.g. Upload file data, Form POST data). Usually you have to set content-type of your data but if you select RequestMethod=POST then system will automatically set content-type=application/x-www-form-urlencoded."
                  expressionType="Notify"
                  name="HttpRequestData"></property>
                <property
                  dataType="System.String"
                  description="Http Web Request Method (e.g. POST, GET, PUT, LIST, DELETE...). Refer your API documentation if you are not sure which method you have to use."
                  expressionType="Notify"
                  name="HttpRequestMethod">GET</property>
                <property
                  dataType="System.Int32"
                  description="Specifies content type for data you wish to POST. If you select Default option then system default content type will be used (i.e. application/x-www-form-urlencoded). If you specify Content-Type header along with this option then header value takes precedence."
                  expressionType="Notify"
                  name="HttpRequestContentType"
                  typeConverter="ZappySys.Common.Web.HttpRequestContentType, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Int32"
                  description="Data format coming from HTTP Response. This is useful for example when you have OData service and you want to automatically consume all pages of data using odata.netUrl. Setting JsonFormat=Odata will automatically do it for you. This setting is only applicable if JSON is coming from HTTP WebRequest."
                  expressionType="Notify"
                  name="JsonFormat"
                  typeConverter="ZappySys.Json.JsonFormat, ZappySys.Json, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="Enable custom proxy settings (If this is not set then system default proxy will be used. To disable proxy totally uncheck this option and check DoNotUseDefaultProxy option if available)"
                  expressionType="Notify"
                  name="UseProxy">false</property>
                <property
                  dataType="System.String"
                  description="Web URL of Proxy server (including port  if necessary). [e.g. http://myproxyserver:8080/]"
                  expressionType="Notify"
                  name="ProxyUrl"></property>
                <property
                  dataType="System.Boolean"
                  description="Enable passing userid and password to proxy server"
                  expressionType="Notify"
                  name="UseProxyCreds">false</property>
                <property
                  dataType="System.String"
                  description="Proxy username"
                  expressionType="Notify"
                  name="ProxyUserName"></property>
                <property
                  dataType="System.String"
                  description="Proxy password"
                  expressionType="Notify"
                  name="ProxyPassword"></property>
                <property
                  dataType="System.String"
                  description="If Service response support pagination using some sort of next url attribute then specify which attribute name in JSON Response string which holds next url. If no attribute found or its null then component will stop fetching next resultset"
                  expressionType="Notify"
                  name="NextUrlAttribute"></property>
                <property
                  dataType="System.String"
                  description="If Service response support pagination using some sort of prev/next url attribute then specify which previous link attribute name from JSON Response string which holds previous url."
                  expressionType="Notify"
                  name="PrevUrlAttribute"></property>
                <property
                  dataType="System.String"
                  description="Specifies value for NextUrlAttribute or StopIndicatorAttribute which indicates last page to stop pagination. If you have specified StopIndicatorAttribute then you can use Regular expression rather than static value to indicate last page. To use regular expression value of this property must start with regex= prefix. Example : regex=FALSE|N  (assuming you set StopIndicatorAttribute to something like $.hasMore)"
                  expressionType="Notify"
                  name="NextUrlStopIndicator"></property>
                <property
                  dataType="System.String"
                  description="Attribute name or expression for attribute which can be used as stop indicator (e.g. hasmore --or-- $.pagination.hasmore). If this value is blank then NextUrlAttribute is used"
                  expressionType="Notify"
                  name="StopIndicatorAttribute"></property>
                <property
                  dataType="System.String"
                  description="If you want to include certain text (or parameters) at the end of Next url then specify this attribute (e.g. &amp;format=json)"
                  expressionType="Notify"
                  name="NextUrlSuffix"></property>
                <property
                  dataType="System.Int32"
                  description="This property indicates total number of milliseconds you want to wait before sending next request. This option allows you to adjust how many API calls can be made within certain timeframe. If your API Service has no limit then set this option to zero"
                  expressionType="Notify"
                  name="NextUrlWait">0</property>
                <property
                  dataType="System.Boolean"
                  description="If this option is true then component will continue without exception on 404 error (Url not found). This allows you to consume data gracefully."
                  expressionType="Notify"
                  name="ContinueOnUrlNotFoundError">false</property>
                <property
                  dataType="System.String"
                  description="Cookie Container can be used to maintain state between multiple web requests. Example: You can login to site like wordpress and then extract any private page content by simply passing authentication cookies using this variable."
                  expressionType="Notify"
                  name="CookieContainerVariable"></property>
                <property
                  dataType="System.Int32"
                  description="Http request Timeout in seconds. Set this to 0 if you want to use system default value (i.e. 100 seconds)"
                  expressionType="Notify"
                  name="RequestTimeout">0</property>
                <property
                  dataType="System.Int32"
                  description="Specifies which security protocol is supported for HTTPS communication. Using this option you can enable legacy protocol or enforce to use latest version of security protocol (Note: TLS 1.2 is only supported in SSIS 2014 or Higher)."
                  expressionType="Notify"
                  name="SecurityProtocol"
                  typeConverter="ZappySys.PowerPack.Common.HttpsSecurityProtocolType, ZappySys.PowerPack90, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="Enable support for gzip or deflate compression. When you check this option compressed response automatically de-compressed saving bandwidth. This option is only valid if web server supports compressed response stream. Check your API documentation for more information."
                  expressionType="Notify"
                  name="EnableCompressionSupport">true</property>
                <property
                  dataType="System.Boolean"
                  description="Ignore SSL certificate related errors. Example: if you getting SSL/TLS errors because of certificate expired or certificate is not from trusted authority or certificate is self-signed. By checking this option you will not get SSL/TLS error."
                  expressionType="Notify"
                  name="IgnoreCertificateErrors">false</property>
                <property
                  dataType="System.Boolean"
                  description="Use connection to pass credentials for authentication (e.g. Use UserID/Password or Use OAuth Protocol for token based approach)"
                  expressionType="Notify"
                  name="UseConnection">false</property>
                <property
                  dataType="System.Int32"
                  description="Specified how you want to loop through multiple pages returned by REST API."
                  expressionType="Notify"
                  name="PagingMode"
                  typeConverter="ZappySys.Common.RestApiPagingMode, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.String"
                  description="e.g. Type page_num if URL looks like this =&gt; http://abc.com/?page_num=1&amp;sort=true  (page number via query string)&#xA;--or-- Type &lt;%page%&gt; if page number is inside URL path like this =&gt; http://abc.com/1/?sort=true  (e.g. replace page number in url with placeholder http://abc.com/&lt;%page%&gt;/?sort=true)&#xA;Page number will be incremented by one for next URL until last page is reached or [Max Page Number] is reached"
                  expressionType="Notify"
                  name="PageNumberAttributeNameInUrl"></property>
                <property
                  dataType="System.Int32"
                  description="Maximum page number until which auto increment is allowed. Type zero for no limit. Next URL contains next page number (increment by one) until last page is detected or [Max Page Number] limit is reached."
                  expressionType="Notify"
                  name="MaxPageNumber">0</property>
                <property
                  dataType="System.String"
                  description="Variable name which will hold starting page number. This is ignored if you useing parameter name from query string to indicate page number."
                  expressionType="Notify"
                  name="StartPageNumberVariable"></property>
                <property
                  dataType="System.Int32"
                  description="Page counter increment. By default next page is incremented by one if this value is zero. You can also enter negative number if you want to decrease page counter."
                  expressionType="Notify"
                  name="PageNumberIncrement">1</property>
                <property
                  dataType="System.Int32"
                  description="Specified how you want detect last page."
                  expressionType="Notify"
                  name="PagingEndStrategy"
                  typeConverter="ZappySys.Common.UrlPagingEndDetectionStrategy, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">3</property>
                <property
                  dataType="System.Boolean"
                  description="Condition result to compare to detect last page. Set this property to True if you want detect last page if condition is true else set this to False."
                  expressionType="Notify"
                  name="LastPageWhenConditionEqualsTo">true</property>
                <property
                  dataType="System.Int32"
                  description="Minimum bytes expected from response."
                  expressionType="Notify"
                  name="ResponseMinBytes">0</property>
                <property
                  dataType="System.Int32"
                  description="Maximum bytes from response."
                  expressionType="Notify"
                  name="ResponseMaxBytes">3</property>
                <property
                  dataType="System.String"
                  description="Expected error message sub string from response."
                  expressionType="Notify"
                  name="ResponseErrorString">not found</property>
                <property
                  dataType="System.Int32"
                  description="Expected status code from response when page number you trying to access not found."
                  expressionType="Notify"
                  name="ResponseStatusCode">404</property>
                <property
                  dataType="System.Int32"
                  description="Maximum JSON records to fetch. Set this value to 0 for all records"
                  expressionType="Notify"
                  name="MaxRows">0</property>
                <property
                  dataType="System.String"
                  description="Enter expression here to filter data.(Example:  $.Users[*].UserName ) This will fetch User names from users records"
                  expressionType="Notify"
                  name="Filter"
                  UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">$.things.animals.other[*]</property>
                <property
                  dataType="System.Boolean"
                  description="Use this option to include parent properties (Non array) in the output along with Filtered Rows"
                  expressionType="Notify"
                  name="IncludeParentColumns">true</property>
                <property
                  dataType="System.Boolean"
                  description="By default child and parent information is not included in the output if children not found for specified expression. For example if you want to extract all orders from all customers nodes then you can type $.Customers[*].Orders[*]. This will fetch all orders from all customers. By default customers records without orders wont be included in the output. If you want to include those customers where orders not found then check this option (Output null information for order attributes). This behavior is similar to LEFT OUTER JOIN in SQL (Left side is parent, right side is child). This option is ***resource intensive*** so only check if you really care about this behavior."
                  expressionType="Notify"
                  name="IncludeParentColumnsWhenChildMissing">false</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to output parent columns which are array. By default any parent column which is an array is not included in output. See also FilterForParentColumnsWithArrayType property if you set this property"
                  expressionType="Notify"
                  name="IncludeParentColumnsWithArrayType">false</property>
                <property
                  dataType="System.String"
                  description="Set this option to true if you want to output parent columns which are array. By default any parent column which is an array is not included in output. See also FilterForParentColumnsWithArrayType property if you set this property"
                  expressionType="Notify"
                  name="FilterForParentColumnsWithArrayType"></property>
                <property
                  dataType="System.String"
                  description="Prefix for parent column name. This option is only valid if you have set IncludeParentColumns=True"
                  expressionType="Notify"
                  name="ParentColumnPrefix">P_</property>
                <property
                  dataType="System.Boolean"
                  description="Throw error if property name specified in filter expression is missing. By default it will ignore any missing property errors."
                  expressionType="Notify"
                  name="ThrowErrorIfPropertyMissing">false</property>
                <property
                  dataType="System.Int32"
                  description="This property how many nested levels should be scanned to fetch various properties. 0=Scan all child levels."
                  expressionType="Notify"
                  name="MaxLevelsToScan">0</property>
                <property
                  dataType="System.String"
                  description="List comma separated property names from JSON document which you want to exclude from output. Specify parent property name to exclude all child nodes."
                  expressionType="Notify"
                  name="ExcludedProperties"></property>
                <property
                  dataType="System.String"
                  description="Property level separator used in generated property name. Use this if default separator is producing duplicate property name which is conflicting with existing name."
                  expressionType="Notify"
                  name="LevelSeparator">_</property>
                <property
                  dataType="System.Int32"
                  description="Compression format for source file (e.g. gzip, zip)"
                  expressionType="Notify"
                  name="FileCompressionType"
                  typeConverter="ZappySys.Common.FileCompressionType, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Int32"
                  description="Array Transformation you want to apply. Useful for case when you have 2-Dimensional arrays with rows/columns in separate arrays."
                  expressionType="Notify"
                  name="ArrayTransformationType"
                  typeConverter="ZappySys.Json.ArrayTransformType, ZappySys.Json, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.String"
                  description="Filter expression to use to extract column names for array transformation."
                  expressionType="Notify"
                  name="ArrayTransColumnNameFilter"></property>
                <property
                  dataType="System.String"
                  description="Filter expression for row values (Not applicable for simple array transformation)."
                  expressionType="Notify"
                  name="ArrayTransRowValueFilter"></property>
                <property
                  dataType="System.Boolean"
                  description="When you have 2D array but don't have column list specified in a separate array then use this option (e.g. { arr: [[10,11],[21,22]] } )."
                  expressionType="Notify"
                  name="ArrayTransEnableCustomColumns">false</property>
                <property
                  dataType="System.String"
                  description="When you have 2D array but don't have column list specified in a separate array then use specify column names here. Use comma separated list (e.g col1,col2,col3 ). Column name Order must match value order."
                  expressionType="Notify"
                  name="ArrayTransCustomColumns"></property>
                <property
                  dataType="System.String"
                  description="Specifies how custom date formatted strings are parsed when reading JSON."
                  expressionType="Notify"
                  name="DateFormatString"></property>
                <property
                  dataType="System.Int32"
                  description="Specifies how date formatted strings, e.g. Date(1198908717056) and 2012-03-21T05:40Z, are parsed when reading JSON."
                  expressionType="Notify"
                  name="DateParseHandling"
                  typeConverter="ZappySys.Common.DateParseHandling, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">1</property>
                <property
                  dataType="System.Boolean"
                  description="Output as raw JSON document rather than parsing individual fields. This option is helpful if you have documents stored in a file and you want to pass them downstream as raw JSON string rather than parsing into columns."
                  expressionType="Notify"
                  name="OutputRawDocument">false</property>
                <property
                  dataType="System.Boolean"
                  description="Indent JSON output so its easy to read."
                  expressionType="Notify"
                  name="IndentOutput">false</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to output FilePath. This option is ignored when you consume DirectValue or data from Url rather than local files. Output column name will be __FilePath"
                  expressionType="Notify"
                  name="OutputFilePath">false</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to output FileName. This option is ignored when you consume DirectValue or data from Url rather than local files. Output column name will be __FileName"
                  expressionType="Notify"
                  name="OutputFileName">true</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to move processed file to archive folder."
                  expressionType="Notify"
                  name="EnableArchiveFile">false</property>
                <property
                  dataType="System.String"
                  description="Folder path where you want to move processed file."
                  expressionType="Notify"
                  name="ArchiveFolderPath"></property>
                <property
                  dataType="System.Boolean"
                  description="Folder path where you want to move processed file."
                  expressionType="Notify"
                  name="OverwriteFileInArchiveFolder">false</property>
                <property
                  dataType="System.String"
                  description="File naming convention for archived file. By default it will same name as original source file processed. But you can control naming format using {%name%} and {%ext%} placeholders. e.g. {%name%}_processed{%ext%} or {%name%}{%ext%}.{{System::ContainerStartTime,yyyyMMdd_HHmmss_fff}}"
                  expressionType="Notify"
                  name="ArchiveFileNamingConvention"></property>
                <property
                  dataType="System.Boolean"
                  description="When this property is true then Column is converted to Row. Pivoted names will appear under  Pivot_Name column and values will appear under Pivot_Value field."
                  expressionType="Notify"
                  name="EnablePivot">false</property>
                <property
                  dataType="System.Int32"
                  description="Metadata scan mode controls how data type and length is determined. By default few records scanned to determine datatype/length. Changing ScanMode affects length/datatype accuracy."
                  expressionType="Notify"
                  name="MetaDataScanMode"
                  typeConverter="ZappySys.Common.Data.MetaDataScanMode, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Int32"
                  description="Length for all string column. This option is only valid for MetaDataScanMode=Custom"
                  expressionType="Notify"
                  name="MetaDataCustomLength">1000</property>
                <property
                  dataType="System.String"
                  name="UserComponentTypeName">ZappySys.PowerPack.Adapter.JsonSource.JsonSource, ZappySys.PowerPack110, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502</property>
              </properties>
              <outputs>
                <output
                  refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput]"
                  errorOrTruncationOperation="Error"
                  errorRowDisposition="FailComponent"
                  name="JsonSourceOutput"
                  truncationRowDisposition="FailComponent">
                  <outputColumns>
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_dobermann_name]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_dobermann_name]"
                      length="8"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_dobermann_name]"
                      name="P_things.animals_dogs_dobermann_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_dobermann_age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_dobermann_age]"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_dobermann_age]"
                      name="P_things.animals_dogs_dobermann_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_rottweiler_name]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_rottweiler_name]"
                      length="6"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_rottweiler_name]"
                      name="P_things.animals_dogs_rottweiler_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_rottweiler_age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_rottweiler_age]"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_rottweiler_age]"
                      name="P_things.animals_dogs_rottweiler_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_pitbull_name]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_pitbull_name]"
                      length="14"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_pitbull_name]"
                      name="P_things.animals_dogs_pitbull_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_pitbull_age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_pitbull_age]"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_pitbull_age]"
                      name="P_things.animals_dogs_pitbull_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_cat_name]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_cat_name]"
                      length="16"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_cat_name]"
                      name="P_things.animals_cat_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_cat_age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_cat_age]"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_cat_age]"
                      name="P_things.animals_cat_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_mouse_name]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_mouse_name]"
                      length="14"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_mouse_name]"
                      name="P_things.animals_mouse_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_mouse_age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_mouse_age]"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[P_things.animals_mouse_age]"
                      name="P_things.animals_mouse_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[other]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[other]"
                      length="18"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].Columns[other]"
                      name="other" />
                  </outputColumns>
                  <externalMetadataColumns
                    isUsed="True">
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_dobermann_name]"
                      dataType="wstr"
                      length="8"
                      name="P_things.animals_dogs_dobermann_name" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_dobermann_age]"
                      dataType="i8"
                      name="P_things.animals_dogs_dobermann_age" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_rottweiler_name]"
                      dataType="wstr"
                      length="6"
                      name="P_things.animals_dogs_rottweiler_name" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_rottweiler_age]"
                      dataType="i8"
                      name="P_things.animals_dogs_rottweiler_age" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_pitbull_name]"
                      dataType="wstr"
                      length="14"
                      name="P_things.animals_dogs_pitbull_name" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_pitbull_age]"
                      dataType="i8"
                      name="P_things.animals_dogs_pitbull_age" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_cat_name]"
                      dataType="wstr"
                      length="16"
                      name="P_things.animals_cat_name" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_cat_age]"
                      dataType="i8"
                      name="P_things.animals_cat_age" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_mouse_name]"
                      dataType="wstr"
                      length="14"
                      name="P_things.animals_mouse_name" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_mouse_age]"
                      dataType="i8"
                      name="P_things.animals_mouse_age" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput].ExternalColumns[other]"
                      dataType="wstr"
                      length="18"
                      name="other" />
                  </externalMetadataColumns>
                </output>
                <output
                  refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output]"
                  isErrorOut="true"
                  name="JsonSource Error Output">
                  <outputColumns>
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_dobermann_name]"
                      dataType="wstr"
                      length="8"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_dobermann_name]"
                      name="P_things.animals_dogs_dobermann_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_dobermann_age]"
                      dataType="i8"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_dobermann_age]"
                      name="P_things.animals_dogs_dobermann_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_rottweiler_name]"
                      dataType="wstr"
                      length="6"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_rottweiler_name]"
                      name="P_things.animals_dogs_rottweiler_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_rottweiler_age]"
                      dataType="i8"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_rottweiler_age]"
                      name="P_things.animals_dogs_rottweiler_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_pitbull_name]"
                      dataType="wstr"
                      length="14"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_pitbull_name]"
                      name="P_things.animals_dogs_pitbull_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_pitbull_age]"
                      dataType="i8"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_pitbull_age]"
                      name="P_things.animals_dogs_pitbull_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_cat_name]"
                      dataType="wstr"
                      length="16"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_cat_name]"
                      name="P_things.animals_cat_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_cat_age]"
                      dataType="i8"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_cat_age]"
                      name="P_things.animals_cat_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_mouse_name]"
                      dataType="wstr"
                      length="14"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_mouse_name]"
                      name="P_things.animals_mouse_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_mouse_age]"
                      dataType="i8"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[P_things.animals_mouse_age]"
                      name="P_things.animals_mouse_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[other]"
                      dataType="wstr"
                      length="18"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[other]"
                      name="other" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[ErrorCode]"
                      dataType="i4"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[ErrorCode]"
                      name="ErrorCode"
                      specialFlags="1" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[ErrorColumn]"
                      dataType="i4"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[ErrorColumn]"
                      name="ErrorColumn"
                      specialFlags="2" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[ErrorColumnName]"
                      codePage="1252"
                      dataType="str"
                      length="128"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[ErrorColumnName]"
                      name="ErrorColumnName" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[ErrorMessage]"
                      dataType="wstr"
                      length="1024"
                      lineageId="Package\JSON Flattening\Array Flattening.Outputs[JsonSource Error Output].Columns[ErrorMessage]"
                      name="ErrorMessage" />
                  </outputColumns>
                  <externalMetadataColumns />
                </output>
              </outputs>
            </component>
            <component
              refId="Package\JSON Flattening\Array Flattening with one element of other Array"
              componentClassID="DTS.ManagedComponentWrapper.3"
              contactInfo="JSON Source (REST API or File); ZappySys LLC (c) All Rights Reserved; SSIS PowerPack; http://www.zappysys.com/support"
              description="The JSON source is used to read data from JSON files, RESTful Web Service or direct JSON String."
              name="Array Flattening with one element of other Array"
              usesDispositions="true"
              version="25">
              <properties>
                <property
                  dataType="System.Int32"
                  description="LoggingMode determines how much information is logged during Package Execution. Set Logging mode to Debugging for maximum log."
                  expressionType="Notify"
                  name="LoggingMode"
                  typeConverter="ZappySys.PowerPack.Common.LoggingMode, ZappySys.PowerPack90, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="When you enable this property it will prefix timestamp before Log messages."
                  expressionType="Notify"
                  name="PrefixTimestamp">false</property>
                <property
                  dataType="System.Null"
                  expressionType="Notify"
                  name="SelfRef"
                  typeConverter="NOTBROWSABLE" />
                <property
                  dataType="System.Boolean"
                  description="Treat empty string as NULL for any numeric datatypes"
                  expressionType="Notify"
                  name="TreatBlankNumberAsNull">true</property>
                <property
                  dataType="System.Int32"
                  description="Defines how to read the JSON file or direct string"
                  expressionType="Notify"
                  name="AccessMode"
                  typeConverter="ZappySys.Common.Ssis.FileValueAccessMode, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.String"
                  description="Defines how to read the JSON file or direct string"
                  expressionType="Notify"
                  name="DirectValue"
                  UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">{
"things": {
		"animals" : {
				"dogs": { 
					"dobermann": { "name": "Nick", "age": 5 },
					"rottweiler": { "name": "Max", "age": 10 },
					"pitbull": { "name": "Charlie", "age": 15 }
				},
				"cat": {"name": "Scratchy", "age": 7},
				"mouse": {"name": "Squeeky", "age": 1 },
				"other": ["pig", "crocodile", "chicken"]
		},
		"cars": ["Audi", "Mercedez", "Volvo"]
	}
}</property>
                <property
                  dataType="System.String"
                  description="Variable name which holds JSON string"
                  expressionType="Notify"
                  name="ValueVariable"
                  typeConverter="ZappySys.PowerPack.Converters.VariableEditor,ZappySys.PowerPack110.UI,Version=1.0.0.0,Culture=neutral,PublicKeyToken=1903265a93eae502"></property>
                <property
                  dataType="System.String"
                  description="Variable name which holds data file path or url"
                  expressionType="Notify"
                  name="PathVariable"
                  typeConverter="ZappySys.PowerPack.Converters.VariableEditor,ZappySys.PowerPack110.UI,Version=1.0.0.0,Culture=neutral,PublicKeyToken=1903265a93eae502"></property>
                <property
                  dataType="System.String"
                  description="JSON file file path (e.g. c:\data\myfile.json) or pattern to process multiple files (e.g. c:\data\*.json)"
                  expressionType="Notify"
                  name="DirectPath"
                  UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"></property>
                <property
                  dataType="System.String"
                  description="Set this if you want to set custom Http headers. You may use variable anywhere in the header value using syntax {{User::YourVarName}}. Syntax of Header key value pair is : &amp;lt;request&amp;gt;&amp;lt;header&amp;gt;&amp;lt;name&amp;gt;x-myheader-1&amp;lt;/name&amp;gt;&amp;lt;value&amp;gt;AAA&amp;lt;/value&amp;gt;&amp;lt;/header&amp;gt; &amp;lt;header&amp;gt;&amp;lt;name&amp;gt;x-myheader-2&amp;lt;/name&amp;gt;&amp;lt;value&amp;gt;BBB&amp;lt;/value&amp;gt;&amp;lt;/header&amp;gt;&amp;lt;/request&amp;gt;"
                  expressionType="Notify"
                  name="HttpHeaders">&lt;request&gt;&lt;header&gt;&lt;name&gt;Accept&lt;/name&gt;&lt;value&gt;*/*&lt;/value&gt;&lt;/header&gt;&lt;header&gt;&lt;name&gt;Cache-Control&lt;/name&gt;&lt;value&gt;no-cache&lt;/value&gt;&lt;/header&gt;&lt;/request&gt;</property>
                <property
                  dataType="System.String"
                  description="User defined data you wish to send along with your HTTP Request (e.g. Upload file data, Form POST data). Usually you have to set content-type of your data but if you select RequestMethod=POST then system will automatically set content-type=application/x-www-form-urlencoded."
                  expressionType="Notify"
                  name="HttpRequestData"></property>
                <property
                  dataType="System.String"
                  description="Http Web Request Method (e.g. POST, GET, PUT, LIST, DELETE...). Refer your API documentation if you are not sure which method you have to use."
                  expressionType="Notify"
                  name="HttpRequestMethod">GET</property>
                <property
                  dataType="System.Int32"
                  description="Specifies content type for data you wish to POST. If you select Default option then system default content type will be used (i.e. application/x-www-form-urlencoded). If you specify Content-Type header along with this option then header value takes precedence."
                  expressionType="Notify"
                  name="HttpRequestContentType"
                  typeConverter="ZappySys.Common.Web.HttpRequestContentType, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Int32"
                  description="Data format coming from HTTP Response. This is useful for example when you have OData service and you want to automatically consume all pages of data using odata.netUrl. Setting JsonFormat=Odata will automatically do it for you. This setting is only applicable if JSON is coming from HTTP WebRequest."
                  expressionType="Notify"
                  name="JsonFormat"
                  typeConverter="ZappySys.Json.JsonFormat, ZappySys.Json, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="Enable custom proxy settings (If this is not set then system default proxy will be used. To disable proxy totally uncheck this option and check DoNotUseDefaultProxy option if available)"
                  expressionType="Notify"
                  name="UseProxy">false</property>
                <property
                  dataType="System.String"
                  description="Web URL of Proxy server (including port  if necessary). [e.g. http://myproxyserver:8080/]"
                  expressionType="Notify"
                  name="ProxyUrl"></property>
                <property
                  dataType="System.Boolean"
                  description="Enable passing userid and password to proxy server"
                  expressionType="Notify"
                  name="UseProxyCreds">false</property>
                <property
                  dataType="System.String"
                  description="Proxy username"
                  expressionType="Notify"
                  name="ProxyUserName"></property>
                <property
                  dataType="System.String"
                  description="Proxy password"
                  expressionType="Notify"
                  name="ProxyPassword"></property>
                <property
                  dataType="System.String"
                  description="If Service response support pagination using some sort of next url attribute then specify which attribute name in JSON Response string which holds next url. If no attribute found or its null then component will stop fetching next resultset"
                  expressionType="Notify"
                  name="NextUrlAttribute"></property>
                <property
                  dataType="System.String"
                  description="If Service response support pagination using some sort of prev/next url attribute then specify which previous link attribute name from JSON Response string which holds previous url."
                  expressionType="Notify"
                  name="PrevUrlAttribute"></property>
                <property
                  dataType="System.String"
                  description="Specifies value for NextUrlAttribute or StopIndicatorAttribute which indicates last page to stop pagination. If you have specified StopIndicatorAttribute then you can use Regular expression rather than static value to indicate last page. To use regular expression value of this property must start with regex= prefix. Example : regex=FALSE|N  (assuming you set StopIndicatorAttribute to something like $.hasMore)"
                  expressionType="Notify"
                  name="NextUrlStopIndicator"></property>
                <property
                  dataType="System.String"
                  description="Attribute name or expression for attribute which can be used as stop indicator (e.g. hasmore --or-- $.pagination.hasmore). If this value is blank then NextUrlAttribute is used"
                  expressionType="Notify"
                  name="StopIndicatorAttribute"></property>
                <property
                  dataType="System.String"
                  description="If you want to include certain text (or parameters) at the end of Next url then specify this attribute (e.g. &amp;format=json)"
                  expressionType="Notify"
                  name="NextUrlSuffix"></property>
                <property
                  dataType="System.Int32"
                  description="This property indicates total number of milliseconds you want to wait before sending next request. This option allows you to adjust how many API calls can be made within certain timeframe. If your API Service has no limit then set this option to zero"
                  expressionType="Notify"
                  name="NextUrlWait">0</property>
                <property
                  dataType="System.Boolean"
                  description="If this option is true then component will continue without exception on 404 error (Url not found). This allows you to consume data gracefully."
                  expressionType="Notify"
                  name="ContinueOnUrlNotFoundError">false</property>
                <property
                  dataType="System.String"
                  description="Cookie Container can be used to maintain state between multiple web requests. Example: You can login to site like wordpress and then extract any private page content by simply passing authentication cookies using this variable."
                  expressionType="Notify"
                  name="CookieContainerVariable"></property>
                <property
                  dataType="System.Int32"
                  description="Http request Timeout in seconds. Set this to 0 if you want to use system default value (i.e. 100 seconds)"
                  expressionType="Notify"
                  name="RequestTimeout">0</property>
                <property
                  dataType="System.Int32"
                  description="Specifies which security protocol is supported for HTTPS communication. Using this option you can enable legacy protocol or enforce to use latest version of security protocol (Note: TLS 1.2 is only supported in SSIS 2014 or Higher)."
                  expressionType="Notify"
                  name="SecurityProtocol"
                  typeConverter="ZappySys.PowerPack.Common.HttpsSecurityProtocolType, ZappySys.PowerPack90, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="Enable support for gzip or deflate compression. When you check this option compressed response automatically de-compressed saving bandwidth. This option is only valid if web server supports compressed response stream. Check your API documentation for more information."
                  expressionType="Notify"
                  name="EnableCompressionSupport">true</property>
                <property
                  dataType="System.Boolean"
                  description="Ignore SSL certificate related errors. Example: if you getting SSL/TLS errors because of certificate expired or certificate is not from trusted authority or certificate is self-signed. By checking this option you will not get SSL/TLS error."
                  expressionType="Notify"
                  name="IgnoreCertificateErrors">false</property>
                <property
                  dataType="System.Boolean"
                  description="Use connection to pass credentials for authentication (e.g. Use UserID/Password or Use OAuth Protocol for token based approach)"
                  expressionType="Notify"
                  name="UseConnection">false</property>
                <property
                  dataType="System.Int32"
                  description="Specified how you want to loop through multiple pages returned by REST API."
                  expressionType="Notify"
                  name="PagingMode"
                  typeConverter="ZappySys.Common.RestApiPagingMode, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.String"
                  description="e.g. Type page_num if URL looks like this =&gt; http://abc.com/?page_num=1&amp;sort=true  (page number via query string)&#xA;--or-- Type &lt;%page%&gt; if page number is inside URL path like this =&gt; http://abc.com/1/?sort=true  (e.g. replace page number in url with placeholder http://abc.com/&lt;%page%&gt;/?sort=true)&#xA;Page number will be incremented by one for next URL until last page is reached or [Max Page Number] is reached"
                  expressionType="Notify"
                  name="PageNumberAttributeNameInUrl"></property>
                <property
                  dataType="System.Int32"
                  description="Maximum page number until which auto increment is allowed. Type zero for no limit. Next URL contains next page number (increment by one) until last page is detected or [Max Page Number] limit is reached."
                  expressionType="Notify"
                  name="MaxPageNumber">0</property>
                <property
                  dataType="System.String"
                  description="Variable name which will hold starting page number. This is ignored if you useing parameter name from query string to indicate page number."
                  expressionType="Notify"
                  name="StartPageNumberVariable"></property>
                <property
                  dataType="System.Int32"
                  description="Page counter increment. By default next page is incremented by one if this value is zero. You can also enter negative number if you want to decrease page counter."
                  expressionType="Notify"
                  name="PageNumberIncrement">1</property>
                <property
                  dataType="System.Int32"
                  description="Specified how you want detect last page."
                  expressionType="Notify"
                  name="PagingEndStrategy"
                  typeConverter="ZappySys.Common.UrlPagingEndDetectionStrategy, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">3</property>
                <property
                  dataType="System.Boolean"
                  description="Condition result to compare to detect last page. Set this property to True if you want detect last page if condition is true else set this to False."
                  expressionType="Notify"
                  name="LastPageWhenConditionEqualsTo">true</property>
                <property
                  dataType="System.Int32"
                  description="Minimum bytes expected from response."
                  expressionType="Notify"
                  name="ResponseMinBytes">0</property>
                <property
                  dataType="System.Int32"
                  description="Maximum bytes from response."
                  expressionType="Notify"
                  name="ResponseMaxBytes">3</property>
                <property
                  dataType="System.String"
                  description="Expected error message sub string from response."
                  expressionType="Notify"
                  name="ResponseErrorString">not found</property>
                <property
                  dataType="System.Int32"
                  description="Expected status code from response when page number you trying to access not found."
                  expressionType="Notify"
                  name="ResponseStatusCode">404</property>
                <property
                  dataType="System.Int32"
                  description="Maximum JSON records to fetch. Set this value to 0 for all records"
                  expressionType="Notify"
                  name="MaxRows">0</property>
                <property
                  dataType="System.String"
                  description="Enter expression here to filter data.(Example:  $.Users[*].UserName ) This will fetch User names from users records"
                  expressionType="Notify"
                  name="Filter"
                  UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">$.things.animals.other[*]</property>
                <property
                  dataType="System.Boolean"
                  description="Use this option to include parent properties (Non array) in the output along with Filtered Rows"
                  expressionType="Notify"
                  name="IncludeParentColumns">true</property>
                <property
                  dataType="System.Boolean"
                  description="By default child and parent information is not included in the output if children not found for specified expression. For example if you want to extract all orders from all customers nodes then you can type $.Customers[*].Orders[*]. This will fetch all orders from all customers. By default customers records without orders wont be included in the output. If you want to include those customers where orders not found then check this option (Output null information for order attributes). This behavior is similar to LEFT OUTER JOIN in SQL (Left side is parent, right side is child). This option is ***resource intensive*** so only check if you really care about this behavior."
                  expressionType="Notify"
                  name="IncludeParentColumnsWhenChildMissing">false</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to output parent columns which are array. By default any parent column which is an array is not included in output. See also FilterForParentColumnsWithArrayType property if you set this property"
                  expressionType="Notify"
                  name="IncludeParentColumnsWithArrayType">true</property>
                <property
                  dataType="System.String"
                  description="Set this option to true if you want to output parent columns which are array. By default any parent column which is an array is not included in output. See also FilterForParentColumnsWithArrayType property if you set this property"
                  expressionType="Notify"
                  name="FilterForParentColumnsWithArrayType">[1]</property>
                <property
                  dataType="System.String"
                  description="Prefix for parent column name. This option is only valid if you have set IncludeParentColumns=True"
                  expressionType="Notify"
                  name="ParentColumnPrefix">P_</property>
                <property
                  dataType="System.Boolean"
                  description="Throw error if property name specified in filter expression is missing. By default it will ignore any missing property errors."
                  expressionType="Notify"
                  name="ThrowErrorIfPropertyMissing">false</property>
                <property
                  dataType="System.Int32"
                  description="This property how many nested levels should be scanned to fetch various properties. 0=Scan all child levels."
                  expressionType="Notify"
                  name="MaxLevelsToScan">0</property>
                <property
                  dataType="System.String"
                  description="List comma separated property names from JSON document which you want to exclude from output. Specify parent property name to exclude all child nodes."
                  expressionType="Notify"
                  name="ExcludedProperties"></property>
                <property
                  dataType="System.String"
                  description="Property level separator used in generated property name. Use this if default separator is producing duplicate property name which is conflicting with existing name."
                  expressionType="Notify"
                  name="LevelSeparator">_</property>
                <property
                  dataType="System.Int32"
                  description="Compression format for source file (e.g. gzip, zip)"
                  expressionType="Notify"
                  name="FileCompressionType"
                  typeConverter="ZappySys.Common.FileCompressionType, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Int32"
                  description="Array Transformation you want to apply. Useful for case when you have 2-Dimensional arrays with rows/columns in separate arrays."
                  expressionType="Notify"
                  name="ArrayTransformationType"
                  typeConverter="ZappySys.Json.ArrayTransformType, ZappySys.Json, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.String"
                  description="Filter expression to use to extract column names for array transformation."
                  expressionType="Notify"
                  name="ArrayTransColumnNameFilter"></property>
                <property
                  dataType="System.String"
                  description="Filter expression for row values (Not applicable for simple array transformation)."
                  expressionType="Notify"
                  name="ArrayTransRowValueFilter"></property>
                <property
                  dataType="System.Boolean"
                  description="When you have 2D array but don't have column list specified in a separate array then use this option (e.g. { arr: [[10,11],[21,22]] } )."
                  expressionType="Notify"
                  name="ArrayTransEnableCustomColumns">false</property>
                <property
                  dataType="System.String"
                  description="When you have 2D array but don't have column list specified in a separate array then use specify column names here. Use comma separated list (e.g col1,col2,col3 ). Column name Order must match value order."
                  expressionType="Notify"
                  name="ArrayTransCustomColumns"></property>
                <property
                  dataType="System.String"
                  description="Specifies how custom date formatted strings are parsed when reading JSON."
                  expressionType="Notify"
                  name="DateFormatString"></property>
                <property
                  dataType="System.Int32"
                  description="Specifies how date formatted strings, e.g. Date(1198908717056) and 2012-03-21T05:40Z, are parsed when reading JSON."
                  expressionType="Notify"
                  name="DateParseHandling"
                  typeConverter="ZappySys.Common.DateParseHandling, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">1</property>
                <property
                  dataType="System.Boolean"
                  description="Output as raw JSON document rather than parsing individual fields. This option is helpful if you have documents stored in a file and you want to pass them downstream as raw JSON string rather than parsing into columns."
                  expressionType="Notify"
                  name="OutputRawDocument">false</property>
                <property
                  dataType="System.Boolean"
                  description="Indent JSON output so its easy to read."
                  expressionType="Notify"
                  name="IndentOutput">false</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to output FilePath. This option is ignored when you consume DirectValue or data from Url rather than local files. Output column name will be __FilePath"
                  expressionType="Notify"
                  name="OutputFilePath">false</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to output FileName. This option is ignored when you consume DirectValue or data from Url rather than local files. Output column name will be __FileName"
                  expressionType="Notify"
                  name="OutputFileName">true</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to move processed file to archive folder."
                  expressionType="Notify"
                  name="EnableArchiveFile">false</property>
                <property
                  dataType="System.String"
                  description="Folder path where you want to move processed file."
                  expressionType="Notify"
                  name="ArchiveFolderPath"></property>
                <property
                  dataType="System.Boolean"
                  description="Folder path where you want to move processed file."
                  expressionType="Notify"
                  name="OverwriteFileInArchiveFolder">false</property>
                <property
                  dataType="System.String"
                  description="File naming convention for archived file. By default it will same name as original source file processed. But you can control naming format using {%name%} and {%ext%} placeholders. e.g. {%name%}_processed{%ext%} or {%name%}{%ext%}.{{System::ContainerStartTime,yyyyMMdd_HHmmss_fff}}"
                  expressionType="Notify"
                  name="ArchiveFileNamingConvention"></property>
                <property
                  dataType="System.Boolean"
                  description="When this property is true then Column is converted to Row. Pivoted names will appear under  Pivot_Name column and values will appear under Pivot_Value field."
                  expressionType="Notify"
                  name="EnablePivot">false</property>
                <property
                  dataType="System.Int32"
                  description="Metadata scan mode controls how data type and length is determined. By default few records scanned to determine datatype/length. Changing ScanMode affects length/datatype accuracy."
                  expressionType="Notify"
                  name="MetaDataScanMode"
                  typeConverter="ZappySys.Common.Data.MetaDataScanMode, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Int32"
                  description="Length for all string column. This option is only valid for MetaDataScanMode=Custom"
                  expressionType="Notify"
                  name="MetaDataCustomLength">1000</property>
                <property
                  dataType="System.String"
                  name="UserComponentTypeName">ZappySys.PowerPack.Adapter.JsonSource.JsonSource, ZappySys.PowerPack110, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502</property>
              </properties>
              <outputs>
                <output
                  refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput]"
                  errorOrTruncationOperation="Error"
                  errorRowDisposition="FailComponent"
                  name="JsonSourceOutput"
                  truncationRowDisposition="FailComponent">
                  <outputColumns>
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_dobermann_name]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_dobermann_name]"
                      length="8"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_dobermann_name]"
                      name="P_things.animals_dogs_dobermann_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_dobermann_age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_dobermann_age]"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_dobermann_age]"
                      name="P_things.animals_dogs_dobermann_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_rottweiler_name]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_rottweiler_name]"
                      length="6"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_rottweiler_name]"
                      name="P_things.animals_dogs_rottweiler_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_rottweiler_age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_rottweiler_age]"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_rottweiler_age]"
                      name="P_things.animals_dogs_rottweiler_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_pitbull_name]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_pitbull_name]"
                      length="14"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_pitbull_name]"
                      name="P_things.animals_dogs_pitbull_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_pitbull_age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_pitbull_age]"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_dogs_pitbull_age]"
                      name="P_things.animals_dogs_pitbull_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_cat_name]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_cat_name]"
                      length="16"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_cat_name]"
                      name="P_things.animals_cat_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_cat_age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_cat_age]"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_cat_age]"
                      name="P_things.animals_cat_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_mouse_name]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_mouse_name]"
                      length="14"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_mouse_name]"
                      name="P_things.animals_mouse_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_mouse_age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_mouse_age]"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things.animals_mouse_age]"
                      name="P_things.animals_mouse_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things_cars]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things_cars]"
                      length="16"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[P_things_cars]"
                      name="P_things_cars" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[other]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[other]"
                      length="18"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].Columns[other]"
                      name="other" />
                  </outputColumns>
                  <externalMetadataColumns
                    isUsed="True">
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_dobermann_name]"
                      dataType="wstr"
                      length="8"
                      name="P_things.animals_dogs_dobermann_name" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_dobermann_age]"
                      dataType="i8"
                      name="P_things.animals_dogs_dobermann_age" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_rottweiler_name]"
                      dataType="wstr"
                      length="6"
                      name="P_things.animals_dogs_rottweiler_name" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_rottweiler_age]"
                      dataType="i8"
                      name="P_things.animals_dogs_rottweiler_age" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_pitbull_name]"
                      dataType="wstr"
                      length="14"
                      name="P_things.animals_dogs_pitbull_name" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_dogs_pitbull_age]"
                      dataType="i8"
                      name="P_things.animals_dogs_pitbull_age" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_cat_name]"
                      dataType="wstr"
                      length="16"
                      name="P_things.animals_cat_name" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_cat_age]"
                      dataType="i8"
                      name="P_things.animals_cat_age" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_mouse_name]"
                      dataType="wstr"
                      length="14"
                      name="P_things.animals_mouse_name" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things.animals_mouse_age]"
                      dataType="i8"
                      name="P_things.animals_mouse_age" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[P_things_cars]"
                      dataType="wstr"
                      length="16"
                      name="P_things_cars" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput].ExternalColumns[other]"
                      dataType="wstr"
                      length="18"
                      name="other" />
                  </externalMetadataColumns>
                </output>
                <output
                  refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output]"
                  isErrorOut="true"
                  name="JsonSource Error Output">
                  <outputColumns>
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_dobermann_name]"
                      dataType="wstr"
                      length="8"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_dobermann_name]"
                      name="P_things.animals_dogs_dobermann_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_dobermann_age]"
                      dataType="i8"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_dobermann_age]"
                      name="P_things.animals_dogs_dobermann_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_rottweiler_name]"
                      dataType="wstr"
                      length="6"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_rottweiler_name]"
                      name="P_things.animals_dogs_rottweiler_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_rottweiler_age]"
                      dataType="i8"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_rottweiler_age]"
                      name="P_things.animals_dogs_rottweiler_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_pitbull_name]"
                      dataType="wstr"
                      length="14"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_pitbull_name]"
                      name="P_things.animals_dogs_pitbull_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_pitbull_age]"
                      dataType="i8"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_dogs_pitbull_age]"
                      name="P_things.animals_dogs_pitbull_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_cat_name]"
                      dataType="wstr"
                      length="16"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_cat_name]"
                      name="P_things.animals_cat_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_cat_age]"
                      dataType="i8"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_cat_age]"
                      name="P_things.animals_cat_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_mouse_name]"
                      dataType="wstr"
                      length="14"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_mouse_name]"
                      name="P_things.animals_mouse_name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_mouse_age]"
                      dataType="i8"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things.animals_mouse_age]"
                      name="P_things.animals_mouse_age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things_cars]"
                      dataType="wstr"
                      length="16"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[P_things_cars]"
                      name="P_things_cars" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[other]"
                      dataType="wstr"
                      length="18"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[other]"
                      name="other" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[ErrorCode]"
                      dataType="i4"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[ErrorCode]"
                      name="ErrorCode"
                      specialFlags="1" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[ErrorColumn]"
                      dataType="i4"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[ErrorColumn]"
                      name="ErrorColumn"
                      specialFlags="2" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[ErrorColumnName]"
                      codePage="1252"
                      dataType="str"
                      length="128"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[ErrorColumnName]"
                      name="ErrorColumnName" />
                    <outputColumn
                      refId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[ErrorMessage]"
                      dataType="wstr"
                      length="1024"
                      lineageId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSource Error Output].Columns[ErrorMessage]"
                      name="ErrorMessage" />
                  </outputColumns>
                  <externalMetadataColumns />
                </output>
              </outputs>
            </component>
            <component
              refId="Package\JSON Flattening\Simple Flattening"
              componentClassID="DTS.ManagedComponentWrapper.3"
              contactInfo="JSON Source (REST API or File); ZappySys LLC (c) All Rights Reserved; SSIS PowerPack; http://www.zappysys.com/support"
              description="The JSON source is used to read data from JSON files, RESTful Web Service or direct JSON String."
              name="Simple Flattening"
              usesDispositions="true"
              version="25">
              <properties>
                <property
                  dataType="System.Int32"
                  description="LoggingMode determines how much information is logged during Package Execution. Set Logging mode to Debugging for maximum log."
                  expressionType="Notify"
                  name="LoggingMode"
                  typeConverter="ZappySys.PowerPack.Common.LoggingMode, ZappySys.PowerPack90, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="When you enable this property it will prefix timestamp before Log messages."
                  expressionType="Notify"
                  name="PrefixTimestamp">false</property>
                <property
                  dataType="System.Null"
                  expressionType="Notify"
                  name="SelfRef"
                  typeConverter="NOTBROWSABLE" />
                <property
                  dataType="System.Boolean"
                  description="Treat empty string as NULL for any numeric datatypes"
                  expressionType="Notify"
                  name="TreatBlankNumberAsNull">true</property>
                <property
                  dataType="System.Int32"
                  description="Defines how to read the JSON file or direct string"
                  expressionType="Notify"
                  name="AccessMode"
                  typeConverter="ZappySys.Common.Ssis.FileValueAccessMode, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.String"
                  description="Defines how to read the JSON file or direct string"
                  expressionType="Notify"
                  name="DirectValue"
                  UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">{
"things": {
		"animals" : {
				"dogs": { 
					"dobermann": { "name": "Nick", "age": 5 },
					"rottweiler": { "name": "Max", "age": 10 },
					"pitbull": { "name": "Charlie", "age": 15 }
				},
				"cat": {"name": "Scratchy", "age": 7},
				"mouse": {"name": "Squeeky", "age": 1 },
				"other": ["pig", "crocodile", "chicken"]
		},
		"cars": ["Audi", "Mercedez", "Volvo"]
	}
}</property>
                <property
                  dataType="System.String"
                  description="Variable name which holds JSON string"
                  expressionType="Notify"
                  name="ValueVariable"
                  typeConverter="ZappySys.PowerPack.Converters.VariableEditor,ZappySys.PowerPack110.UI,Version=1.0.0.0,Culture=neutral,PublicKeyToken=1903265a93eae502"></property>
                <property
                  dataType="System.String"
                  description="Variable name which holds data file path or url"
                  expressionType="Notify"
                  name="PathVariable"
                  typeConverter="ZappySys.PowerPack.Converters.VariableEditor,ZappySys.PowerPack110.UI,Version=1.0.0.0,Culture=neutral,PublicKeyToken=1903265a93eae502"></property>
                <property
                  dataType="System.String"
                  description="JSON file file path (e.g. c:\data\myfile.json) or pattern to process multiple files (e.g. c:\data\*.json)"
                  expressionType="Notify"
                  name="DirectPath"
                  UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"></property>
                <property
                  dataType="System.String"
                  description="Set this if you want to set custom Http headers. You may use variable anywhere in the header value using syntax {{User::YourVarName}}. Syntax of Header key value pair is : &amp;lt;request&amp;gt;&amp;lt;header&amp;gt;&amp;lt;name&amp;gt;x-myheader-1&amp;lt;/name&amp;gt;&amp;lt;value&amp;gt;AAA&amp;lt;/value&amp;gt;&amp;lt;/header&amp;gt; &amp;lt;header&amp;gt;&amp;lt;name&amp;gt;x-myheader-2&amp;lt;/name&amp;gt;&amp;lt;value&amp;gt;BBB&amp;lt;/value&amp;gt;&amp;lt;/header&amp;gt;&amp;lt;/request&amp;gt;"
                  expressionType="Notify"
                  name="HttpHeaders">&lt;request&gt;&lt;header&gt;&lt;name&gt;Accept&lt;/name&gt;&lt;value&gt;*/*&lt;/value&gt;&lt;/header&gt;&lt;header&gt;&lt;name&gt;Cache-Control&lt;/name&gt;&lt;value&gt;no-cache&lt;/value&gt;&lt;/header&gt;&lt;/request&gt;</property>
                <property
                  dataType="System.String"
                  description="User defined data you wish to send along with your HTTP Request (e.g. Upload file data, Form POST data). Usually you have to set content-type of your data but if you select RequestMethod=POST then system will automatically set content-type=application/x-www-form-urlencoded."
                  expressionType="Notify"
                  name="HttpRequestData"></property>
                <property
                  dataType="System.String"
                  description="Http Web Request Method (e.g. POST, GET, PUT, LIST, DELETE...). Refer your API documentation if you are not sure which method you have to use."
                  expressionType="Notify"
                  name="HttpRequestMethod">GET</property>
                <property
                  dataType="System.Int32"
                  description="Specifies content type for data you wish to POST. If you select Default option then system default content type will be used (i.e. application/x-www-form-urlencoded). If you specify Content-Type header along with this option then header value takes precedence."
                  expressionType="Notify"
                  name="HttpRequestContentType"
                  typeConverter="ZappySys.Common.Web.HttpRequestContentType, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Int32"
                  description="Data format coming from HTTP Response. This is useful for example when you have OData service and you want to automatically consume all pages of data using odata.netUrl. Setting JsonFormat=Odata will automatically do it for you. This setting is only applicable if JSON is coming from HTTP WebRequest."
                  expressionType="Notify"
                  name="JsonFormat"
                  typeConverter="ZappySys.Json.JsonFormat, ZappySys.Json, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="Enable custom proxy settings (If this is not set then system default proxy will be used. To disable proxy totally uncheck this option and check DoNotUseDefaultProxy option if available)"
                  expressionType="Notify"
                  name="UseProxy">false</property>
                <property
                  dataType="System.String"
                  description="Web URL of Proxy server (including port  if necessary). [e.g. http://myproxyserver:8080/]"
                  expressionType="Notify"
                  name="ProxyUrl"></property>
                <property
                  dataType="System.Boolean"
                  description="Enable passing userid and password to proxy server"
                  expressionType="Notify"
                  name="UseProxyCreds">false</property>
                <property
                  dataType="System.String"
                  description="Proxy username"
                  expressionType="Notify"
                  name="ProxyUserName"></property>
                <property
                  dataType="System.String"
                  description="Proxy password"
                  expressionType="Notify"
                  name="ProxyPassword"></property>
                <property
                  dataType="System.String"
                  description="If Service response support pagination using some sort of next url attribute then specify which attribute name in JSON Response string which holds next url. If no attribute found or its null then component will stop fetching next resultset"
                  expressionType="Notify"
                  name="NextUrlAttribute"></property>
                <property
                  dataType="System.String"
                  description="If Service response support pagination using some sort of prev/next url attribute then specify which previous link attribute name from JSON Response string which holds previous url."
                  expressionType="Notify"
                  name="PrevUrlAttribute"></property>
                <property
                  dataType="System.String"
                  description="Specifies value for NextUrlAttribute or StopIndicatorAttribute which indicates last page to stop pagination. If you have specified StopIndicatorAttribute then you can use Regular expression rather than static value to indicate last page. To use regular expression value of this property must start with regex= prefix. Example : regex=FALSE|N  (assuming you set StopIndicatorAttribute to something like $.hasMore)"
                  expressionType="Notify"
                  name="NextUrlStopIndicator"></property>
                <property
                  dataType="System.String"
                  description="Attribute name or expression for attribute which can be used as stop indicator (e.g. hasmore --or-- $.pagination.hasmore). If this value is blank then NextUrlAttribute is used"
                  expressionType="Notify"
                  name="StopIndicatorAttribute"></property>
                <property
                  dataType="System.String"
                  description="If you want to include certain text (or parameters) at the end of Next url then specify this attribute (e.g. &amp;format=json)"
                  expressionType="Notify"
                  name="NextUrlSuffix"></property>
                <property
                  dataType="System.Int32"
                  description="This property indicates total number of milliseconds you want to wait before sending next request. This option allows you to adjust how many API calls can be made within certain timeframe. If your API Service has no limit then set this option to zero"
                  expressionType="Notify"
                  name="NextUrlWait">0</property>
                <property
                  dataType="System.Boolean"
                  description="If this option is true then component will continue without exception on 404 error (Url not found). This allows you to consume data gracefully."
                  expressionType="Notify"
                  name="ContinueOnUrlNotFoundError">false</property>
                <property
                  dataType="System.String"
                  description="Cookie Container can be used to maintain state between multiple web requests. Example: You can login to site like wordpress and then extract any private page content by simply passing authentication cookies using this variable."
                  expressionType="Notify"
                  name="CookieContainerVariable"></property>
                <property
                  dataType="System.Int32"
                  description="Http request Timeout in seconds. Set this to 0 if you want to use system default value (i.e. 100 seconds)"
                  expressionType="Notify"
                  name="RequestTimeout">0</property>
                <property
                  dataType="System.Int32"
                  description="Specifies which security protocol is supported for HTTPS communication. Using this option you can enable legacy protocol or enforce to use latest version of security protocol (Note: TLS 1.2 is only supported in SSIS 2014 or Higher)."
                  expressionType="Notify"
                  name="SecurityProtocol"
                  typeConverter="ZappySys.PowerPack.Common.HttpsSecurityProtocolType, ZappySys.PowerPack90, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="Enable support for gzip or deflate compression. When you check this option compressed response automatically de-compressed saving bandwidth. This option is only valid if web server supports compressed response stream. Check your API documentation for more information."
                  expressionType="Notify"
                  name="EnableCompressionSupport">true</property>
                <property
                  dataType="System.Boolean"
                  description="Ignore SSL certificate related errors. Example: if you getting SSL/TLS errors because of certificate expired or certificate is not from trusted authority or certificate is self-signed. By checking this option you will not get SSL/TLS error."
                  expressionType="Notify"
                  name="IgnoreCertificateErrors">false</property>
                <property
                  dataType="System.Boolean"
                  description="Use connection to pass credentials for authentication (e.g. Use UserID/Password or Use OAuth Protocol for token based approach)"
                  expressionType="Notify"
                  name="UseConnection">false</property>
                <property
                  dataType="System.Int32"
                  description="Specified how you want to loop through multiple pages returned by REST API."
                  expressionType="Notify"
                  name="PagingMode"
                  typeConverter="ZappySys.Common.RestApiPagingMode, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.String"
                  description="e.g. Type page_num if URL looks like this =&gt; http://abc.com/?page_num=1&amp;sort=true  (page number via query string)&#xA;--or-- Type &lt;%page%&gt; if page number is inside URL path like this =&gt; http://abc.com/1/?sort=true  (e.g. replace page number in url with placeholder http://abc.com/&lt;%page%&gt;/?sort=true)&#xA;Page number will be incremented by one for next URL until last page is reached or [Max Page Number] is reached"
                  expressionType="Notify"
                  name="PageNumberAttributeNameInUrl"></property>
                <property
                  dataType="System.Int32"
                  description="Maximum page number until which auto increment is allowed. Type zero for no limit. Next URL contains next page number (increment by one) until last page is detected or [Max Page Number] limit is reached."
                  expressionType="Notify"
                  name="MaxPageNumber">0</property>
                <property
                  dataType="System.String"
                  description="Variable name which will hold starting page number. This is ignored if you useing parameter name from query string to indicate page number."
                  expressionType="Notify"
                  name="StartPageNumberVariable"></property>
                <property
                  dataType="System.Int32"
                  description="Page counter increment. By default next page is incremented by one if this value is zero. You can also enter negative number if you want to decrease page counter."
                  expressionType="Notify"
                  name="PageNumberIncrement">1</property>
                <property
                  dataType="System.Int32"
                  description="Specified how you want detect last page."
                  expressionType="Notify"
                  name="PagingEndStrategy"
                  typeConverter="ZappySys.Common.UrlPagingEndDetectionStrategy, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">3</property>
                <property
                  dataType="System.Boolean"
                  description="Condition result to compare to detect last page. Set this property to True if you want detect last page if condition is true else set this to False."
                  expressionType="Notify"
                  name="LastPageWhenConditionEqualsTo">true</property>
                <property
                  dataType="System.Int32"
                  description="Minimum bytes expected from response."
                  expressionType="Notify"
                  name="ResponseMinBytes">0</property>
                <property
                  dataType="System.Int32"
                  description="Maximum bytes from response."
                  expressionType="Notify"
                  name="ResponseMaxBytes">3</property>
                <property
                  dataType="System.String"
                  description="Expected error message sub string from response."
                  expressionType="Notify"
                  name="ResponseErrorString">not found</property>
                <property
                  dataType="System.Int32"
                  description="Expected status code from response when page number you trying to access not found."
                  expressionType="Notify"
                  name="ResponseStatusCode">404</property>
                <property
                  dataType="System.Int32"
                  description="Maximum JSON records to fetch. Set this value to 0 for all records"
                  expressionType="Notify"
                  name="MaxRows">0</property>
                <property
                  dataType="System.String"
                  description="Enter expression here to filter data.(Example:  $.Users[*].UserName ) This will fetch User names from users records"
                  expressionType="Notify"
                  name="Filter"
                  UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"></property>
                <property
                  dataType="System.Boolean"
                  description="Use this option to include parent properties (Non array) in the output along with Filtered Rows"
                  expressionType="Notify"
                  name="IncludeParentColumns">true</property>
                <property
                  dataType="System.Boolean"
                  description="By default child and parent information is not included in the output if children not found for specified expression. For example if you want to extract all orders from all customers nodes then you can type $.Customers[*].Orders[*]. This will fetch all orders from all customers. By default customers records without orders wont be included in the output. If you want to include those customers where orders not found then check this option (Output null information for order attributes). This behavior is similar to LEFT OUTER JOIN in SQL (Left side is parent, right side is child). This option is ***resource intensive*** so only check if you really care about this behavior."
                  expressionType="Notify"
                  name="IncludeParentColumnsWhenChildMissing">false</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to output parent columns which are array. By default any parent column which is an array is not included in output. See also FilterForParentColumnsWithArrayType property if you set this property"
                  expressionType="Notify"
                  name="IncludeParentColumnsWithArrayType">true</property>
                <property
                  dataType="System.String"
                  description="Set this option to true if you want to output parent columns which are array. By default any parent column which is an array is not included in output. See also FilterForParentColumnsWithArrayType property if you set this property"
                  expressionType="Notify"
                  name="FilterForParentColumnsWithArrayType">[1]</property>
                <property
                  dataType="System.String"
                  description="Prefix for parent column name. This option is only valid if you have set IncludeParentColumns=True"
                  expressionType="Notify"
                  name="ParentColumnPrefix">P_</property>
                <property
                  dataType="System.Boolean"
                  description="Throw error if property name specified in filter expression is missing. By default it will ignore any missing property errors."
                  expressionType="Notify"
                  name="ThrowErrorIfPropertyMissing">false</property>
                <property
                  dataType="System.Int32"
                  description="This property how many nested levels should be scanned to fetch various properties. 0=Scan all child levels."
                  expressionType="Notify"
                  name="MaxLevelsToScan">0</property>
                <property
                  dataType="System.String"
                  description="List comma separated property names from JSON document which you want to exclude from output. Specify parent property name to exclude all child nodes."
                  expressionType="Notify"
                  name="ExcludedProperties"></property>
                <property
                  dataType="System.String"
                  description="Property level separator used in generated property name. Use this if default separator is producing duplicate property name which is conflicting with existing name."
                  expressionType="Notify"
                  name="LevelSeparator">_</property>
                <property
                  dataType="System.Int32"
                  description="Compression format for source file (e.g. gzip, zip)"
                  expressionType="Notify"
                  name="FileCompressionType"
                  typeConverter="ZappySys.Common.FileCompressionType, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Int32"
                  description="Array Transformation you want to apply. Useful for case when you have 2-Dimensional arrays with rows/columns in separate arrays."
                  expressionType="Notify"
                  name="ArrayTransformationType"
                  typeConverter="ZappySys.Json.ArrayTransformType, ZappySys.Json, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.String"
                  description="Filter expression to use to extract column names for array transformation."
                  expressionType="Notify"
                  name="ArrayTransColumnNameFilter"></property>
                <property
                  dataType="System.String"
                  description="Filter expression for row values (Not applicable for simple array transformation)."
                  expressionType="Notify"
                  name="ArrayTransRowValueFilter"></property>
                <property
                  dataType="System.Boolean"
                  description="When you have 2D array but don't have column list specified in a separate array then use this option (e.g. { arr: [[10,11],[21,22]] } )."
                  expressionType="Notify"
                  name="ArrayTransEnableCustomColumns">false</property>
                <property
                  dataType="System.String"
                  description="When you have 2D array but don't have column list specified in a separate array then use specify column names here. Use comma separated list (e.g col1,col2,col3 ). Column name Order must match value order."
                  expressionType="Notify"
                  name="ArrayTransCustomColumns"></property>
                <property
                  dataType="System.String"
                  description="Specifies how custom date formatted strings are parsed when reading JSON."
                  expressionType="Notify"
                  name="DateFormatString"></property>
                <property
                  dataType="System.Int32"
                  description="Specifies how date formatted strings, e.g. Date(1198908717056) and 2012-03-21T05:40Z, are parsed when reading JSON."
                  expressionType="Notify"
                  name="DateParseHandling"
                  typeConverter="ZappySys.Common.DateParseHandling, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">1</property>
                <property
                  dataType="System.Boolean"
                  description="Output as raw JSON document rather than parsing individual fields. This option is helpful if you have documents stored in a file and you want to pass them downstream as raw JSON string rather than parsing into columns."
                  expressionType="Notify"
                  name="OutputRawDocument">false</property>
                <property
                  dataType="System.Boolean"
                  description="Indent JSON output so its easy to read."
                  expressionType="Notify"
                  name="IndentOutput">false</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to output FilePath. This option is ignored when you consume DirectValue or data from Url rather than local files. Output column name will be __FilePath"
                  expressionType="Notify"
                  name="OutputFilePath">false</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to output FileName. This option is ignored when you consume DirectValue or data from Url rather than local files. Output column name will be __FileName"
                  expressionType="Notify"
                  name="OutputFileName">true</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to move processed file to archive folder."
                  expressionType="Notify"
                  name="EnableArchiveFile">false</property>
                <property
                  dataType="System.String"
                  description="Folder path where you want to move processed file."
                  expressionType="Notify"
                  name="ArchiveFolderPath"></property>
                <property
                  dataType="System.Boolean"
                  description="Folder path where you want to move processed file."
                  expressionType="Notify"
                  name="OverwriteFileInArchiveFolder">false</property>
                <property
                  dataType="System.String"
                  description="File naming convention for archived file. By default it will same name as original source file processed. But you can control naming format using {%name%} and {%ext%} placeholders. e.g. {%name%}_processed{%ext%} or {%name%}{%ext%}.{{System::ContainerStartTime,yyyyMMdd_HHmmss_fff}}"
                  expressionType="Notify"
                  name="ArchiveFileNamingConvention"></property>
                <property
                  dataType="System.Boolean"
                  description="When this property is true then Column is converted to Row. Pivoted names will appear under  Pivot_Name column and values will appear under Pivot_Value field."
                  expressionType="Notify"
                  name="EnablePivot">false</property>
                <property
                  dataType="System.Int32"
                  description="Metadata scan mode controls how data type and length is determined. By default few records scanned to determine datatype/length. Changing ScanMode affects length/datatype accuracy."
                  expressionType="Notify"
                  name="MetaDataScanMode"
                  typeConverter="ZappySys.Common.Data.MetaDataScanMode, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Int32"
                  description="Length for all string column. This option is only valid for MetaDataScanMode=Custom"
                  expressionType="Notify"
                  name="MetaDataCustomLength">1000</property>
                <property
                  dataType="System.String"
                  name="UserComponentTypeName">ZappySys.PowerPack.Adapter.JsonSource.JsonSource, ZappySys.PowerPack110, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502</property>
              </properties>
              <outputs>
                <output
                  refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput]"
                  errorOrTruncationOperation="Error"
                  errorRowDisposition="FailComponent"
                  name="JsonSourceOutput"
                  truncationRowDisposition="FailComponent">
                  <outputColumns>
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.dogs.dobermann.name]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.dogs.dobermann.name]"
                      length="4"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.dogs.dobermann.name]"
                      name="things.animals.dogs.dobermann.name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.dogs.dobermann.age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.dogs.dobermann.age]"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.dogs.dobermann.age]"
                      name="things.animals.dogs.dobermann.age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.dogs.rottweiler.name]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.dogs.rottweiler.name]"
                      length="3"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.dogs.rottweiler.name]"
                      name="things.animals.dogs.rottweiler.name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.dogs.rottweiler.age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.dogs.rottweiler.age]"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.dogs.rottweiler.age]"
                      name="things.animals.dogs.rottweiler.age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.dogs.pitbull.name]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.dogs.pitbull.name]"
                      length="7"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.dogs.pitbull.name]"
                      name="things.animals.dogs.pitbull.name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.dogs.pitbull.age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.dogs.pitbull.age]"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.dogs.pitbull.age]"
                      name="things.animals.dogs.pitbull.age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.cat.name]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.cat.name]"
                      length="8"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.cat.name]"
                      name="things.animals.cat.name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.cat.age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.cat.age]"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.cat.age]"
                      name="things.animals.cat.age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.mouse.name]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.mouse.name]"
                      length="7"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.mouse.name]"
                      name="things.animals.mouse.name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.mouse.age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.mouse.age]"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.mouse.age]"
                      name="things.animals.mouse.age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.other]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.other]"
                      length="43"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.animals.other]"
                      name="things.animals.other" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.cars]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.cars]"
                      length="41"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].Columns[things.cars]"
                      name="things.cars" />
                  </outputColumns>
                  <externalMetadataColumns
                    isUsed="True">
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.dogs.dobermann.name]"
                      dataType="wstr"
                      length="4"
                      name="things.animals.dogs.dobermann.name" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.dogs.dobermann.age]"
                      dataType="i8"
                      name="things.animals.dogs.dobermann.age" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.dogs.rottweiler.name]"
                      dataType="wstr"
                      length="3"
                      name="things.animals.dogs.rottweiler.name" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.dogs.rottweiler.age]"
                      dataType="i8"
                      name="things.animals.dogs.rottweiler.age" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.dogs.pitbull.name]"
                      dataType="wstr"
                      length="7"
                      name="things.animals.dogs.pitbull.name" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.dogs.pitbull.age]"
                      dataType="i8"
                      name="things.animals.dogs.pitbull.age" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.cat.name]"
                      dataType="wstr"
                      length="8"
                      name="things.animals.cat.name" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.cat.age]"
                      dataType="i8"
                      name="things.animals.cat.age" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.mouse.name]"
                      dataType="wstr"
                      length="7"
                      name="things.animals.mouse.name" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.mouse.age]"
                      dataType="i8"
                      name="things.animals.mouse.age" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.animals.other]"
                      dataType="wstr"
                      length="43"
                      name="things.animals.other" />
                    <externalMetadataColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput].ExternalColumns[things.cars]"
                      dataType="wstr"
                      length="41"
                      name="things.cars" />
                  </externalMetadataColumns>
                </output>
                <output
                  refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output]"
                  isErrorOut="true"
                  name="JsonSource Error Output">
                  <outputColumns>
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.dogs.dobermann.name]"
                      dataType="wstr"
                      length="4"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.dogs.dobermann.name]"
                      name="things.animals.dogs.dobermann.name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.dogs.dobermann.age]"
                      dataType="i8"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.dogs.dobermann.age]"
                      name="things.animals.dogs.dobermann.age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.dogs.rottweiler.name]"
                      dataType="wstr"
                      length="3"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.dogs.rottweiler.name]"
                      name="things.animals.dogs.rottweiler.name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.dogs.rottweiler.age]"
                      dataType="i8"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.dogs.rottweiler.age]"
                      name="things.animals.dogs.rottweiler.age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.dogs.pitbull.name]"
                      dataType="wstr"
                      length="7"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.dogs.pitbull.name]"
                      name="things.animals.dogs.pitbull.name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.dogs.pitbull.age]"
                      dataType="i8"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.dogs.pitbull.age]"
                      name="things.animals.dogs.pitbull.age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.cat.name]"
                      dataType="wstr"
                      length="8"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.cat.name]"
                      name="things.animals.cat.name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.cat.age]"
                      dataType="i8"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.cat.age]"
                      name="things.animals.cat.age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.mouse.name]"
                      dataType="wstr"
                      length="7"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.mouse.name]"
                      name="things.animals.mouse.name" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.mouse.age]"
                      dataType="i8"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.mouse.age]"
                      name="things.animals.mouse.age" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.other]"
                      dataType="wstr"
                      length="43"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.animals.other]"
                      name="things.animals.other" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.cars]"
                      dataType="wstr"
                      length="41"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[things.cars]"
                      name="things.cars" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[ErrorCode]"
                      dataType="i4"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[ErrorCode]"
                      name="ErrorCode"
                      specialFlags="1" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[ErrorColumn]"
                      dataType="i4"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[ErrorColumn]"
                      name="ErrorColumn"
                      specialFlags="2" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[ErrorColumnName]"
                      codePage="1252"
                      dataType="str"
                      length="128"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[ErrorColumnName]"
                      name="ErrorColumnName" />
                    <outputColumn
                      refId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[ErrorMessage]"
                      dataType="wstr"
                      length="1024"
                      lineageId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSource Error Output].Columns[ErrorMessage]"
                      name="ErrorMessage" />
                  </outputColumns>
                  <externalMetadataColumns />
                </output>
              </outputs>
            </component>
            <component
              refId="Package\JSON Flattening\Trash Destination"
              componentClassID="DTS.ManagedComponentWrapper.3"
              contactInfo="Trash Destination; ZappySys LLC (c) All Rights Reserved; SSIS PowerPack; http://www.zappysys.com/support"
              description="The trash destination is used to create dummy destination which ends data path without any processing."
              name="Trash Destination"
              version="2">
              <properties>
                <property
                  dataType="System.Int32"
                  description="LoggingMode determines how much information is logged during Package Execution. Set Logging mode to Debugging for maximum log."
                  expressionType="Notify"
                  name="LoggingMode"
                  typeConverter="ZappySys.PowerPack.Common.LoggingMode, ZappySys.PowerPack90, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="When you enable this property it will prefix timestamp before Log messages."
                  expressionType="Notify"
                  name="PrefixTimestamp">false</property>
                <property
                  dataType="System.Null"
                  expressionType="Notify"
                  name="SelfRef"
                  typeConverter="NOTBROWSABLE" />
                <property
                  dataType="System.String"
                  description="File path where you want to save data"
                  expressionType="Notify"
                  name="FilePath"></property>
                <property
                  dataType="System.Boolean"
                  description="Indicates if you want to save input data to comma separated text file"
                  expressionType="Notify"
                  name="SaveDataToFile">false</property>
                <property
                  dataType="System.Boolean"
                  description="Append data to file"
                  expressionType="Notify"
                  name="Append">false</property>
                <property
                  dataType="System.String"
                  description="RowSeparator"
                  expressionType="Notify"
                  name="RowSeparator">{NEWLINE}</property>
                <property
                  dataType="System.Boolean"
                  description="Indicates whether you want to overwrite target file if exists"
                  expressionType="Notify"
                  name="OverwriteFileIfExists">true</property>
                <property
                  dataType="System.String"
                  description="ColumnSeparator"
                  expressionType="Notify"
                  name="ColumnSeparator">,</property>
                <property
                  dataType="System.Boolean"
                  description="SupportUnicode"
                  expressionType="Notify"
                  name="SupportUnicode">true</property>
                <property
                  dataType="System.Boolean"
                  description="ColumnNamesInFirstRow"
                  expressionType="Notify"
                  name="ColumnNamesInFirstRow">true</property>
                <property
                  dataType="System.Boolean"
                  description="QuoteDataIfNeeded"
                  expressionType="Notify"
                  name="QuoteDataIfNeeded">true</property>
                <property
                  dataType="System.String"
                  description="Date time format string for any column with DT_DBDATETIME, DT_DBDATETIME2 or DB_DATE format"
                  expressionType="Notify"
                  name="DateTimeFormat">yyyy-MM-dd HH:mm:ss</property>
                <property
                  dataType="System.String"
                  name="UserComponentTypeName">ZappySys.PowerPack.Adapter.TrashDestination.TrashDestination, ZappySys.PowerPack110, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502</property>
              </properties>
              <inputs>
                <input
                  refId="Package\JSON Flattening\Trash Destination.Inputs[TrashDestinationInput]"
                  hasSideEffects="true"
                  name="TrashDestinationInput">
                  <externalMetadataColumns />
                </input>
              </inputs>
            </component>
            <component
              refId="Package\JSON Flattening\Trash Destination 1"
              componentClassID="DTS.ManagedComponentWrapper.3"
              contactInfo="Trash Destination; ZappySys LLC (c) All Rights Reserved; SSIS PowerPack; http://www.zappysys.com/support"
              description="The trash destination is used to create dummy destination which ends data path without any processing."
              name="Trash Destination 1"
              version="2">
              <properties>
                <property
                  dataType="System.Int32"
                  description="LoggingMode determines how much information is logged during Package Execution. Set Logging mode to Debugging for maximum log."
                  expressionType="Notify"
                  name="LoggingMode"
                  typeConverter="ZappySys.PowerPack.Common.LoggingMode, ZappySys.PowerPack90, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="When you enable this property it will prefix timestamp before Log messages."
                  expressionType="Notify"
                  name="PrefixTimestamp">false</property>
                <property
                  dataType="System.Null"
                  expressionType="Notify"
                  name="SelfRef"
                  typeConverter="NOTBROWSABLE" />
                <property
                  dataType="System.String"
                  description="File path where you want to save data"
                  expressionType="Notify"
                  name="FilePath"></property>
                <property
                  dataType="System.Boolean"
                  description="Indicates if you want to save input data to comma separated text file"
                  expressionType="Notify"
                  name="SaveDataToFile">false</property>
                <property
                  dataType="System.Boolean"
                  description="Append data to file"
                  expressionType="Notify"
                  name="Append">false</property>
                <property
                  dataType="System.String"
                  description="RowSeparator"
                  expressionType="Notify"
                  name="RowSeparator">{NEWLINE}</property>
                <property
                  dataType="System.Boolean"
                  description="Indicates whether you want to overwrite target file if exists"
                  expressionType="Notify"
                  name="OverwriteFileIfExists">true</property>
                <property
                  dataType="System.String"
                  description="ColumnSeparator"
                  expressionType="Notify"
                  name="ColumnSeparator">,</property>
                <property
                  dataType="System.Boolean"
                  description="SupportUnicode"
                  expressionType="Notify"
                  name="SupportUnicode">true</property>
                <property
                  dataType="System.Boolean"
                  description="ColumnNamesInFirstRow"
                  expressionType="Notify"
                  name="ColumnNamesInFirstRow">true</property>
                <property
                  dataType="System.Boolean"
                  description="QuoteDataIfNeeded"
                  expressionType="Notify"
                  name="QuoteDataIfNeeded">true</property>
                <property
                  dataType="System.String"
                  description="Date time format string for any column with DT_DBDATETIME, DT_DBDATETIME2 or DB_DATE format"
                  expressionType="Notify"
                  name="DateTimeFormat">yyyy-MM-dd HH:mm:ss</property>
                <property
                  dataType="System.String"
                  name="UserComponentTypeName">ZappySys.PowerPack.Adapter.TrashDestination.TrashDestination, ZappySys.PowerPack110, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502</property>
              </properties>
              <inputs>
                <input
                  refId="Package\JSON Flattening\Trash Destination 1.Inputs[TrashDestinationInput]"
                  hasSideEffects="true"
                  name="TrashDestinationInput">
                  <externalMetadataColumns />
                </input>
              </inputs>
            </component>
            <component
              refId="Package\JSON Flattening\Trash Destination 1 1"
              componentClassID="DTS.ManagedComponentWrapper.3"
              contactInfo="Trash Destination; ZappySys LLC (c) All Rights Reserved; SSIS PowerPack; http://www.zappysys.com/support"
              description="The trash destination is used to create dummy destination which ends data path without any processing."
              name="Trash Destination 1 1"
              version="2">
              <properties>
                <property
                  dataType="System.Int32"
                  description="LoggingMode determines how much information is logged during Package Execution. Set Logging mode to Debugging for maximum log."
                  expressionType="Notify"
                  name="LoggingMode"
                  typeConverter="ZappySys.PowerPack.Common.LoggingMode, ZappySys.PowerPack90, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="When you enable this property it will prefix timestamp before Log messages."
                  expressionType="Notify"
                  name="PrefixTimestamp">false</property>
                <property
                  dataType="System.Null"
                  expressionType="Notify"
                  name="SelfRef"
                  typeConverter="NOTBROWSABLE" />
                <property
                  dataType="System.String"
                  description="File path where you want to save data"
                  expressionType="Notify"
                  name="FilePath"></property>
                <property
                  dataType="System.Boolean"
                  description="Indicates if you want to save input data to comma separated text file"
                  expressionType="Notify"
                  name="SaveDataToFile">false</property>
                <property
                  dataType="System.Boolean"
                  description="Append data to file"
                  expressionType="Notify"
                  name="Append">false</property>
                <property
                  dataType="System.String"
                  description="RowSeparator"
                  expressionType="Notify"
                  name="RowSeparator">{NEWLINE}</property>
                <property
                  dataType="System.Boolean"
                  description="Indicates whether you want to overwrite target file if exists"
                  expressionType="Notify"
                  name="OverwriteFileIfExists">true</property>
                <property
                  dataType="System.String"
                  description="ColumnSeparator"
                  expressionType="Notify"
                  name="ColumnSeparator">,</property>
                <property
                  dataType="System.Boolean"
                  description="SupportUnicode"
                  expressionType="Notify"
                  name="SupportUnicode">true</property>
                <property
                  dataType="System.Boolean"
                  description="ColumnNamesInFirstRow"
                  expressionType="Notify"
                  name="ColumnNamesInFirstRow">true</property>
                <property
                  dataType="System.Boolean"
                  description="QuoteDataIfNeeded"
                  expressionType="Notify"
                  name="QuoteDataIfNeeded">true</property>
                <property
                  dataType="System.String"
                  description="Date time format string for any column with DT_DBDATETIME, DT_DBDATETIME2 or DB_DATE format"
                  expressionType="Notify"
                  name="DateTimeFormat">yyyy-MM-dd HH:mm:ss</property>
                <property
                  dataType="System.String"
                  name="UserComponentTypeName">ZappySys.PowerPack.Adapter.TrashDestination.TrashDestination, ZappySys.PowerPack110, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502</property>
              </properties>
              <inputs>
                <input
                  refId="Package\JSON Flattening\Trash Destination 1 1.Inputs[TrashDestinationInput]"
                  hasSideEffects="true"
                  name="TrashDestinationInput">
                  <externalMetadataColumns />
                </input>
              </inputs>
            </component>
          </components>
          <paths>
            <path
              refId="Package\JSON Flattening.Paths[JsonSourceOutput]"
              endId="Package\JSON Flattening\Trash Destination.Inputs[TrashDestinationInput]"
              name="JsonSourceOutput"
              startId="Package\JSON Flattening\Array Flattening with one element of other Array.Outputs[JsonSourceOutput]" />
            <path
              refId="Package\JSON Flattening.Paths[JsonSourceOutput1]"
              endId="Package\JSON Flattening\Trash Destination 1.Inputs[TrashDestinationInput]"
              name="JsonSourceOutput"
              startId="Package\JSON Flattening\Array Flattening.Outputs[JsonSourceOutput]" />
            <path
              refId="Package\JSON Flattening.Paths[JsonSourceOutput2]"
              endId="Package\JSON Flattening\Trash Destination 1 1.Inputs[TrashDestinationInput]"
              name="JsonSourceOutput"
              startId="Package\JSON Flattening\Simple Flattening.Outputs[JsonSourceOutput]" />
          </paths>
        </pipeline>
      </DTS:ObjectData>
    </DTS:Executable>
    <DTS:Executable
      DTS:refId="Package\XML Flattening"
      DTS:CreationName="SSIS.Pipeline.3"
      DTS:Description="Data Flow Task"
      DTS:DTSID="{1BD80F16-3A70-419B-A646-495B09D7EC34}"
      DTS:ExecutableType="SSIS.Pipeline.3"
      DTS:LocaleID="-1"
      DTS:ObjectName="XML Flattening"
      DTS:TaskContact="Performs high-performance data extraction, transformation and loading;Microsoft Corporation; Microsoft SQL Server; (C) Microsoft Corporation; All Rights Reserved;http://www.microsoft.com/sql/support/default.asp;1">
      <DTS:Variables />
      <DTS:ObjectData>
        <pipeline
          version="1">
          <components>
            <component
              refId="Package\XML Flattening\Array Flattening"
              componentClassID="DTS.ManagedComponentWrapper.3"
              contactInfo="XML Source (Web API or File); ZappySys LLC (c) All Rights Reserved; SSIS PowerPack; http://www.zappysys.com/support"
              description="The XML source is used to read data from XML files, XML REST/SOAP Web service or direct XML String."
              name="Array Flattening"
              usesDispositions="true"
              version="6">
              <properties>
                <property
                  dataType="System.Int32"
                  description="LoggingMode determines how much information is logged during Package Execution. Set Logging mode to Debugging for maximum log."
                  expressionType="Notify"
                  name="LoggingMode"
                  typeConverter="ZappySys.PowerPack.Common.LoggingMode, ZappySys.PowerPack90, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="When you enable this property it will prefix timestamp before Log messages."
                  expressionType="Notify"
                  name="PrefixTimestamp">false</property>
                <property
                  dataType="System.Null"
                  expressionType="Notify"
                  name="SelfRef"
                  typeConverter="NOTBROWSABLE" />
                <property
                  dataType="System.Boolean"
                  description="Treat empty string as NULL for any numeric datatypes"
                  expressionType="Notify"
                  name="TreatBlankNumberAsNull">true</property>
                <property
                  dataType="System.Int32"
                  description="Defines how to read the XML file or direct string"
                  expressionType="Notify"
                  name="AccessMode"
                  typeConverter="ZappySys.Common.Ssis.FileValueAccessMode, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.String"
                  description="Defines how to read the XML file or direct string"
                  expressionType="Notify"
                  name="DirectValue"
                  UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">&lt;things&gt;
	&lt;animals&gt;
		&lt;dogs&gt;
		  &lt;dobermann age="5"&gt;Nick&lt;/dobermann&gt;
		  &lt;rottweiler age="10"&gt;Max&lt;/rottweiler&gt;
		  &lt;pitbull age="15"&gt;Charlie&lt;/pitbull&gt;
		&lt;/dogs&gt;
		&lt;cat age="7"&gt;Scratchy&lt;/cat&gt;
		&lt;mouse age="1"&gt;Squeeky&lt;/mouse&gt;
		&lt;other&gt;
			&lt;animal&gt;pig&lt;/animal&gt;
			&lt;animal&gt;crocodile&lt;/animal&gt;
			&lt;animal&gt;chicken&lt;/animal&gt;
		&lt;/other&gt;
	&lt;/animals&gt;
	&lt;cars&gt;
		&lt;car&gt;Audi&lt;/car&gt;
		&lt;car&gt;Mercedes&lt;/car&gt;
		&lt;car&gt;Volvo&lt;/car&gt;
	&lt;/cars&gt;
&lt;/things&gt;</property>
                <property
                  dataType="System.String"
                  description="Variable name which holds XML string"
                  expressionType="Notify"
                  name="ValueVariable"
                  typeConverter="ZappySys.PowerPack.Converters.VariableEditor,ZappySys.PowerPack110.UI,Version=1.0.0.0,Culture=neutral,PublicKeyToken=1903265a93eae502"></property>
                <property
                  dataType="System.String"
                  description="Variable name which holds data file path or url"
                  expressionType="Notify"
                  name="PathVariable"
                  typeConverter="ZappySys.PowerPack.Converters.VariableEditor,ZappySys.PowerPack110.UI,Version=1.0.0.0,Culture=neutral,PublicKeyToken=1903265a93eae502"></property>
                <property
                  dataType="System.String"
                  description="XML file file path (e.g. c:\data\myfile.xml) or pattern to process multiple files (e.g. c:\data\*.xml)"
                  expressionType="Notify"
                  name="DirectPath"
                  UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"></property>
                <property
                  dataType="System.String"
                  description="Set this if you want to set custom Http headers. You may use variable anywhere in the header value using syntax {{User::YourVarName}}. Syntax of Header key value pair is : &amp;lt;request&amp;gt;&amp;lt;header&amp;gt;&amp;lt;name&amp;gt;x-myheader-1&amp;lt;/name&amp;gt;&amp;lt;value&amp;gt;AAA&amp;lt;/value&amp;gt;&amp;lt;/header&amp;gt; &amp;lt;header&amp;gt;&amp;lt;name&amp;gt;x-myheader-2&amp;lt;/name&amp;gt;&amp;lt;value&amp;gt;BBB&amp;lt;/value&amp;gt;&amp;lt;/header&amp;gt;&amp;lt;/request&amp;gt;"
                  expressionType="Notify"
                  name="HttpHeaders">&lt;request&gt;&lt;header&gt;&lt;name&gt;Accept&lt;/name&gt;&lt;value&gt;*/*&lt;/value&gt;&lt;/header&gt;&lt;header&gt;&lt;name&gt;Cache-Control&lt;/name&gt;&lt;value&gt;no-cache&lt;/value&gt;&lt;/header&gt;&lt;/request&gt;</property>
                <property
                  dataType="System.String"
                  description="User defined data you wish to send along with your HTTP Request (e.g. Upload file data, Form POST data). Usually you have to set content-type of your data but if you select RequestMethod=POST then system will automatically set content-type=application/x-www-form-urlencoded."
                  expressionType="Notify"
                  name="HttpRequestData"></property>
                <property
                  dataType="System.String"
                  description="Http Web Request Method (e.g. POST, GET, PUT, LIST, DELETE...). Refer your API documentation if you are not sure which method you have to use."
                  expressionType="Notify"
                  name="HttpRequestMethod">GET</property>
                <property
                  dataType="System.Int32"
                  description="Specifies content type for data you wish to POST. If you select Default option then system default content type will be used (i.e. application/x-www-form-urlencoded). If you specify Content-Type header along with this option then header value takes precedence."
                  expressionType="Notify"
                  name="HttpRequestContentType"
                  typeConverter="ZappySys.Common.Web.HttpRequestContentType, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Int32"
                  description="Data format coming from HTTP Response. This is useful for example when you have OData service and you want to automatically consume all pages of data using odata.netUrl. Setting JsonFormat=Odata will automatically do it for you. This setting is only applicable if XML is coming from HTTP WebRequest."
                  expressionType="Notify"
                  name="JsonFormat"
                  typeConverter="ZappySys.Json.JsonFormat, ZappySys.Json, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="Enable custom proxy settings (If this is not set then system default proxy will be used. To disable proxy totally uncheck this option and check DoNotUseDefaultProxy option if available)"
                  expressionType="Notify"
                  name="UseProxy">false</property>
                <property
                  dataType="System.String"
                  description="Web URL of Proxy server (including port  if necessary). [e.g. http://myproxyserver:8080/]"
                  expressionType="Notify"
                  name="ProxyUrl"></property>
                <property
                  dataType="System.Boolean"
                  description="Enable passing userid and password to proxy server"
                  expressionType="Notify"
                  name="UseProxyCreds">false</property>
                <property
                  dataType="System.String"
                  description="Proxy username"
                  expressionType="Notify"
                  name="ProxyUserName"></property>
                <property
                  dataType="System.String"
                  description="Proxy password"
                  expressionType="Notify"
                  name="ProxyPassword"></property>
                <property
                  dataType="System.String"
                  description="If Service response support pagination using some sort of next url attribute then specify which attribute name in XML Response string which holds next url. If no attribute found or its null then component will stop fetching next resultset"
                  expressionType="Notify"
                  name="NextUrlAttribute"></property>
                <property
                  dataType="System.String"
                  description="If Service response support pagination using some sort of prev/next url attribute then specify which previous link attribute name from XML Response string which holds previous url."
                  expressionType="Notify"
                  name="PrevUrlAttribute"></property>
                <property
                  dataType="System.String"
                  description="Specifies value for NextUrlAttribute or StopIndicatorAttribute which indicates last page to stop pagination. If you have specified StopIndicatorAttribute then you can use Regular expression rather than static value to indicate last page. To use regular expression value of this property must start with regex= prefix. Example : regex=FALSE|N  (assuming you set StopIndicatorAttribute to something like $.hasMore)"
                  expressionType="Notify"
                  name="NextUrlStopIndicator"></property>
                <property
                  dataType="System.String"
                  description="Attribute name or expression for attribute which can be used as stop indicator (e.g. hasmore --or-- $.pagination.hasmore). If this value is blank then NextUrlAttribute is used"
                  expressionType="Notify"
                  name="StopIndicatorAttribute"></property>
                <property
                  dataType="System.String"
                  description="If you want to include certain text (or parameters) at the end of Next url then specify this attribute (e.g. &amp;format=xml)"
                  expressionType="Notify"
                  name="NextUrlSuffix"></property>
                <property
                  dataType="System.Int32"
                  description="This property indicates total number of milliseconds you want to wait before sending next request. This option allows you to adjust how many API calls can be made within certain timeframe. If your API Service has no limit then set this option to zero"
                  expressionType="Notify"
                  name="NextUrlWait">0</property>
                <property
                  dataType="System.Boolean"
                  description="If this option is true then component will continue without exception on 404 error (Url not found). This allows you to consume data gracefully."
                  expressionType="Notify"
                  name="ContinueOnUrlNotFoundError">false</property>
                <property
                  dataType="System.String"
                  description="Cookie Container can be used to maintain state between multiple web requests. Example: You can login to site like wordpress and then extract any private page content by simply passing authentication cookies using this variable."
                  expressionType="Notify"
                  name="CookieContainerVariable"></property>
                <property
                  dataType="System.Int32"
                  description="Http request Timeout in seconds. Set this to 0 if you want to use system default value (i.e. 100 seconds)"
                  expressionType="Notify"
                  name="RequestTimeout">0</property>
                <property
                  dataType="System.Int32"
                  description="Specifies which security protocol is supported for HTTPS communication. Using this option you can enable legacy protocol or enforce to use latest version of security protocol (Note: TLS 1.2 is only supported in SSIS 2014 or Higher)."
                  expressionType="Notify"
                  name="SecurityProtocol"
                  typeConverter="ZappySys.PowerPack.Common.HttpsSecurityProtocolType, ZappySys.PowerPack90, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="Enable support for gzip or deflate compression. When you check this option compressed response automatically de-compressed saving bandwidth. This option is only valid if web server supports compressed response stream. Check your API documentation for more information."
                  expressionType="Notify"
                  name="EnableCompressionSupport">true</property>
                <property
                  dataType="System.Boolean"
                  description="Ignore SSL certificate related errors. Example: if you getting SSL/TLS errors because of certificate expired or certificate is not from trusted authority or certificate is self-signed. By checking this option you will not get SSL/TLS error."
                  expressionType="Notify"
                  name="IgnoreCertificateErrors">false</property>
                <property
                  dataType="System.Boolean"
                  description="Use connection to pass credentials for authentication (e.g. Use UserID/Password or Use OAuth Protocol for token based approach)"
                  expressionType="Notify"
                  name="UseConnection">false</property>
                <property
                  dataType="System.Int32"
                  description="Specified how you want to loop through multiple pages returned by REST API."
                  expressionType="Notify"
                  name="PagingMode"
                  typeConverter="ZappySys.Common.RestApiPagingMode, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.String"
                  description="e.g. Type page_num if URL looks like this =&gt; http://abc.com/?page_num=1&amp;sort=true  (page number via query string)&#xA;--or-- Type &lt;%page%&gt; if page number is inside URL path like this =&gt; http://abc.com/1/?sort=true  (e.g. replace page number in url with placeholder http://abc.com/&lt;%page%&gt;/?sort=true)&#xA;Page number will be incremented by one for next URL until last page is reached or [Max Page Number] is reached"
                  expressionType="Notify"
                  name="PageNumberAttributeNameInUrl"></property>
                <property
                  dataType="System.Int32"
                  description="Maximum page number until which auto increment is allowed. Type zero for no limit. Next URL contains next page number (increment by one) until last page is detected or [Max Page Number] limit is reached."
                  expressionType="Notify"
                  name="MaxPageNumber">0</property>
                <property
                  dataType="System.String"
                  description="Variable name which will hold starting page number. This is ignored if you useing parameter name from query string to indicate page number."
                  expressionType="Notify"
                  name="StartPageNumberVariable"></property>
                <property
                  dataType="System.Int32"
                  description="Page counter increment. By default next page is incremented by one if this value is zero. You can also enter negative number if you want to decrease page counter."
                  expressionType="Notify"
                  name="PageNumberIncrement">1</property>
                <property
                  dataType="System.Int32"
                  description="Specified how you want detect last page."
                  expressionType="Notify"
                  name="PagingEndStrategy"
                  typeConverter="ZappySys.Common.UrlPagingEndDetectionStrategy, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">3</property>
                <property
                  dataType="System.Boolean"
                  description="Condition result to compare to detect last page. Set this property to True if you want detect last page if condition is true else set this to False."
                  expressionType="Notify"
                  name="LastPageWhenConditionEqualsTo">true</property>
                <property
                  dataType="System.Int32"
                  description="Minimum bytes expected from response."
                  expressionType="Notify"
                  name="ResponseMinBytes">0</property>
                <property
                  dataType="System.Int32"
                  description="Maximum bytes from response."
                  expressionType="Notify"
                  name="ResponseMaxBytes">3</property>
                <property
                  dataType="System.String"
                  description="Expected error message sub string from response."
                  expressionType="Notify"
                  name="ResponseErrorString">not found</property>
                <property
                  dataType="System.Int32"
                  description="Expected status code from response when page number you trying to access not found."
                  expressionType="Notify"
                  name="ResponseStatusCode">404</property>
                <property
                  dataType="System.Int32"
                  description="Maximum XML records to fetch. Set this value to 0 for all records"
                  expressionType="Notify"
                  name="MaxRows">0</property>
                <property
                  dataType="System.String"
                  description="Enter expression here to filter data.(Example:  $.Users[*].UserName ) This will fetch User names from users records"
                  expressionType="Notify"
                  name="Filter"
                  UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">$.things.animals.other.animal[*]</property>
                <property
                  dataType="System.Boolean"
                  description="Use this option to include parent properties (Non array) in the output along with Filtered Rows"
                  expressionType="Notify"
                  name="IncludeParentColumns">true</property>
                <property
                  dataType="System.Boolean"
                  description="By default child and parent information is not included in the output if children not found for specified expression. For example if you want to extract all orders from all customers nodes then you can type $.Customers[*].Orders[*]. This will fetch all orders from all customers. By default customers records without orders wont be included in the output. If you want to include those customers where orders not found then check this option (Output null information for order attributes). This behavior is similar to LEFT OUTER JOIN in SQL (Left side is parent, right side is child). This option is ***resource intensive*** so only check if you really care about this behavior."
                  expressionType="Notify"
                  name="IncludeParentColumnsWhenChildMissing">false</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to output parent columns which are array. By default any parent column which is an array is not included in output. See also FilterForParentColumnsWithArrayType property if you set this property"
                  expressionType="Notify"
                  name="IncludeParentColumnsWithArrayType">false</property>
                <property
                  dataType="System.String"
                  description="Set this option to true if you want to output parent columns which are array. By default any parent column which is an array is not included in output. See also FilterForParentColumnsWithArrayType property if you set this property"
                  expressionType="Notify"
                  name="FilterForParentColumnsWithArrayType"></property>
                <property
                  dataType="System.String"
                  description="Prefix for parent column name. This option is only valid if you have set IncludeParentColumns=True"
                  expressionType="Notify"
                  name="ParentColumnPrefix">P_</property>
                <property
                  dataType="System.Boolean"
                  description="Throw error if property name specified in filter expression is missing. By default it will ignore any missing property errors."
                  expressionType="Notify"
                  name="ThrowErrorIfPropertyMissing">false</property>
                <property
                  dataType="System.Int32"
                  description="This property how many nested levels should be scanned to fetch various properties. 0=Scan all child levels."
                  expressionType="Notify"
                  name="MaxLevelsToScan">0</property>
                <property
                  dataType="System.String"
                  description="List comma separated property names from XML document which you want to exclude from output. Specify parent property name to exclude all child nodes."
                  expressionType="Notify"
                  name="ExcludedProperties">@xsi:nil,soap:Envelope_@xmlns:xsd,soap:Envelope_@xmlns:xsi,P_soap:Envelope_@xmlns:xsd,P_soap:Envelope_@xmlns:xsi,P_soap:Envelope_@xmlns:soap,P_?xml_@version,P_?xml_@encoding</property>
                <property
                  dataType="System.String"
                  description="Property level separator used in generated property name. Use this if default separator is producing duplicate property name which is conflicting with existing name."
                  expressionType="Notify"
                  name="LevelSeparator">_</property>
                <property
                  dataType="System.Int32"
                  description="Compression format for source file (e.g. gzip, zip)"
                  expressionType="Notify"
                  name="FileCompressionType"
                  typeConverter="ZappySys.Common.FileCompressionType, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Int32"
                  description="Array Transformation you want to apply. Useful for case when you have 2-Dimensional arrays with rows/columns in separate arrays."
                  expressionType="Notify"
                  name="ArrayTransformationType"
                  typeConverter="ZappySys.Json.ArrayTransformType, ZappySys.Json, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.String"
                  description="Filter expression to use to extract column names for array transformation."
                  expressionType="Notify"
                  name="ArrayTransColumnNameFilter"></property>
                <property
                  dataType="System.String"
                  description="Filter expression for row values (Not applicable for simple array transformation)."
                  expressionType="Notify"
                  name="ArrayTransRowValueFilter"></property>
                <property
                  dataType="System.Boolean"
                  description="When you have 2D array but don't have column list specified in a separate array then use this option (e.g. { arr: [[10,11],[21,22]] } )."
                  expressionType="Notify"
                  name="ArrayTransEnableCustomColumns">false</property>
                <property
                  dataType="System.String"
                  description="When you have 2D array but don't have column list specified in a separate array then use specify column names here. Use comma separated list (e.g col1,col2,col3 ). Column name Order must match value order."
                  expressionType="Notify"
                  name="ArrayTransCustomColumns"></property>
                <property
                  dataType="System.String"
                  description="Specifies how custom date formatted strings are parsed when reading JSON."
                  expressionType="Notify"
                  name="DateFormatString"></property>
                <property
                  dataType="System.Int32"
                  description="Specifies how date formatted strings, e.g. Date(1198908717056) and 2012-03-21T05:40Z, are parsed when reading JSON."
                  expressionType="Notify"
                  name="DateParseHandling"
                  typeConverter="ZappySys.Common.DateParseHandling, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">1</property>
                <property
                  dataType="System.Boolean"
                  description="Output as raw JSON document rather than parsing individual fields. This option is helpful if you have documents stored in a file and you want to pass them downstream as raw JSON string rather than parsing into columns."
                  expressionType="Notify"
                  name="OutputRawDocument">false</property>
                <property
                  dataType="System.Boolean"
                  description="Indent JSON output so its easy to read."
                  expressionType="Notify"
                  name="IndentOutput">false</property>
                <property
                  dataType="System.Boolean"
                  description="Output convert raw XML document to JSON (Recommended). This option is ignored if OutputRawDocument=false. Once you do that any further parsing downstream must use JSON Parser rather than XML Parser."
                  expressionType="Notify"
                  name="ConvertFormat">false</property>
                <property
                  dataType="System.String"
                  description="Comma separated element names which you want to treat as Array regardless how many times element repeats at the same level. By default only those elements are treated as array if element appears more than once at the same level."
                  expressionType="Notify"
                  name="ElementsToTreatAsArray">animal</property>
                <property
                  dataType="System.Boolean"
                  description="Enables memory optimized mode. You may lose certain functionality when you turn on this. Only turn on this feature if you getting out of memory error."
                  expressionType="Notify"
                  name="EnablePerformanceMode">false</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to output FilePath. This option is ignored when you consume DirectValue or data from Url rather than local files. Output column name will be __FilePath"
                  expressionType="Notify"
                  name="OutputFilePath">false</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to output FileName. This option is ignored when you consume DirectValue or data from Url rather than local files. Output column name will be __FileName"
                  expressionType="Notify"
                  name="OutputFileName">true</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to move processed file to archive folder."
                  expressionType="Notify"
                  name="EnableArchiveFile">false</property>
                <property
                  dataType="System.String"
                  description="Folder path where you want to move processed file."
                  expressionType="Notify"
                  name="ArchiveFolderPath"></property>
                <property
                  dataType="System.Boolean"
                  description="Folder path where you want to move processed file."
                  expressionType="Notify"
                  name="OverwriteFileInArchiveFolder">false</property>
                <property
                  dataType="System.String"
                  description="File naming convention for archived file. By default it will same name as original source file processed. But you can control naming format using {%name%} and {%ext%} placeholders. e.g. {%name%}_processed{%ext%} or {%name%}{%ext%}.{{System::ContainerStartTime,yyyyMMdd_HHmmss_fff}}"
                  expressionType="Notify"
                  name="ArchiveFileNamingConvention"></property>
                <property
                  dataType="System.Boolean"
                  description="When this property is true then Column is converted to Row. Pivoted names will appear under  Pivot_Name column and values will appear under Pivot_Value field."
                  expressionType="Notify"
                  name="EnablePivot">false</property>
                <property
                  dataType="System.Int32"
                  description="Metadata scan mode controls how data type and length is determined. By default few records scanned to determine datatype/length. Changing ScanMode affects length/datatype accuracy."
                  expressionType="Notify"
                  name="MetaDataScanMode"
                  typeConverter="ZappySys.Common.Data.MetaDataScanMode, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Int32"
                  description="Length for all string column. This option is only valid for MetaDataScanMode=Custom"
                  expressionType="Notify"
                  name="MetaDataCustomLength">1000</property>
                <property
                  dataType="System.String"
                  name="UserComponentTypeName">ZappySys.PowerPack.Adapter.XmlSource.XmlSource, ZappySys.PowerPack110, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502</property>
              </properties>
              <outputs>
                <output
                  refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput]"
                  errorOrTruncationOperation="Error"
                  errorRowDisposition="FailComponent"
                  name="XmlSourceOutput"
                  truncationRowDisposition="FailComponent">
                  <outputColumns>
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_dobermann_@age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_dobermann_@age]"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_dobermann_@age]"
                      name="P_things.animals_dogs_dobermann_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_dobermann_#text]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_dobermann_#text]"
                      length="8"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_dobermann_#text]"
                      name="P_things.animals_dogs_dobermann_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_rottweiler_@age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_rottweiler_@age]"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_rottweiler_@age]"
                      name="P_things.animals_dogs_rottweiler_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_rottweiler_#text]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_rottweiler_#text]"
                      length="6"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_rottweiler_#text]"
                      name="P_things.animals_dogs_rottweiler_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_pitbull_@age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_pitbull_@age]"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_pitbull_@age]"
                      name="P_things.animals_dogs_pitbull_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_pitbull_#text]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_pitbull_#text]"
                      length="14"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_pitbull_#text]"
                      name="P_things.animals_dogs_pitbull_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_cat_@age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_cat_@age]"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_cat_@age]"
                      name="P_things.animals_cat_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_cat_#text]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_cat_#text]"
                      length="16"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_cat_#text]"
                      name="P_things.animals_cat_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_mouse_@age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_mouse_@age]"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_mouse_@age]"
                      name="P_things.animals_mouse_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_mouse_#text]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_mouse_#text]"
                      length="14"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[P_things.animals_mouse_#text]"
                      name="P_things.animals_mouse_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[animal]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[animal]"
                      length="18"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].Columns[animal]"
                      name="animal" />
                  </outputColumns>
                  <externalMetadataColumns
                    isUsed="True">
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_dobermann_@age]"
                      dataType="i8"
                      name="P_things.animals_dogs_dobermann_@age" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_dobermann_#text]"
                      dataType="wstr"
                      length="8"
                      name="P_things.animals_dogs_dobermann_#text" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_rottweiler_@age]"
                      dataType="i8"
                      name="P_things.animals_dogs_rottweiler_@age" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_rottweiler_#text]"
                      dataType="wstr"
                      length="6"
                      name="P_things.animals_dogs_rottweiler_#text" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_pitbull_@age]"
                      dataType="i8"
                      name="P_things.animals_dogs_pitbull_@age" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_pitbull_#text]"
                      dataType="wstr"
                      length="14"
                      name="P_things.animals_dogs_pitbull_#text" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_cat_@age]"
                      dataType="i8"
                      name="P_things.animals_cat_@age" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_cat_#text]"
                      dataType="wstr"
                      length="16"
                      name="P_things.animals_cat_#text" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_mouse_@age]"
                      dataType="i8"
                      name="P_things.animals_mouse_@age" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_mouse_#text]"
                      dataType="wstr"
                      length="14"
                      name="P_things.animals_mouse_#text" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput].ExternalColumns[animal]"
                      dataType="wstr"
                      length="18"
                      name="animal" />
                  </externalMetadataColumns>
                </output>
                <output
                  refId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output]"
                  isErrorOut="true"
                  name="XmlSource Error Output">
                  <outputColumns>
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_dobermann_@age]"
                      dataType="i8"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_dobermann_@age]"
                      name="P_things.animals_dogs_dobermann_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_dobermann_#text]"
                      dataType="wstr"
                      length="8"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_dobermann_#text]"
                      name="P_things.animals_dogs_dobermann_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_rottweiler_@age]"
                      dataType="i8"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_rottweiler_@age]"
                      name="P_things.animals_dogs_rottweiler_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_rottweiler_#text]"
                      dataType="wstr"
                      length="6"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_rottweiler_#text]"
                      name="P_things.animals_dogs_rottweiler_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_pitbull_@age]"
                      dataType="i8"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_pitbull_@age]"
                      name="P_things.animals_dogs_pitbull_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_pitbull_#text]"
                      dataType="wstr"
                      length="14"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_pitbull_#text]"
                      name="P_things.animals_dogs_pitbull_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_cat_@age]"
                      dataType="i8"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_cat_@age]"
                      name="P_things.animals_cat_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_cat_#text]"
                      dataType="wstr"
                      length="16"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_cat_#text]"
                      name="P_things.animals_cat_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_mouse_@age]"
                      dataType="i8"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_mouse_@age]"
                      name="P_things.animals_mouse_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_mouse_#text]"
                      dataType="wstr"
                      length="14"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[P_things.animals_mouse_#text]"
                      name="P_things.animals_mouse_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[animal]"
                      dataType="wstr"
                      length="18"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[animal]"
                      name="animal" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[ErrorCode]"
                      dataType="i4"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[ErrorCode]"
                      name="ErrorCode"
                      specialFlags="1" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[ErrorColumn]"
                      dataType="i4"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[ErrorColumn]"
                      name="ErrorColumn"
                      specialFlags="2" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[ErrorColumnName]"
                      codePage="1252"
                      dataType="str"
                      length="128"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[ErrorColumnName]"
                      name="ErrorColumnName" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[ErrorMessage]"
                      dataType="wstr"
                      length="1024"
                      lineageId="Package\XML Flattening\Array Flattening.Outputs[XmlSource Error Output].Columns[ErrorMessage]"
                      name="ErrorMessage" />
                  </outputColumns>
                  <externalMetadataColumns />
                </output>
              </outputs>
            </component>
            <component
              refId="Package\XML Flattening\Array Flattening with one element of other Array"
              componentClassID="DTS.ManagedComponentWrapper.3"
              contactInfo="XML Source (Web API or File); ZappySys LLC (c) All Rights Reserved; SSIS PowerPack; http://www.zappysys.com/support"
              description="The XML source is used to read data from XML files, XML REST/SOAP Web service or direct XML String."
              name="Array Flattening with one element of other Array"
              usesDispositions="true"
              version="6">
              <properties>
                <property
                  dataType="System.Int32"
                  description="LoggingMode determines how much information is logged during Package Execution. Set Logging mode to Debugging for maximum log."
                  expressionType="Notify"
                  name="LoggingMode"
                  typeConverter="ZappySys.PowerPack.Common.LoggingMode, ZappySys.PowerPack90, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="When you enable this property it will prefix timestamp before Log messages."
                  expressionType="Notify"
                  name="PrefixTimestamp">false</property>
                <property
                  dataType="System.Null"
                  expressionType="Notify"
                  name="SelfRef"
                  typeConverter="NOTBROWSABLE" />
                <property
                  dataType="System.Boolean"
                  description="Treat empty string as NULL for any numeric datatypes"
                  expressionType="Notify"
                  name="TreatBlankNumberAsNull">true</property>
                <property
                  dataType="System.Int32"
                  description="Defines how to read the XML file or direct string"
                  expressionType="Notify"
                  name="AccessMode"
                  typeConverter="ZappySys.Common.Ssis.FileValueAccessMode, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.String"
                  description="Defines how to read the XML file or direct string"
                  expressionType="Notify"
                  name="DirectValue"
                  UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">&lt;things&gt;
	&lt;animals&gt;
		&lt;dogs&gt;
		  &lt;dobermann age="5"&gt;Nick&lt;/dobermann&gt;
		  &lt;rottweiler age="10"&gt;Max&lt;/rottweiler&gt;
		  &lt;pitbull age="15"&gt;Charlie&lt;/pitbull&gt;
		&lt;/dogs&gt;
		&lt;cat age="7"&gt;Scratchy&lt;/cat&gt;
		&lt;mouse age="1"&gt;Squeeky&lt;/mouse&gt;
		&lt;other&gt;
			&lt;animal&gt;pig&lt;/animal&gt;
			&lt;animal&gt;crocodile&lt;/animal&gt;
			&lt;animal&gt;chicken&lt;/animal&gt;
		&lt;/other&gt;
	&lt;/animals&gt;
	&lt;cars&gt;
		&lt;car&gt;Audi&lt;/car&gt;
		&lt;car&gt;Mercedes&lt;/car&gt;
		&lt;car&gt;Volvo&lt;/car&gt;
	&lt;/cars&gt;
&lt;/things&gt;</property>
                <property
                  dataType="System.String"
                  description="Variable name which holds XML string"
                  expressionType="Notify"
                  name="ValueVariable"
                  typeConverter="ZappySys.PowerPack.Converters.VariableEditor,ZappySys.PowerPack110.UI,Version=1.0.0.0,Culture=neutral,PublicKeyToken=1903265a93eae502"></property>
                <property
                  dataType="System.String"
                  description="Variable name which holds data file path or url"
                  expressionType="Notify"
                  name="PathVariable"
                  typeConverter="ZappySys.PowerPack.Converters.VariableEditor,ZappySys.PowerPack110.UI,Version=1.0.0.0,Culture=neutral,PublicKeyToken=1903265a93eae502"></property>
                <property
                  dataType="System.String"
                  description="XML file file path (e.g. c:\data\myfile.xml) or pattern to process multiple files (e.g. c:\data\*.xml)"
                  expressionType="Notify"
                  name="DirectPath"
                  UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"></property>
                <property
                  dataType="System.String"
                  description="Set this if you want to set custom Http headers. You may use variable anywhere in the header value using syntax {{User::YourVarName}}. Syntax of Header key value pair is : &amp;lt;request&amp;gt;&amp;lt;header&amp;gt;&amp;lt;name&amp;gt;x-myheader-1&amp;lt;/name&amp;gt;&amp;lt;value&amp;gt;AAA&amp;lt;/value&amp;gt;&amp;lt;/header&amp;gt; &amp;lt;header&amp;gt;&amp;lt;name&amp;gt;x-myheader-2&amp;lt;/name&amp;gt;&amp;lt;value&amp;gt;BBB&amp;lt;/value&amp;gt;&amp;lt;/header&amp;gt;&amp;lt;/request&amp;gt;"
                  expressionType="Notify"
                  name="HttpHeaders">&lt;request&gt;&lt;header&gt;&lt;name&gt;Accept&lt;/name&gt;&lt;value&gt;*/*&lt;/value&gt;&lt;/header&gt;&lt;header&gt;&lt;name&gt;Cache-Control&lt;/name&gt;&lt;value&gt;no-cache&lt;/value&gt;&lt;/header&gt;&lt;/request&gt;</property>
                <property
                  dataType="System.String"
                  description="User defined data you wish to send along with your HTTP Request (e.g. Upload file data, Form POST data). Usually you have to set content-type of your data but if you select RequestMethod=POST then system will automatically set content-type=application/x-www-form-urlencoded."
                  expressionType="Notify"
                  name="HttpRequestData"></property>
                <property
                  dataType="System.String"
                  description="Http Web Request Method (e.g. POST, GET, PUT, LIST, DELETE...). Refer your API documentation if you are not sure which method you have to use."
                  expressionType="Notify"
                  name="HttpRequestMethod">GET</property>
                <property
                  dataType="System.Int32"
                  description="Specifies content type for data you wish to POST. If you select Default option then system default content type will be used (i.e. application/x-www-form-urlencoded). If you specify Content-Type header along with this option then header value takes precedence."
                  expressionType="Notify"
                  name="HttpRequestContentType"
                  typeConverter="ZappySys.Common.Web.HttpRequestContentType, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Int32"
                  description="Data format coming from HTTP Response. This is useful for example when you have OData service and you want to automatically consume all pages of data using odata.netUrl. Setting JsonFormat=Odata will automatically do it for you. This setting is only applicable if XML is coming from HTTP WebRequest."
                  expressionType="Notify"
                  name="JsonFormat"
                  typeConverter="ZappySys.Json.JsonFormat, ZappySys.Json, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="Enable custom proxy settings (If this is not set then system default proxy will be used. To disable proxy totally uncheck this option and check DoNotUseDefaultProxy option if available)"
                  expressionType="Notify"
                  name="UseProxy">false</property>
                <property
                  dataType="System.String"
                  description="Web URL of Proxy server (including port  if necessary). [e.g. http://myproxyserver:8080/]"
                  expressionType="Notify"
                  name="ProxyUrl"></property>
                <property
                  dataType="System.Boolean"
                  description="Enable passing userid and password to proxy server"
                  expressionType="Notify"
                  name="UseProxyCreds">false</property>
                <property
                  dataType="System.String"
                  description="Proxy username"
                  expressionType="Notify"
                  name="ProxyUserName"></property>
                <property
                  dataType="System.String"
                  description="Proxy password"
                  expressionType="Notify"
                  name="ProxyPassword"></property>
                <property
                  dataType="System.String"
                  description="If Service response support pagination using some sort of next url attribute then specify which attribute name in XML Response string which holds next url. If no attribute found or its null then component will stop fetching next resultset"
                  expressionType="Notify"
                  name="NextUrlAttribute"></property>
                <property
                  dataType="System.String"
                  description="If Service response support pagination using some sort of prev/next url attribute then specify which previous link attribute name from XML Response string which holds previous url."
                  expressionType="Notify"
                  name="PrevUrlAttribute"></property>
                <property
                  dataType="System.String"
                  description="Specifies value for NextUrlAttribute or StopIndicatorAttribute which indicates last page to stop pagination. If you have specified StopIndicatorAttribute then you can use Regular expression rather than static value to indicate last page. To use regular expression value of this property must start with regex= prefix. Example : regex=FALSE|N  (assuming you set StopIndicatorAttribute to something like $.hasMore)"
                  expressionType="Notify"
                  name="NextUrlStopIndicator"></property>
                <property
                  dataType="System.String"
                  description="Attribute name or expression for attribute which can be used as stop indicator (e.g. hasmore --or-- $.pagination.hasmore). If this value is blank then NextUrlAttribute is used"
                  expressionType="Notify"
                  name="StopIndicatorAttribute"></property>
                <property
                  dataType="System.String"
                  description="If you want to include certain text (or parameters) at the end of Next url then specify this attribute (e.g. &amp;format=xml)"
                  expressionType="Notify"
                  name="NextUrlSuffix"></property>
                <property
                  dataType="System.Int32"
                  description="This property indicates total number of milliseconds you want to wait before sending next request. This option allows you to adjust how many API calls can be made within certain timeframe. If your API Service has no limit then set this option to zero"
                  expressionType="Notify"
                  name="NextUrlWait">0</property>
                <property
                  dataType="System.Boolean"
                  description="If this option is true then component will continue without exception on 404 error (Url not found). This allows you to consume data gracefully."
                  expressionType="Notify"
                  name="ContinueOnUrlNotFoundError">false</property>
                <property
                  dataType="System.String"
                  description="Cookie Container can be used to maintain state between multiple web requests. Example: You can login to site like wordpress and then extract any private page content by simply passing authentication cookies using this variable."
                  expressionType="Notify"
                  name="CookieContainerVariable"></property>
                <property
                  dataType="System.Int32"
                  description="Http request Timeout in seconds. Set this to 0 if you want to use system default value (i.e. 100 seconds)"
                  expressionType="Notify"
                  name="RequestTimeout">0</property>
                <property
                  dataType="System.Int32"
                  description="Specifies which security protocol is supported for HTTPS communication. Using this option you can enable legacy protocol or enforce to use latest version of security protocol (Note: TLS 1.2 is only supported in SSIS 2014 or Higher)."
                  expressionType="Notify"
                  name="SecurityProtocol"
                  typeConverter="ZappySys.PowerPack.Common.HttpsSecurityProtocolType, ZappySys.PowerPack90, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="Enable support for gzip or deflate compression. When you check this option compressed response automatically de-compressed saving bandwidth. This option is only valid if web server supports compressed response stream. Check your API documentation for more information."
                  expressionType="Notify"
                  name="EnableCompressionSupport">true</property>
                <property
                  dataType="System.Boolean"
                  description="Ignore SSL certificate related errors. Example: if you getting SSL/TLS errors because of certificate expired or certificate is not from trusted authority or certificate is self-signed. By checking this option you will not get SSL/TLS error."
                  expressionType="Notify"
                  name="IgnoreCertificateErrors">false</property>
                <property
                  dataType="System.Boolean"
                  description="Use connection to pass credentials for authentication (e.g. Use UserID/Password or Use OAuth Protocol for token based approach)"
                  expressionType="Notify"
                  name="UseConnection">false</property>
                <property
                  dataType="System.Int32"
                  description="Specified how you want to loop through multiple pages returned by REST API."
                  expressionType="Notify"
                  name="PagingMode"
                  typeConverter="ZappySys.Common.RestApiPagingMode, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.String"
                  description="e.g. Type page_num if URL looks like this =&gt; http://abc.com/?page_num=1&amp;sort=true  (page number via query string)&#xA;--or-- Type &lt;%page%&gt; if page number is inside URL path like this =&gt; http://abc.com/1/?sort=true  (e.g. replace page number in url with placeholder http://abc.com/&lt;%page%&gt;/?sort=true)&#xA;Page number will be incremented by one for next URL until last page is reached or [Max Page Number] is reached"
                  expressionType="Notify"
                  name="PageNumberAttributeNameInUrl"></property>
                <property
                  dataType="System.Int32"
                  description="Maximum page number until which auto increment is allowed. Type zero for no limit. Next URL contains next page number (increment by one) until last page is detected or [Max Page Number] limit is reached."
                  expressionType="Notify"
                  name="MaxPageNumber">0</property>
                <property
                  dataType="System.String"
                  description="Variable name which will hold starting page number. This is ignored if you useing parameter name from query string to indicate page number."
                  expressionType="Notify"
                  name="StartPageNumberVariable"></property>
                <property
                  dataType="System.Int32"
                  description="Page counter increment. By default next page is incremented by one if this value is zero. You can also enter negative number if you want to decrease page counter."
                  expressionType="Notify"
                  name="PageNumberIncrement">1</property>
                <property
                  dataType="System.Int32"
                  description="Specified how you want detect last page."
                  expressionType="Notify"
                  name="PagingEndStrategy"
                  typeConverter="ZappySys.Common.UrlPagingEndDetectionStrategy, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">3</property>
                <property
                  dataType="System.Boolean"
                  description="Condition result to compare to detect last page. Set this property to True if you want detect last page if condition is true else set this to False."
                  expressionType="Notify"
                  name="LastPageWhenConditionEqualsTo">true</property>
                <property
                  dataType="System.Int32"
                  description="Minimum bytes expected from response."
                  expressionType="Notify"
                  name="ResponseMinBytes">0</property>
                <property
                  dataType="System.Int32"
                  description="Maximum bytes from response."
                  expressionType="Notify"
                  name="ResponseMaxBytes">3</property>
                <property
                  dataType="System.String"
                  description="Expected error message sub string from response."
                  expressionType="Notify"
                  name="ResponseErrorString">not found</property>
                <property
                  dataType="System.Int32"
                  description="Expected status code from response when page number you trying to access not found."
                  expressionType="Notify"
                  name="ResponseStatusCode">404</property>
                <property
                  dataType="System.Int32"
                  description="Maximum XML records to fetch. Set this value to 0 for all records"
                  expressionType="Notify"
                  name="MaxRows">0</property>
                <property
                  dataType="System.String"
                  description="Enter expression here to filter data.(Example:  $.Users[*].UserName ) This will fetch User names from users records"
                  expressionType="Notify"
                  name="Filter"
                  UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">$.things.animals.other.animal[*]</property>
                <property
                  dataType="System.Boolean"
                  description="Use this option to include parent properties (Non array) in the output along with Filtered Rows"
                  expressionType="Notify"
                  name="IncludeParentColumns">true</property>
                <property
                  dataType="System.Boolean"
                  description="By default child and parent information is not included in the output if children not found for specified expression. For example if you want to extract all orders from all customers nodes then you can type $.Customers[*].Orders[*]. This will fetch all orders from all customers. By default customers records without orders wont be included in the output. If you want to include those customers where orders not found then check this option (Output null information for order attributes). This behavior is similar to LEFT OUTER JOIN in SQL (Left side is parent, right side is child). This option is ***resource intensive*** so only check if you really care about this behavior."
                  expressionType="Notify"
                  name="IncludeParentColumnsWhenChildMissing">false</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to output parent columns which are array. By default any parent column which is an array is not included in output. See also FilterForParentColumnsWithArrayType property if you set this property"
                  expressionType="Notify"
                  name="IncludeParentColumnsWithArrayType">true</property>
                <property
                  dataType="System.String"
                  description="Set this option to true if you want to output parent columns which are array. By default any parent column which is an array is not included in output. See also FilterForParentColumnsWithArrayType property if you set this property"
                  expressionType="Notify"
                  name="FilterForParentColumnsWithArrayType">[1]</property>
                <property
                  dataType="System.String"
                  description="Prefix for parent column name. This option is only valid if you have set IncludeParentColumns=True"
                  expressionType="Notify"
                  name="ParentColumnPrefix">P_</property>
                <property
                  dataType="System.Boolean"
                  description="Throw error if property name specified in filter expression is missing. By default it will ignore any missing property errors."
                  expressionType="Notify"
                  name="ThrowErrorIfPropertyMissing">false</property>
                <property
                  dataType="System.Int32"
                  description="This property how many nested levels should be scanned to fetch various properties. 0=Scan all child levels."
                  expressionType="Notify"
                  name="MaxLevelsToScan">0</property>
                <property
                  dataType="System.String"
                  description="List comma separated property names from XML document which you want to exclude from output. Specify parent property name to exclude all child nodes."
                  expressionType="Notify"
                  name="ExcludedProperties">@xsi:nil,soap:Envelope_@xmlns:xsd,soap:Envelope_@xmlns:xsi,P_soap:Envelope_@xmlns:xsd,P_soap:Envelope_@xmlns:xsi,P_soap:Envelope_@xmlns:soap,P_?xml_@version,P_?xml_@encoding</property>
                <property
                  dataType="System.String"
                  description="Property level separator used in generated property name. Use this if default separator is producing duplicate property name which is conflicting with existing name."
                  expressionType="Notify"
                  name="LevelSeparator">_</property>
                <property
                  dataType="System.Int32"
                  description="Compression format for source file (e.g. gzip, zip)"
                  expressionType="Notify"
                  name="FileCompressionType"
                  typeConverter="ZappySys.Common.FileCompressionType, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Int32"
                  description="Array Transformation you want to apply. Useful for case when you have 2-Dimensional arrays with rows/columns in separate arrays."
                  expressionType="Notify"
                  name="ArrayTransformationType"
                  typeConverter="ZappySys.Json.ArrayTransformType, ZappySys.Json, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.String"
                  description="Filter expression to use to extract column names for array transformation."
                  expressionType="Notify"
                  name="ArrayTransColumnNameFilter"></property>
                <property
                  dataType="System.String"
                  description="Filter expression for row values (Not applicable for simple array transformation)."
                  expressionType="Notify"
                  name="ArrayTransRowValueFilter"></property>
                <property
                  dataType="System.Boolean"
                  description="When you have 2D array but don't have column list specified in a separate array then use this option (e.g. { arr: [[10,11],[21,22]] } )."
                  expressionType="Notify"
                  name="ArrayTransEnableCustomColumns">false</property>
                <property
                  dataType="System.String"
                  description="When you have 2D array but don't have column list specified in a separate array then use specify column names here. Use comma separated list (e.g col1,col2,col3 ). Column name Order must match value order."
                  expressionType="Notify"
                  name="ArrayTransCustomColumns"></property>
                <property
                  dataType="System.String"
                  description="Specifies how custom date formatted strings are parsed when reading JSON."
                  expressionType="Notify"
                  name="DateFormatString"></property>
                <property
                  dataType="System.Int32"
                  description="Specifies how date formatted strings, e.g. Date(1198908717056) and 2012-03-21T05:40Z, are parsed when reading JSON."
                  expressionType="Notify"
                  name="DateParseHandling"
                  typeConverter="ZappySys.Common.DateParseHandling, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">1</property>
                <property
                  dataType="System.Boolean"
                  description="Output as raw JSON document rather than parsing individual fields. This option is helpful if you have documents stored in a file and you want to pass them downstream as raw JSON string rather than parsing into columns."
                  expressionType="Notify"
                  name="OutputRawDocument">false</property>
                <property
                  dataType="System.Boolean"
                  description="Indent JSON output so its easy to read."
                  expressionType="Notify"
                  name="IndentOutput">false</property>
                <property
                  dataType="System.Boolean"
                  description="Output convert raw XML document to JSON (Recommended). This option is ignored if OutputRawDocument=false. Once you do that any further parsing downstream must use JSON Parser rather than XML Parser."
                  expressionType="Notify"
                  name="ConvertFormat">false</property>
                <property
                  dataType="System.String"
                  description="Comma separated element names which you want to treat as Array regardless how many times element repeats at the same level. By default only those elements are treated as array if element appears more than once at the same level."
                  expressionType="Notify"
                  name="ElementsToTreatAsArray">animal</property>
                <property
                  dataType="System.Boolean"
                  description="Enables memory optimized mode. You may lose certain functionality when you turn on this. Only turn on this feature if you getting out of memory error."
                  expressionType="Notify"
                  name="EnablePerformanceMode">false</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to output FilePath. This option is ignored when you consume DirectValue or data from Url rather than local files. Output column name will be __FilePath"
                  expressionType="Notify"
                  name="OutputFilePath">false</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to output FileName. This option is ignored when you consume DirectValue or data from Url rather than local files. Output column name will be __FileName"
                  expressionType="Notify"
                  name="OutputFileName">true</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to move processed file to archive folder."
                  expressionType="Notify"
                  name="EnableArchiveFile">false</property>
                <property
                  dataType="System.String"
                  description="Folder path where you want to move processed file."
                  expressionType="Notify"
                  name="ArchiveFolderPath"></property>
                <property
                  dataType="System.Boolean"
                  description="Folder path where you want to move processed file."
                  expressionType="Notify"
                  name="OverwriteFileInArchiveFolder">false</property>
                <property
                  dataType="System.String"
                  description="File naming convention for archived file. By default it will same name as original source file processed. But you can control naming format using {%name%} and {%ext%} placeholders. e.g. {%name%}_processed{%ext%} or {%name%}{%ext%}.{{System::ContainerStartTime,yyyyMMdd_HHmmss_fff}}"
                  expressionType="Notify"
                  name="ArchiveFileNamingConvention"></property>
                <property
                  dataType="System.Boolean"
                  description="When this property is true then Column is converted to Row. Pivoted names will appear under  Pivot_Name column and values will appear under Pivot_Value field."
                  expressionType="Notify"
                  name="EnablePivot">false</property>
                <property
                  dataType="System.Int32"
                  description="Metadata scan mode controls how data type and length is determined. By default few records scanned to determine datatype/length. Changing ScanMode affects length/datatype accuracy."
                  expressionType="Notify"
                  name="MetaDataScanMode"
                  typeConverter="ZappySys.Common.Data.MetaDataScanMode, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Int32"
                  description="Length for all string column. This option is only valid for MetaDataScanMode=Custom"
                  expressionType="Notify"
                  name="MetaDataCustomLength">1000</property>
                <property
                  dataType="System.String"
                  name="UserComponentTypeName">ZappySys.PowerPack.Adapter.XmlSource.XmlSource, ZappySys.PowerPack110, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502</property>
              </properties>
              <outputs>
                <output
                  refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput]"
                  errorOrTruncationOperation="Error"
                  errorRowDisposition="FailComponent"
                  name="XmlSourceOutput"
                  truncationRowDisposition="FailComponent">
                  <outputColumns>
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_dobermann_@age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_dobermann_@age]"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_dobermann_@age]"
                      name="P_things.animals_dogs_dobermann_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_dobermann_#text]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_dobermann_#text]"
                      length="8"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_dobermann_#text]"
                      name="P_things.animals_dogs_dobermann_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_rottweiler_@age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_rottweiler_@age]"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_rottweiler_@age]"
                      name="P_things.animals_dogs_rottweiler_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_rottweiler_#text]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_rottweiler_#text]"
                      length="6"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_rottweiler_#text]"
                      name="P_things.animals_dogs_rottweiler_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_pitbull_@age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_pitbull_@age]"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_pitbull_@age]"
                      name="P_things.animals_dogs_pitbull_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_pitbull_#text]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_pitbull_#text]"
                      length="14"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_dogs_pitbull_#text]"
                      name="P_things.animals_dogs_pitbull_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_cat_@age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_cat_@age]"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_cat_@age]"
                      name="P_things.animals_cat_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_cat_#text]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_cat_#text]"
                      length="16"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_cat_#text]"
                      name="P_things.animals_cat_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_mouse_@age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_mouse_@age]"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_mouse_@age]"
                      name="P_things.animals_mouse_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_mouse_#text]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_mouse_#text]"
                      length="14"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things.animals_mouse_#text]"
                      name="P_things.animals_mouse_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things_cars_car]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things_cars_car]"
                      length="16"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[P_things_cars_car]"
                      name="P_things_cars_car" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[animal]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[animal]"
                      length="18"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].Columns[animal]"
                      name="animal" />
                  </outputColumns>
                  <externalMetadataColumns
                    isUsed="True">
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_dobermann_@age]"
                      dataType="i8"
                      name="P_things.animals_dogs_dobermann_@age" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_dobermann_#text]"
                      dataType="wstr"
                      length="8"
                      name="P_things.animals_dogs_dobermann_#text" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_rottweiler_@age]"
                      dataType="i8"
                      name="P_things.animals_dogs_rottweiler_@age" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_rottweiler_#text]"
                      dataType="wstr"
                      length="6"
                      name="P_things.animals_dogs_rottweiler_#text" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_pitbull_@age]"
                      dataType="i8"
                      name="P_things.animals_dogs_pitbull_@age" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_dogs_pitbull_#text]"
                      dataType="wstr"
                      length="14"
                      name="P_things.animals_dogs_pitbull_#text" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_cat_@age]"
                      dataType="i8"
                      name="P_things.animals_cat_@age" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_cat_#text]"
                      dataType="wstr"
                      length="16"
                      name="P_things.animals_cat_#text" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_mouse_@age]"
                      dataType="i8"
                      name="P_things.animals_mouse_@age" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things.animals_mouse_#text]"
                      dataType="wstr"
                      length="14"
                      name="P_things.animals_mouse_#text" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[P_things_cars_car]"
                      dataType="wstr"
                      length="16"
                      name="P_things_cars_car" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput].ExternalColumns[animal]"
                      dataType="wstr"
                      length="18"
                      name="animal" />
                  </externalMetadataColumns>
                </output>
                <output
                  refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output]"
                  isErrorOut="true"
                  name="XmlSource Error Output">
                  <outputColumns>
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_dobermann_@age]"
                      dataType="i8"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_dobermann_@age]"
                      name="P_things.animals_dogs_dobermann_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_dobermann_#text]"
                      dataType="wstr"
                      length="8"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_dobermann_#text]"
                      name="P_things.animals_dogs_dobermann_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_rottweiler_@age]"
                      dataType="i8"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_rottweiler_@age]"
                      name="P_things.animals_dogs_rottweiler_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_rottweiler_#text]"
                      dataType="wstr"
                      length="6"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_rottweiler_#text]"
                      name="P_things.animals_dogs_rottweiler_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_pitbull_@age]"
                      dataType="i8"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_pitbull_@age]"
                      name="P_things.animals_dogs_pitbull_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_pitbull_#text]"
                      dataType="wstr"
                      length="14"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_dogs_pitbull_#text]"
                      name="P_things.animals_dogs_pitbull_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_cat_@age]"
                      dataType="i8"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_cat_@age]"
                      name="P_things.animals_cat_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_cat_#text]"
                      dataType="wstr"
                      length="16"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_cat_#text]"
                      name="P_things.animals_cat_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_mouse_@age]"
                      dataType="i8"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_mouse_@age]"
                      name="P_things.animals_mouse_@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_mouse_#text]"
                      dataType="wstr"
                      length="14"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things.animals_mouse_#text]"
                      name="P_things.animals_mouse_#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things_cars_car]"
                      dataType="wstr"
                      length="16"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[P_things_cars_car]"
                      name="P_things_cars_car" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[animal]"
                      dataType="wstr"
                      length="18"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[animal]"
                      name="animal" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[ErrorCode]"
                      dataType="i4"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[ErrorCode]"
                      name="ErrorCode"
                      specialFlags="1" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[ErrorColumn]"
                      dataType="i4"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[ErrorColumn]"
                      name="ErrorColumn"
                      specialFlags="2" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[ErrorColumnName]"
                      codePage="1252"
                      dataType="str"
                      length="128"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[ErrorColumnName]"
                      name="ErrorColumnName" />
                    <outputColumn
                      refId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[ErrorMessage]"
                      dataType="wstr"
                      length="1024"
                      lineageId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSource Error Output].Columns[ErrorMessage]"
                      name="ErrorMessage" />
                  </outputColumns>
                  <externalMetadataColumns />
                </output>
              </outputs>
            </component>
            <component
              refId="Package\XML Flattening\Simple Flattening"
              componentClassID="DTS.ManagedComponentWrapper.3"
              contactInfo="XML Source (Web API or File); ZappySys LLC (c) All Rights Reserved; SSIS PowerPack; http://www.zappysys.com/support"
              description="The XML source is used to read data from XML files, XML REST/SOAP Web service or direct XML String."
              name="Simple Flattening"
              usesDispositions="true"
              version="6">
              <properties>
                <property
                  dataType="System.Int32"
                  description="LoggingMode determines how much information is logged during Package Execution. Set Logging mode to Debugging for maximum log."
                  expressionType="Notify"
                  name="LoggingMode"
                  typeConverter="ZappySys.PowerPack.Common.LoggingMode, ZappySys.PowerPack90, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="When you enable this property it will prefix timestamp before Log messages."
                  expressionType="Notify"
                  name="PrefixTimestamp">false</property>
                <property
                  dataType="System.Null"
                  expressionType="Notify"
                  name="SelfRef"
                  typeConverter="NOTBROWSABLE" />
                <property
                  dataType="System.Boolean"
                  description="Treat empty string as NULL for any numeric datatypes"
                  expressionType="Notify"
                  name="TreatBlankNumberAsNull">true</property>
                <property
                  dataType="System.Int32"
                  description="Defines how to read the XML file or direct string"
                  expressionType="Notify"
                  name="AccessMode"
                  typeConverter="ZappySys.Common.Ssis.FileValueAccessMode, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.String"
                  description="Defines how to read the XML file or direct string"
                  expressionType="Notify"
                  name="DirectValue"
                  UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91">&lt;things&gt;
	&lt;animals&gt;
		&lt;dogs&gt;
		  &lt;dobermann age="5"&gt;Nick&lt;/dobermann&gt;
		  &lt;rottweiler age="10"&gt;Max&lt;/rottweiler&gt;
		  &lt;pitbull age="15"&gt;Charlie&lt;/pitbull&gt;
		&lt;/dogs&gt;
		&lt;cat age="7"&gt;Scratchy&lt;/cat&gt;
		&lt;mouse age="1"&gt;Squeeky&lt;/mouse&gt;
		&lt;other&gt;
			&lt;animal&gt;pig&lt;/animal&gt;
			&lt;animal&gt;crocodile&lt;/animal&gt;
			&lt;animal&gt;chicken&lt;/animal&gt;
		&lt;/other&gt;
	&lt;/animals&gt;
	&lt;cars&gt;
		&lt;car&gt;Audi&lt;/car&gt;
		&lt;car&gt;Mercedes&lt;/car&gt;
		&lt;car&gt;Volvo&lt;/car&gt;
	&lt;/cars&gt;
&lt;/things&gt;</property>
                <property
                  dataType="System.String"
                  description="Variable name which holds XML string"
                  expressionType="Notify"
                  name="ValueVariable"
                  typeConverter="ZappySys.PowerPack.Converters.VariableEditor,ZappySys.PowerPack110.UI,Version=1.0.0.0,Culture=neutral,PublicKeyToken=1903265a93eae502"></property>
                <property
                  dataType="System.String"
                  description="Variable name which holds data file path or url"
                  expressionType="Notify"
                  name="PathVariable"
                  typeConverter="ZappySys.PowerPack.Converters.VariableEditor,ZappySys.PowerPack110.UI,Version=1.0.0.0,Culture=neutral,PublicKeyToken=1903265a93eae502"></property>
                <property
                  dataType="System.String"
                  description="XML file file path (e.g. c:\data\myfile.xml) or pattern to process multiple files (e.g. c:\data\*.xml)"
                  expressionType="Notify"
                  name="DirectPath"
                  UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"></property>
                <property
                  dataType="System.String"
                  description="Set this if you want to set custom Http headers. You may use variable anywhere in the header value using syntax {{User::YourVarName}}. Syntax of Header key value pair is : &amp;lt;request&amp;gt;&amp;lt;header&amp;gt;&amp;lt;name&amp;gt;x-myheader-1&amp;lt;/name&amp;gt;&amp;lt;value&amp;gt;AAA&amp;lt;/value&amp;gt;&amp;lt;/header&amp;gt; &amp;lt;header&amp;gt;&amp;lt;name&amp;gt;x-myheader-2&amp;lt;/name&amp;gt;&amp;lt;value&amp;gt;BBB&amp;lt;/value&amp;gt;&amp;lt;/header&amp;gt;&amp;lt;/request&amp;gt;"
                  expressionType="Notify"
                  name="HttpHeaders">&lt;request&gt;&lt;header&gt;&lt;name&gt;Accept&lt;/name&gt;&lt;value&gt;*/*&lt;/value&gt;&lt;/header&gt;&lt;header&gt;&lt;name&gt;Cache-Control&lt;/name&gt;&lt;value&gt;no-cache&lt;/value&gt;&lt;/header&gt;&lt;/request&gt;</property>
                <property
                  dataType="System.String"
                  description="User defined data you wish to send along with your HTTP Request (e.g. Upload file data, Form POST data). Usually you have to set content-type of your data but if you select RequestMethod=POST then system will automatically set content-type=application/x-www-form-urlencoded."
                  expressionType="Notify"
                  name="HttpRequestData"></property>
                <property
                  dataType="System.String"
                  description="Http Web Request Method (e.g. POST, GET, PUT, LIST, DELETE...). Refer your API documentation if you are not sure which method you have to use."
                  expressionType="Notify"
                  name="HttpRequestMethod">GET</property>
                <property
                  dataType="System.Int32"
                  description="Specifies content type for data you wish to POST. If you select Default option then system default content type will be used (i.e. application/x-www-form-urlencoded). If you specify Content-Type header along with this option then header value takes precedence."
                  expressionType="Notify"
                  name="HttpRequestContentType"
                  typeConverter="ZappySys.Common.Web.HttpRequestContentType, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Int32"
                  description="Data format coming from HTTP Response. This is useful for example when you have OData service and you want to automatically consume all pages of data using odata.netUrl. Setting JsonFormat=Odata will automatically do it for you. This setting is only applicable if XML is coming from HTTP WebRequest."
                  expressionType="Notify"
                  name="JsonFormat"
                  typeConverter="ZappySys.Json.JsonFormat, ZappySys.Json, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="Enable custom proxy settings (If this is not set then system default proxy will be used. To disable proxy totally uncheck this option and check DoNotUseDefaultProxy option if available)"
                  expressionType="Notify"
                  name="UseProxy">false</property>
                <property
                  dataType="System.String"
                  description="Web URL of Proxy server (including port  if necessary). [e.g. http://myproxyserver:8080/]"
                  expressionType="Notify"
                  name="ProxyUrl"></property>
                <property
                  dataType="System.Boolean"
                  description="Enable passing userid and password to proxy server"
                  expressionType="Notify"
                  name="UseProxyCreds">false</property>
                <property
                  dataType="System.String"
                  description="Proxy username"
                  expressionType="Notify"
                  name="ProxyUserName"></property>
                <property
                  dataType="System.String"
                  description="Proxy password"
                  expressionType="Notify"
                  name="ProxyPassword"></property>
                <property
                  dataType="System.String"
                  description="If Service response support pagination using some sort of next url attribute then specify which attribute name in XML Response string which holds next url. If no attribute found or its null then component will stop fetching next resultset"
                  expressionType="Notify"
                  name="NextUrlAttribute"></property>
                <property
                  dataType="System.String"
                  description="If Service response support pagination using some sort of prev/next url attribute then specify which previous link attribute name from XML Response string which holds previous url."
                  expressionType="Notify"
                  name="PrevUrlAttribute"></property>
                <property
                  dataType="System.String"
                  description="Specifies value for NextUrlAttribute or StopIndicatorAttribute which indicates last page to stop pagination. If you have specified StopIndicatorAttribute then you can use Regular expression rather than static value to indicate last page. To use regular expression value of this property must start with regex= prefix. Example : regex=FALSE|N  (assuming you set StopIndicatorAttribute to something like $.hasMore)"
                  expressionType="Notify"
                  name="NextUrlStopIndicator"></property>
                <property
                  dataType="System.String"
                  description="Attribute name or expression for attribute which can be used as stop indicator (e.g. hasmore --or-- $.pagination.hasmore). If this value is blank then NextUrlAttribute is used"
                  expressionType="Notify"
                  name="StopIndicatorAttribute"></property>
                <property
                  dataType="System.String"
                  description="If you want to include certain text (or parameters) at the end of Next url then specify this attribute (e.g. &amp;format=xml)"
                  expressionType="Notify"
                  name="NextUrlSuffix"></property>
                <property
                  dataType="System.Int32"
                  description="This property indicates total number of milliseconds you want to wait before sending next request. This option allows you to adjust how many API calls can be made within certain timeframe. If your API Service has no limit then set this option to zero"
                  expressionType="Notify"
                  name="NextUrlWait">0</property>
                <property
                  dataType="System.Boolean"
                  description="If this option is true then component will continue without exception on 404 error (Url not found). This allows you to consume data gracefully."
                  expressionType="Notify"
                  name="ContinueOnUrlNotFoundError">false</property>
                <property
                  dataType="System.String"
                  description="Cookie Container can be used to maintain state between multiple web requests. Example: You can login to site like wordpress and then extract any private page content by simply passing authentication cookies using this variable."
                  expressionType="Notify"
                  name="CookieContainerVariable"></property>
                <property
                  dataType="System.Int32"
                  description="Http request Timeout in seconds. Set this to 0 if you want to use system default value (i.e. 100 seconds)"
                  expressionType="Notify"
                  name="RequestTimeout">0</property>
                <property
                  dataType="System.Int32"
                  description="Specifies which security protocol is supported for HTTPS communication. Using this option you can enable legacy protocol or enforce to use latest version of security protocol (Note: TLS 1.2 is only supported in SSIS 2014 or Higher)."
                  expressionType="Notify"
                  name="SecurityProtocol"
                  typeConverter="ZappySys.PowerPack.Common.HttpsSecurityProtocolType, ZappySys.PowerPack90, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="Enable support for gzip or deflate compression. When you check this option compressed response automatically de-compressed saving bandwidth. This option is only valid if web server supports compressed response stream. Check your API documentation for more information."
                  expressionType="Notify"
                  name="EnableCompressionSupport">true</property>
                <property
                  dataType="System.Boolean"
                  description="Ignore SSL certificate related errors. Example: if you getting SSL/TLS errors because of certificate expired or certificate is not from trusted authority or certificate is self-signed. By checking this option you will not get SSL/TLS error."
                  expressionType="Notify"
                  name="IgnoreCertificateErrors">false</property>
                <property
                  dataType="System.Boolean"
                  description="Use connection to pass credentials for authentication (e.g. Use UserID/Password or Use OAuth Protocol for token based approach)"
                  expressionType="Notify"
                  name="UseConnection">false</property>
                <property
                  dataType="System.Int32"
                  description="Specified how you want to loop through multiple pages returned by REST API."
                  expressionType="Notify"
                  name="PagingMode"
                  typeConverter="ZappySys.Common.RestApiPagingMode, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.String"
                  description="e.g. Type page_num if URL looks like this =&gt; http://abc.com/?page_num=1&amp;sort=true  (page number via query string)&#xA;--or-- Type &lt;%page%&gt; if page number is inside URL path like this =&gt; http://abc.com/1/?sort=true  (e.g. replace page number in url with placeholder http://abc.com/&lt;%page%&gt;/?sort=true)&#xA;Page number will be incremented by one for next URL until last page is reached or [Max Page Number] is reached"
                  expressionType="Notify"
                  name="PageNumberAttributeNameInUrl"></property>
                <property
                  dataType="System.Int32"
                  description="Maximum page number until which auto increment is allowed. Type zero for no limit. Next URL contains next page number (increment by one) until last page is detected or [Max Page Number] limit is reached."
                  expressionType="Notify"
                  name="MaxPageNumber">0</property>
                <property
                  dataType="System.String"
                  description="Variable name which will hold starting page number. This is ignored if you useing parameter name from query string to indicate page number."
                  expressionType="Notify"
                  name="StartPageNumberVariable"></property>
                <property
                  dataType="System.Int32"
                  description="Page counter increment. By default next page is incremented by one if this value is zero. You can also enter negative number if you want to decrease page counter."
                  expressionType="Notify"
                  name="PageNumberIncrement">1</property>
                <property
                  dataType="System.Int32"
                  description="Specified how you want detect last page."
                  expressionType="Notify"
                  name="PagingEndStrategy"
                  typeConverter="ZappySys.Common.UrlPagingEndDetectionStrategy, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">3</property>
                <property
                  dataType="System.Boolean"
                  description="Condition result to compare to detect last page. Set this property to True if you want detect last page if condition is true else set this to False."
                  expressionType="Notify"
                  name="LastPageWhenConditionEqualsTo">true</property>
                <property
                  dataType="System.Int32"
                  description="Minimum bytes expected from response."
                  expressionType="Notify"
                  name="ResponseMinBytes">0</property>
                <property
                  dataType="System.Int32"
                  description="Maximum bytes from response."
                  expressionType="Notify"
                  name="ResponseMaxBytes">3</property>
                <property
                  dataType="System.String"
                  description="Expected error message sub string from response."
                  expressionType="Notify"
                  name="ResponseErrorString">not found</property>
                <property
                  dataType="System.Int32"
                  description="Expected status code from response when page number you trying to access not found."
                  expressionType="Notify"
                  name="ResponseStatusCode">404</property>
                <property
                  dataType="System.Int32"
                  description="Maximum XML records to fetch. Set this value to 0 for all records"
                  expressionType="Notify"
                  name="MaxRows">0</property>
                <property
                  dataType="System.String"
                  description="Enter expression here to filter data.(Example:  $.Users[*].UserName ) This will fetch User names from users records"
                  expressionType="Notify"
                  name="Filter"
                  UITypeEditor="Microsoft.DataTransformationServices.Controls.ModalMultilineStringEditor, Microsoft.DataTransformationServices.Controls, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"></property>
                <property
                  dataType="System.Boolean"
                  description="Use this option to include parent properties (Non array) in the output along with Filtered Rows"
                  expressionType="Notify"
                  name="IncludeParentColumns">true</property>
                <property
                  dataType="System.Boolean"
                  description="By default child and parent information is not included in the output if children not found for specified expression. For example if you want to extract all orders from all customers nodes then you can type $.Customers[*].Orders[*]. This will fetch all orders from all customers. By default customers records without orders wont be included in the output. If you want to include those customers where orders not found then check this option (Output null information for order attributes). This behavior is similar to LEFT OUTER JOIN in SQL (Left side is parent, right side is child). This option is ***resource intensive*** so only check if you really care about this behavior."
                  expressionType="Notify"
                  name="IncludeParentColumnsWhenChildMissing">false</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to output parent columns which are array. By default any parent column which is an array is not included in output. See also FilterForParentColumnsWithArrayType property if you set this property"
                  expressionType="Notify"
                  name="IncludeParentColumnsWithArrayType">false</property>
                <property
                  dataType="System.String"
                  description="Set this option to true if you want to output parent columns which are array. By default any parent column which is an array is not included in output. See also FilterForParentColumnsWithArrayType property if you set this property"
                  expressionType="Notify"
                  name="FilterForParentColumnsWithArrayType"></property>
                <property
                  dataType="System.String"
                  description="Prefix for parent column name. This option is only valid if you have set IncludeParentColumns=True"
                  expressionType="Notify"
                  name="ParentColumnPrefix">P_</property>
                <property
                  dataType="System.Boolean"
                  description="Throw error if property name specified in filter expression is missing. By default it will ignore any missing property errors."
                  expressionType="Notify"
                  name="ThrowErrorIfPropertyMissing">false</property>
                <property
                  dataType="System.Int32"
                  description="This property how many nested levels should be scanned to fetch various properties. 0=Scan all child levels."
                  expressionType="Notify"
                  name="MaxLevelsToScan">0</property>
                <property
                  dataType="System.String"
                  description="List comma separated property names from XML document which you want to exclude from output. Specify parent property name to exclude all child nodes."
                  expressionType="Notify"
                  name="ExcludedProperties">@xsi:nil,soap:Envelope_@xmlns:xsd,soap:Envelope_@xmlns:xsi,P_soap:Envelope_@xmlns:xsd,P_soap:Envelope_@xmlns:xsi,P_soap:Envelope_@xmlns:soap,P_?xml_@version,P_?xml_@encoding</property>
                <property
                  dataType="System.String"
                  description="Property level separator used in generated property name. Use this if default separator is producing duplicate property name which is conflicting with existing name."
                  expressionType="Notify"
                  name="LevelSeparator">_</property>
                <property
                  dataType="System.Int32"
                  description="Compression format for source file (e.g. gzip, zip)"
                  expressionType="Notify"
                  name="FileCompressionType"
                  typeConverter="ZappySys.Common.FileCompressionType, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Int32"
                  description="Array Transformation you want to apply. Useful for case when you have 2-Dimensional arrays with rows/columns in separate arrays."
                  expressionType="Notify"
                  name="ArrayTransformationType"
                  typeConverter="ZappySys.Json.ArrayTransformType, ZappySys.Json, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.String"
                  description="Filter expression to use to extract column names for array transformation."
                  expressionType="Notify"
                  name="ArrayTransColumnNameFilter"></property>
                <property
                  dataType="System.String"
                  description="Filter expression for row values (Not applicable for simple array transformation)."
                  expressionType="Notify"
                  name="ArrayTransRowValueFilter"></property>
                <property
                  dataType="System.Boolean"
                  description="When you have 2D array but don't have column list specified in a separate array then use this option (e.g. { arr: [[10,11],[21,22]] } )."
                  expressionType="Notify"
                  name="ArrayTransEnableCustomColumns">false</property>
                <property
                  dataType="System.String"
                  description="When you have 2D array but don't have column list specified in a separate array then use specify column names here. Use comma separated list (e.g col1,col2,col3 ). Column name Order must match value order."
                  expressionType="Notify"
                  name="ArrayTransCustomColumns"></property>
                <property
                  dataType="System.String"
                  description="Specifies how custom date formatted strings are parsed when reading JSON."
                  expressionType="Notify"
                  name="DateFormatString"></property>
                <property
                  dataType="System.Int32"
                  description="Specifies how date formatted strings, e.g. Date(1198908717056) and 2012-03-21T05:40Z, are parsed when reading JSON."
                  expressionType="Notify"
                  name="DateParseHandling"
                  typeConverter="ZappySys.Common.DateParseHandling, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">1</property>
                <property
                  dataType="System.Boolean"
                  description="Output as raw JSON document rather than parsing individual fields. This option is helpful if you have documents stored in a file and you want to pass them downstream as raw JSON string rather than parsing into columns."
                  expressionType="Notify"
                  name="OutputRawDocument">false</property>
                <property
                  dataType="System.Boolean"
                  description="Indent JSON output so its easy to read."
                  expressionType="Notify"
                  name="IndentOutput">false</property>
                <property
                  dataType="System.Boolean"
                  description="Output convert raw XML document to JSON (Recommended). This option is ignored if OutputRawDocument=false. Once you do that any further parsing downstream must use JSON Parser rather than XML Parser."
                  expressionType="Notify"
                  name="ConvertFormat">false</property>
                <property
                  dataType="System.String"
                  description="Comma separated element names which you want to treat as Array regardless how many times element repeats at the same level. By default only those elements are treated as array if element appears more than once at the same level."
                  expressionType="Notify"
                  name="ElementsToTreatAsArray"></property>
                <property
                  dataType="System.Boolean"
                  description="Enables memory optimized mode. You may lose certain functionality when you turn on this. Only turn on this feature if you getting out of memory error."
                  expressionType="Notify"
                  name="EnablePerformanceMode">false</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to output FilePath. This option is ignored when you consume DirectValue or data from Url rather than local files. Output column name will be __FilePath"
                  expressionType="Notify"
                  name="OutputFilePath">false</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to output FileName. This option is ignored when you consume DirectValue or data from Url rather than local files. Output column name will be __FileName"
                  expressionType="Notify"
                  name="OutputFileName">true</property>
                <property
                  dataType="System.Boolean"
                  description="Set this option to true if you want to move processed file to archive folder."
                  expressionType="Notify"
                  name="EnableArchiveFile">false</property>
                <property
                  dataType="System.String"
                  description="Folder path where you want to move processed file."
                  expressionType="Notify"
                  name="ArchiveFolderPath"></property>
                <property
                  dataType="System.Boolean"
                  description="Folder path where you want to move processed file."
                  expressionType="Notify"
                  name="OverwriteFileInArchiveFolder">false</property>
                <property
                  dataType="System.String"
                  description="File naming convention for archived file. By default it will same name as original source file processed. But you can control naming format using {%name%} and {%ext%} placeholders. e.g. {%name%}_processed{%ext%} or {%name%}{%ext%}.{{System::ContainerStartTime,yyyyMMdd_HHmmss_fff}}"
                  expressionType="Notify"
                  name="ArchiveFileNamingConvention"></property>
                <property
                  dataType="System.Boolean"
                  description="When this property is true then Column is converted to Row. Pivoted names will appear under  Pivot_Name column and values will appear under Pivot_Value field."
                  expressionType="Notify"
                  name="EnablePivot">false</property>
                <property
                  dataType="System.Int32"
                  description="Metadata scan mode controls how data type and length is determined. By default few records scanned to determine datatype/length. Changing ScanMode affects length/datatype accuracy."
                  expressionType="Notify"
                  name="MetaDataScanMode"
                  typeConverter="ZappySys.Common.Data.MetaDataScanMode, ZappySys.Common, Version=1.0.2017.11220, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Int32"
                  description="Length for all string column. This option is only valid for MetaDataScanMode=Custom"
                  expressionType="Notify"
                  name="MetaDataCustomLength">1000</property>
                <property
                  dataType="System.String"
                  name="UserComponentTypeName">ZappySys.PowerPack.Adapter.XmlSource.XmlSource, ZappySys.PowerPack110, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502</property>
              </properties>
              <outputs>
                <output
                  refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput]"
                  errorOrTruncationOperation="Error"
                  errorRowDisposition="FailComponent"
                  name="XmlSourceOutput"
                  truncationRowDisposition="FailComponent">
                  <outputColumns>
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.dogs.dobermann.@age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.dogs.dobermann.@age]"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.dogs.dobermann.@age]"
                      name="things.animals.dogs.dobermann.@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.dogs.dobermann.#text]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.dogs.dobermann.#text]"
                      length="4"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.dogs.dobermann.#text]"
                      name="things.animals.dogs.dobermann.#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.dogs.rottweiler.@age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.dogs.rottweiler.@age]"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.dogs.rottweiler.@age]"
                      name="things.animals.dogs.rottweiler.@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.dogs.rottweiler.#text]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.dogs.rottweiler.#text]"
                      length="3"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.dogs.rottweiler.#text]"
                      name="things.animals.dogs.rottweiler.#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.dogs.pitbull.@age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.dogs.pitbull.@age]"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.dogs.pitbull.@age]"
                      name="things.animals.dogs.pitbull.@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.dogs.pitbull.#text]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.dogs.pitbull.#text]"
                      length="7"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.dogs.pitbull.#text]"
                      name="things.animals.dogs.pitbull.#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.cat.@age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.cat.@age]"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.cat.@age]"
                      name="things.animals.cat.@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.cat.#text]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.cat.#text]"
                      length="8"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.cat.#text]"
                      name="things.animals.cat.#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.mouse.@age]"
                      dataType="i8"
                      externalMetadataColumnId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.mouse.@age]"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.mouse.@age]"
                      name="things.animals.mouse.@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.mouse.#text]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.mouse.#text]"
                      length="7"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.mouse.#text]"
                      name="things.animals.mouse.#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.other.animal]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.other.animal]"
                      length="43"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.animals.other.animal]"
                      name="things.animals.other.animal" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.cars.car]"
                      dataType="wstr"
                      externalMetadataColumnId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.cars.car]"
                      length="41"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].Columns[things.cars.car]"
                      name="things.cars.car" />
                  </outputColumns>
                  <externalMetadataColumns
                    isUsed="True">
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.dogs.dobermann.@age]"
                      dataType="i8"
                      name="things.animals.dogs.dobermann.@age" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.dogs.dobermann.#text]"
                      dataType="wstr"
                      length="4"
                      name="things.animals.dogs.dobermann.#text" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.dogs.rottweiler.@age]"
                      dataType="i8"
                      name="things.animals.dogs.rottweiler.@age" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.dogs.rottweiler.#text]"
                      dataType="wstr"
                      length="3"
                      name="things.animals.dogs.rottweiler.#text" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.dogs.pitbull.@age]"
                      dataType="i8"
                      name="things.animals.dogs.pitbull.@age" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.dogs.pitbull.#text]"
                      dataType="wstr"
                      length="7"
                      name="things.animals.dogs.pitbull.#text" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.cat.@age]"
                      dataType="i8"
                      name="things.animals.cat.@age" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.cat.#text]"
                      dataType="wstr"
                      length="8"
                      name="things.animals.cat.#text" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.mouse.@age]"
                      dataType="i8"
                      name="things.animals.mouse.@age" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.mouse.#text]"
                      dataType="wstr"
                      length="7"
                      name="things.animals.mouse.#text" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.animals.other.animal]"
                      dataType="wstr"
                      length="43"
                      name="things.animals.other.animal" />
                    <externalMetadataColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput].ExternalColumns[things.cars.car]"
                      dataType="wstr"
                      length="41"
                      name="things.cars.car" />
                  </externalMetadataColumns>
                </output>
                <output
                  refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output]"
                  isErrorOut="true"
                  name="XmlSource Error Output">
                  <outputColumns>
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.dogs.dobermann.@age]"
                      dataType="i8"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.dogs.dobermann.@age]"
                      name="things.animals.dogs.dobermann.@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.dogs.dobermann.#text]"
                      dataType="wstr"
                      length="4"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.dogs.dobermann.#text]"
                      name="things.animals.dogs.dobermann.#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.dogs.rottweiler.@age]"
                      dataType="i8"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.dogs.rottweiler.@age]"
                      name="things.animals.dogs.rottweiler.@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.dogs.rottweiler.#text]"
                      dataType="wstr"
                      length="3"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.dogs.rottweiler.#text]"
                      name="things.animals.dogs.rottweiler.#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.dogs.pitbull.@age]"
                      dataType="i8"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.dogs.pitbull.@age]"
                      name="things.animals.dogs.pitbull.@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.dogs.pitbull.#text]"
                      dataType="wstr"
                      length="7"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.dogs.pitbull.#text]"
                      name="things.animals.dogs.pitbull.#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.cat.@age]"
                      dataType="i8"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.cat.@age]"
                      name="things.animals.cat.@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.cat.#text]"
                      dataType="wstr"
                      length="8"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.cat.#text]"
                      name="things.animals.cat.#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.mouse.@age]"
                      dataType="i8"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.mouse.@age]"
                      name="things.animals.mouse.@age" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.mouse.#text]"
                      dataType="wstr"
                      length="7"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.mouse.#text]"
                      name="things.animals.mouse.#text" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.other.animal]"
                      dataType="wstr"
                      length="43"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.animals.other.animal]"
                      name="things.animals.other.animal" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.cars.car]"
                      dataType="wstr"
                      length="41"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[things.cars.car]"
                      name="things.cars.car" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[ErrorCode]"
                      dataType="i4"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[ErrorCode]"
                      name="ErrorCode"
                      specialFlags="1" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[ErrorColumn]"
                      dataType="i4"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[ErrorColumn]"
                      name="ErrorColumn"
                      specialFlags="2" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[ErrorColumnName]"
                      codePage="1252"
                      dataType="str"
                      length="128"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[ErrorColumnName]"
                      name="ErrorColumnName" />
                    <outputColumn
                      refId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[ErrorMessage]"
                      dataType="wstr"
                      length="1024"
                      lineageId="Package\XML Flattening\Simple Flattening.Outputs[XmlSource Error Output].Columns[ErrorMessage]"
                      name="ErrorMessage" />
                  </outputColumns>
                  <externalMetadataColumns />
                </output>
              </outputs>
            </component>
            <component
              refId="Package\XML Flattening\Trash Destination"
              componentClassID="DTS.ManagedComponentWrapper.3"
              contactInfo="Trash Destination; ZappySys LLC (c) All Rights Reserved; SSIS PowerPack; http://www.zappysys.com/support"
              description="The trash destination is used to create dummy destination which ends data path without any processing."
              name="Trash Destination"
              version="2">
              <properties>
                <property
                  dataType="System.Int32"
                  description="LoggingMode determines how much information is logged during Package Execution. Set Logging mode to Debugging for maximum log."
                  expressionType="Notify"
                  name="LoggingMode"
                  typeConverter="ZappySys.PowerPack.Common.LoggingMode, ZappySys.PowerPack90, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="When you enable this property it will prefix timestamp before Log messages."
                  expressionType="Notify"
                  name="PrefixTimestamp">false</property>
                <property
                  dataType="System.Null"
                  expressionType="Notify"
                  name="SelfRef"
                  typeConverter="NOTBROWSABLE" />
                <property
                  dataType="System.String"
                  description="File path where you want to save data"
                  expressionType="Notify"
                  name="FilePath"></property>
                <property
                  dataType="System.Boolean"
                  description="Indicates if you want to save input data to comma separated text file"
                  expressionType="Notify"
                  name="SaveDataToFile">false</property>
                <property
                  dataType="System.Boolean"
                  description="Append data to file"
                  expressionType="Notify"
                  name="Append">false</property>
                <property
                  dataType="System.String"
                  description="RowSeparator"
                  expressionType="Notify"
                  name="RowSeparator">{NEWLINE}</property>
                <property
                  dataType="System.Boolean"
                  description="Indicates whether you want to overwrite target file if exists"
                  expressionType="Notify"
                  name="OverwriteFileIfExists">true</property>
                <property
                  dataType="System.String"
                  description="ColumnSeparator"
                  expressionType="Notify"
                  name="ColumnSeparator">,</property>
                <property
                  dataType="System.Boolean"
                  description="SupportUnicode"
                  expressionType="Notify"
                  name="SupportUnicode">true</property>
                <property
                  dataType="System.Boolean"
                  description="ColumnNamesInFirstRow"
                  expressionType="Notify"
                  name="ColumnNamesInFirstRow">true</property>
                <property
                  dataType="System.Boolean"
                  description="QuoteDataIfNeeded"
                  expressionType="Notify"
                  name="QuoteDataIfNeeded">true</property>
                <property
                  dataType="System.String"
                  description="Date time format string for any column with DT_DBDATETIME, DT_DBDATETIME2 or DB_DATE format"
                  expressionType="Notify"
                  name="DateTimeFormat">yyyy-MM-dd HH:mm:ss</property>
                <property
                  dataType="System.String"
                  name="UserComponentTypeName">ZappySys.PowerPack.Adapter.TrashDestination.TrashDestination, ZappySys.PowerPack110, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502</property>
              </properties>
              <inputs>
                <input
                  refId="Package\XML Flattening\Trash Destination.Inputs[TrashDestinationInput]"
                  hasSideEffects="true"
                  name="TrashDestinationInput">
                  <externalMetadataColumns />
                </input>
              </inputs>
            </component>
            <component
              refId="Package\XML Flattening\Trash Destination 1"
              componentClassID="DTS.ManagedComponentWrapper.3"
              contactInfo="Trash Destination; ZappySys LLC (c) All Rights Reserved; SSIS PowerPack; http://www.zappysys.com/support"
              description="The trash destination is used to create dummy destination which ends data path without any processing."
              name="Trash Destination 1"
              version="2">
              <properties>
                <property
                  dataType="System.Int32"
                  description="LoggingMode determines how much information is logged during Package Execution. Set Logging mode to Debugging for maximum log."
                  expressionType="Notify"
                  name="LoggingMode"
                  typeConverter="ZappySys.PowerPack.Common.LoggingMode, ZappySys.PowerPack90, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="When you enable this property it will prefix timestamp before Log messages."
                  expressionType="Notify"
                  name="PrefixTimestamp">false</property>
                <property
                  dataType="System.Null"
                  expressionType="Notify"
                  name="SelfRef"
                  typeConverter="NOTBROWSABLE" />
                <property
                  dataType="System.String"
                  description="File path where you want to save data"
                  expressionType="Notify"
                  name="FilePath"></property>
                <property
                  dataType="System.Boolean"
                  description="Indicates if you want to save input data to comma separated text file"
                  expressionType="Notify"
                  name="SaveDataToFile">false</property>
                <property
                  dataType="System.Boolean"
                  description="Append data to file"
                  expressionType="Notify"
                  name="Append">false</property>
                <property
                  dataType="System.String"
                  description="RowSeparator"
                  expressionType="Notify"
                  name="RowSeparator">{NEWLINE}</property>
                <property
                  dataType="System.Boolean"
                  description="Indicates whether you want to overwrite target file if exists"
                  expressionType="Notify"
                  name="OverwriteFileIfExists">true</property>
                <property
                  dataType="System.String"
                  description="ColumnSeparator"
                  expressionType="Notify"
                  name="ColumnSeparator">,</property>
                <property
                  dataType="System.Boolean"
                  description="SupportUnicode"
                  expressionType="Notify"
                  name="SupportUnicode">true</property>
                <property
                  dataType="System.Boolean"
                  description="ColumnNamesInFirstRow"
                  expressionType="Notify"
                  name="ColumnNamesInFirstRow">true</property>
                <property
                  dataType="System.Boolean"
                  description="QuoteDataIfNeeded"
                  expressionType="Notify"
                  name="QuoteDataIfNeeded">true</property>
                <property
                  dataType="System.String"
                  description="Date time format string for any column with DT_DBDATETIME, DT_DBDATETIME2 or DB_DATE format"
                  expressionType="Notify"
                  name="DateTimeFormat">yyyy-MM-dd HH:mm:ss</property>
                <property
                  dataType="System.String"
                  name="UserComponentTypeName">ZappySys.PowerPack.Adapter.TrashDestination.TrashDestination, ZappySys.PowerPack110, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502</property>
              </properties>
              <inputs>
                <input
                  refId="Package\XML Flattening\Trash Destination 1.Inputs[TrashDestinationInput]"
                  hasSideEffects="true"
                  name="TrashDestinationInput">
                  <externalMetadataColumns />
                </input>
              </inputs>
            </component>
            <component
              refId="Package\XML Flattening\Trash Destination 1 1"
              componentClassID="DTS.ManagedComponentWrapper.3"
              contactInfo="Trash Destination; ZappySys LLC (c) All Rights Reserved; SSIS PowerPack; http://www.zappysys.com/support"
              description="The trash destination is used to create dummy destination which ends data path without any processing."
              name="Trash Destination 1 1"
              version="2">
              <properties>
                <property
                  dataType="System.Int32"
                  description="LoggingMode determines how much information is logged during Package Execution. Set Logging mode to Debugging for maximum log."
                  expressionType="Notify"
                  name="LoggingMode"
                  typeConverter="ZappySys.PowerPack.Common.LoggingMode, ZappySys.PowerPack90, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502">0</property>
                <property
                  dataType="System.Boolean"
                  description="When you enable this property it will prefix timestamp before Log messages."
                  expressionType="Notify"
                  name="PrefixTimestamp">false</property>
                <property
                  dataType="System.Null"
                  expressionType="Notify"
                  name="SelfRef"
                  typeConverter="NOTBROWSABLE" />
                <property
                  dataType="System.String"
                  description="File path where you want to save data"
                  expressionType="Notify"
                  name="FilePath"></property>
                <property
                  dataType="System.Boolean"
                  description="Indicates if you want to save input data to comma separated text file"
                  expressionType="Notify"
                  name="SaveDataToFile">false</property>
                <property
                  dataType="System.Boolean"
                  description="Append data to file"
                  expressionType="Notify"
                  name="Append">false</property>
                <property
                  dataType="System.String"
                  description="RowSeparator"
                  expressionType="Notify"
                  name="RowSeparator">{NEWLINE}</property>
                <property
                  dataType="System.Boolean"
                  description="Indicates whether you want to overwrite target file if exists"
                  expressionType="Notify"
                  name="OverwriteFileIfExists">true</property>
                <property
                  dataType="System.String"
                  description="ColumnSeparator"
                  expressionType="Notify"
                  name="ColumnSeparator">,</property>
                <property
                  dataType="System.Boolean"
                  description="SupportUnicode"
                  expressionType="Notify"
                  name="SupportUnicode">true</property>
                <property
                  dataType="System.Boolean"
                  description="ColumnNamesInFirstRow"
                  expressionType="Notify"
                  name="ColumnNamesInFirstRow">true</property>
                <property
                  dataType="System.Boolean"
                  description="QuoteDataIfNeeded"
                  expressionType="Notify"
                  name="QuoteDataIfNeeded">true</property>
                <property
                  dataType="System.String"
                  description="Date time format string for any column with DT_DBDATETIME, DT_DBDATETIME2 or DB_DATE format"
                  expressionType="Notify"
                  name="DateTimeFormat">yyyy-MM-dd HH:mm:ss</property>
                <property
                  dataType="System.String"
                  name="UserComponentTypeName">ZappySys.PowerPack.Adapter.TrashDestination.TrashDestination, ZappySys.PowerPack110, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1903265a93eae502</property>
              </properties>
              <inputs>
                <input
                  refId="Package\XML Flattening\Trash Destination 1 1.Inputs[TrashDestinationInput]"
                  hasSideEffects="true"
                  name="TrashDestinationInput">
                  <externalMetadataColumns />
                </input>
              </inputs>
            </component>
          </components>
          <paths>
            <path
              refId="Package\XML Flattening.Paths[XmlSourceOutput]"
              endId="Package\XML Flattening\Trash Destination 1 1.Inputs[TrashDestinationInput]"
              name="XmlSourceOutput"
              startId="Package\XML Flattening\Simple Flattening.Outputs[XmlSourceOutput]" />
            <path
              refId="Package\XML Flattening.Paths[XmlSourceOutput1]"
              endId="Package\XML Flattening\Trash Destination.Inputs[TrashDestinationInput]"
              name="XmlSourceOutput"
              startId="Package\XML Flattening\Array Flattening with one element of other Array.Outputs[XmlSourceOutput]" />
            <path
              refId="Package\XML Flattening.Paths[XmlSourceOutput2]"
              endId="Package\XML Flattening\Trash Destination 1.Inputs[TrashDestinationInput]"
              name="XmlSourceOutput"
              startId="Package\XML Flattening\Array Flattening.Outputs[XmlSourceOutput]" />
          </paths>
        </pipeline>
      </DTS:ObjectData>
    </DTS:Executable>
  </DTS:Executables>
  <DTS:DesignTimeProperties><![CDATA[<?xml version="1.0"?>
<!--This CDATA section contains the layout information of the package. The section includes information such as (x,y) coordinates, width, and height.-->
<!--If you manually edit this section and make a mistake, you can delete it. -->
<!--The package will still be able to load normally but the previous layout information will be lost and the designer will automatically re-arrange the elements on the design surface.-->
<Objects
  Version="sql11">
  <!--Each node below will contain properties that do not affect runtime behavior.-->
  <Package
    design-time-name="Package">
    <LayoutInfo>
      <GraphLayout
        Capacity="4" xmlns="clr-namespace:Microsoft.SqlServer.IntegrationServices.Designer.Model.Serialization;assembly=Microsoft.SqlServer.IntegrationServices.Graph">
        <NodeLayout
          Size="160,42"
          Id="Package\JSON Flattening"
          TopLeft="197,91" />
        <NodeLayout
          Size="153,42"
          Id="Package\XML Flattening"
          TopLeft="195,259" />
      </GraphLayout>
    </LayoutInfo>
  </Package>
  <TaskHost
    design-time-name="Package\JSON Flattening">
    <LayoutInfo>
      <GraphLayout
        Capacity="16" xmlns="clr-namespace:Microsoft.SqlServer.IntegrationServices.Designer.Model.Serialization;assembly=Microsoft.SqlServer.IntegrationServices.Graph" xmlns:mssgle="clr-namespace:Microsoft.SqlServer.Graph.LayoutEngine;assembly=Microsoft.SqlServer.Graph" xmlns:assembly="http://schemas.microsoft.com/winfx/2006/xaml">
        <NodeLayout
          Size="164,42"
          Id="Package\JSON Flattening\Simple Flattening"
          TopLeft="326,58" />
        <NodeLayout
          Size="165,42"
          Id="Package\JSON Flattening\Trash Destination"
          TopLeft="684,324" />
        <NodeLayout
          Size="165,42"
          Id="Package\JSON Flattening\Trash Destination 1"
          TopLeft="536,199" />
        <NodeLayout
          Size="165,42"
          Id="Package\JSON Flattening\Trash Destination 1 1"
          TopLeft="540,60" />
        <NodeLayout
          Size="157,42"
          Id="Package\JSON Flattening\Array Flattening"
          TopLeft="322,197" />
        <NodeLayout
          Size="312,42"
          Id="Package\JSON Flattening\Array Flattening with one element of other Array"
          TopLeft="324,324" />
        <EdgeLayout
          Id="Package\JSON Flattening.Paths[JsonSourceOutput2]"
          TopLeft="490,80">
          <EdgeLayout.Curve>
            <mssgle:Curve
              StartConnector="{assembly:Null}"
              EndConnector="50,0"
              Start="0,0"
              End="42.5,0">
              <mssgle:Curve.Segments>
                <mssgle:SegmentCollection
                  Capacity="5">
                  <mssgle:LineSegment
                    End="42.5,0" />
                </mssgle:SegmentCollection>
              </mssgle:Curve.Segments>
            </mssgle:Curve>
          </EdgeLayout.Curve>
          <EdgeLayout.Labels>
            <EdgeLabelCollection />
          </EdgeLayout.Labels>
        </EdgeLayout>
        <EdgeLayout
          Id="Package\JSON Flattening.Paths[JsonSourceOutput1]"
          TopLeft="479,219">
          <EdgeLayout.Curve>
            <mssgle:Curve
              StartConnector="{assembly:Null}"
              EndConnector="57,0"
              Start="0,0"
              End="49.5,0">
              <mssgle:Curve.Segments>
                <mssgle:SegmentCollection
                  Capacity="5">
                  <mssgle:LineSegment
                    End="49.5,0" />
                </mssgle:SegmentCollection>
              </mssgle:Curve.Segments>
            </mssgle:Curve>
          </EdgeLayout.Curve>
          <EdgeLayout.Labels>
            <EdgeLabelCollection />
          </EdgeLayout.Labels>
        </EdgeLayout>
        <EdgeLayout
          Id="Package\JSON Flattening.Paths[JsonSourceOutput]"
          TopLeft="636,345">
          <EdgeLayout.Curve>
            <mssgle:Curve
              StartConnector="{assembly:Null}"
              EndConnector="48,0"
              Start="0,0"
              End="40.5,0">
              <mssgle:Curve.Segments>
                <mssgle:SegmentCollection
                  Capacity="5">
                  <mssgle:LineSegment
                    End="40.5,0" />
                </mssgle:SegmentCollection>
              </mssgle:Curve.Segments>
            </mssgle:Curve>
          </EdgeLayout.Curve>
          <EdgeLayout.Labels>
            <EdgeLabelCollection />
          </EdgeLayout.Labels>
        </EdgeLayout>
        <AnnotationLayout
          Text="Second item of &quot;cars&quot; array is taken (as configured)"
          ParentId="Package\JSON Flattening"
          FontInfo="{assembly:Null}"
          Size="179,56"
          Id="58fcb89e-fc9a-45b4-81d7-f74d264d844d"
          TopLeft="60,322" />
        <AnnotationLayout
          Text="&quot;cars&quot; array is not flattened, because there is no way of knowing how to join &quot;cars&quot; array with &quot;animals&quot;.&quot;other&quot; array."
          ParentId="Package\JSON Flattening"
          FontInfo="{assembly:Null}"
          Size="221,88"
          Id="ce5dbaee-6eb9-45c6-97aa-0b0ab7e7f0a9"
          TopLeft="63,173" />
        <AnnotationLayout
          Text="Arrays are not flattened"
          ParentId="Package\JSON Flattening"
          FontInfo="{assembly:Null}"
          Size="154,40"
          Id="73b7446f-d425-455a-b2dd-d9b4c1b58bf7"
          TopLeft="73,59" />
      </GraphLayout>
    </LayoutInfo>
  </TaskHost>
  <TaskHost
    design-time-name="Package\XML Flattening">
    <LayoutInfo>
      <GraphLayout
        Capacity="16" xmlns="clr-namespace:Microsoft.SqlServer.IntegrationServices.Designer.Model.Serialization;assembly=Microsoft.SqlServer.IntegrationServices.Graph" xmlns:mssgle="clr-namespace:Microsoft.SqlServer.Graph.LayoutEngine;assembly=Microsoft.SqlServer.Graph" xmlns:assembly="http://schemas.microsoft.com/winfx/2006/xaml">
        <NodeLayout
          Size="165,42"
          Id="Package\XML Flattening\Trash Destination"
          TopLeft="709,332" />
        <NodeLayout
          Size="165,42"
          Id="Package\XML Flattening\Trash Destination 1"
          TopLeft="550,211" />
        <NodeLayout
          Size="165,42"
          Id="Package\XML Flattening\Trash Destination 1 1"
          TopLeft="545,71" />
        <NodeLayout
          Size="157,42"
          Id="Package\XML Flattening\Array Flattening"
          TopLeft="329,214" />
        <NodeLayout
          Size="164,42"
          Id="Package\XML Flattening\Simple Flattening"
          TopLeft="329,68" />
        <NodeLayout
          Size="312,42"
          Id="Package\XML Flattening\Array Flattening with one element of other Array"
          TopLeft="323,330" />
        <EdgeLayout
          Id="Package\XML Flattening.Paths[XmlSourceOutput2]"
          TopLeft="486,233.5">
          <EdgeLayout.Curve>
            <mssgle:Curve
              StartConnector="{assembly:Null}"
              EndConnector="64,0"
              Start="0,0"
              End="56.5,0">
              <mssgle:Curve.Segments>
                <mssgle:SegmentCollection
                  Capacity="5">
                  <mssgle:LineSegment
                    End="56.5,0" />
                </mssgle:SegmentCollection>
              </mssgle:Curve.Segments>
            </mssgle:Curve>
          </EdgeLayout.Curve>
          <EdgeLayout.Labels>
            <EdgeLabelCollection />
          </EdgeLayout.Labels>
        </EdgeLayout>
        <EdgeLayout
          Id="Package\XML Flattening.Paths[XmlSourceOutput1]"
          TopLeft="635,352">
          <EdgeLayout.Curve>
            <mssgle:Curve
              StartConnector="{assembly:Null}"
              EndConnector="74,0"
              Start="0,0"
              End="66.5,0">
              <mssgle:Curve.Segments>
                <mssgle:SegmentCollection
                  Capacity="5">
                  <mssgle:LineSegment
                    End="66.5,0" />
                </mssgle:SegmentCollection>
              </mssgle:Curve.Segments>
            </mssgle:Curve>
          </EdgeLayout.Curve>
          <EdgeLayout.Labels>
            <EdgeLabelCollection />
          </EdgeLayout.Labels>
        </EdgeLayout>
        <EdgeLayout
          Id="Package\XML Flattening.Paths[XmlSourceOutput]"
          TopLeft="493,90.5">
          <EdgeLayout.Curve>
            <mssgle:Curve
              StartConnector="{assembly:Null}"
              EndConnector="52,0"
              Start="0,0"
              End="44.5,0">
              <mssgle:Curve.Segments>
                <mssgle:SegmentCollection
                  Capacity="5">
                  <mssgle:LineSegment
                    End="44.5,0" />
                </mssgle:SegmentCollection>
              </mssgle:Curve.Segments>
            </mssgle:Curve>
          </EdgeLayout.Curve>
          <EdgeLayout.Labels>
            <EdgeLabelCollection />
          </EdgeLayout.Labels>
        </EdgeLayout>
        <AnnotationLayout
          Text="Second item of &quot;cars&quot; array is taken (as configured)"
          ParentId="Package\XML Flattening"
          FontInfo="{assembly:Null}"
          Size="179,56"
          Id="345a0968-e8d9-4f8b-8d2d-08fc9226e1c9"
          TopLeft="77,323" />
        <AnnotationLayout
          Text="&quot;cars&quot; array is not flattened, because there is no way of knowing how to join &quot;cars&quot; array with &quot;animals&quot;.&quot;other&quot; array."
          ParentId="Package\XML Flattening"
          FontInfo="{assembly:Null}"
          Size="221,88"
          Id="0dc27e4e-a6b9-4d94-a401-caad6ac3c640"
          TopLeft="80,174" />
        <AnnotationLayout
          Text="Arrays are not flattened"
          ParentId="Package\XML Flattening"
          FontInfo="{assembly:Null}"
          Size="154,40"
          Id="8e422078-a334-4877-b276-484c07b39f4c"
          TopLeft="89,69" />
      </GraphLayout>
    </LayoutInfo>
  </TaskHost>
</Objects>]]></DTS:DesignTimeProperties>
</DTS:Executable>