User Guide > Using the Any-Any Transformation Editor > Transformation Editor Concepts > Transformation Editor Limitations
 
Transformation Editor Limitations
There are limitations when using the Transformation Editor:
Loop chaining is not supported.
A loop iterator that contains a sequence cannot be used as the source of another loop. To work around this:
Instead of multiple loop operations, use a single loop with multiple iterators.
Map the child sequence to a child transformation and perform the required secondary looping within that child transform.
XML Limitations
XML substitution groups are not currently supported.
XML type restrictions are not supported. The Transformation Editor can use XML types with restrictions, but the restrictions are currently ignored.
XML any and all elements and groups are not fully supported.
Some TDV procedures output XML without a schema. The ability to use such procedures might be limited.
The XML File, Web Service, and XML/HTTP data sources automatically generate or provide the ability to associate the data source's XML definitions set with the signatures of the resources within those data sources. This allows the Transformation Editor to operate using the XML schemas associated with these resources. If your existing data sources do not have the associated definition set, you can try re-introspecting or recreating them to get it.
XML unions (element-based) are not supported. However, XML choices are supported and appear as a canonical Union type within the Transformation Editor.
Code Generation
Query and Join hints are only applied to queries that will be optimized into SQL.
SQL push optimizations are only applied to query operations and the sources they directly depend upon.
There is no indicator of whether or not a query will be generated as XQuery or SQL. You will need to look at the generated source code to see whether it was optimized or not. In general, if a query's sources are relational, SQL will be generated.
No runtime schema validation is performed.
Other Limitations
There is no technique to perform element selection. Transformations that make decisions based on element names are not supported.
Cross joins are not supported.
There is no way to handle case-sensitivity mismatches.
There is no literal format for durations.
The cast operation is not supported for casting to a complex structure. If you need to cast the children of a structure, you must assign the structure field by field and insert casts as appropriate for each of the fields. If the structure is a sequence, you can insert a loop operation into your mapping to iterate over all the elements and then provide the individual assignments (with appropriate casting) to the target structure.
There are several SQL functions that do not work well. These include:
CAST, CORR, COVAR_SAMP, STDDEV, STDDEV_POP, STDDEV_SAM, SUM_FLOAT, VAR_POP, VAR_SAMP, VARIANCE, VARIANCE_POP, VARIANCE_SAMP, XMLATTRIBUTES, XMLFOREST, XMLQUERY
Creating placeholders for intermediate values is not allowed. The workaround is to invoke a child transformation and use the outputs of that transformation as a reference for the intermediate values you want to reuse. Invocations of child transformations are optimized to avoid the overhead of a full TDV procedure invocation.
If you rename an element that is directly based on an XML element, the transformation may not work. Avoid renaming element based on XML elements. When you create an element based on an XML element, it normally gets a default name and namespace that matches the XML element. This can be fixed by renaming the element to match the native XML element name.