playerglobal-source-gen: special case for XML/XMLList constructors
diff --git a/playerglobal-source-gen/src/main/java/org/apache/royale/playerglobal/PlayerglobalSourceGen.java b/playerglobal-source-gen/src/main/java/org/apache/royale/playerglobal/PlayerglobalSourceGen.java
index e58e160..88f1449 100644
--- a/playerglobal-source-gen/src/main/java/org/apache/royale/playerglobal/PlayerglobalSourceGen.java
+++ b/playerglobal-source-gen/src/main/java/org/apache/royale/playerglobal/PlayerglobalSourceGen.java
@@ -747,7 +747,7 @@
 		functionBuilder.append("function ");
 		functionBuilder.append(functionName);
 		functionBuilder.append("(");
-		parseParameters(apiParamElements, contextClassName, functionBuilder);
+		parseParameters(apiParamElements, contextClassName, functionName, functionBuilder);
 		functionBuilder.append(")");
 		functionBuilder.append(":");
 		functionBuilder.append(returnType);
@@ -793,7 +793,7 @@
 		functionBuilder.append("function ");
 		functionBuilder.append(constructorName);
 		functionBuilder.append("(");
-		parseParameters(apiParamElements, contextClassName, functionBuilder);
+		parseParameters(apiParamElements, contextClassName, constructorName, functionBuilder);
 		functionBuilder.append(")");
 		functionBuilder.append(";");
 		functionBuilder.append("\n");
@@ -958,8 +958,10 @@
 		}
 	}
 
-	private void parseParameters(List<Element> apiParamElements, String contextClassName, StringBuilder functionBuilder)
-			throws Exception {
+	private void parseParameters(List<Element> apiParamElements, String contextClassName, String contextFunctionName,
+			StringBuilder functionBuilder) throws Exception {
+		boolean isXMLConstructor = ("XML".equals(contextClassName) && "XML".equals(contextFunctionName))
+				|| ("XMLList".equals(contextClassName) && "XMLList".equals(contextFunctionName));
 		for (int i = 0; i < apiParamElements.size(); i++) {
 			if (i > 0) {
 				functionBuilder.append(", ");
@@ -979,18 +981,23 @@
 				throw new Exception("apiItemName not found");
 			}
 			functionBuilder.append(apiItemNameElement.getTextTrim());
-			Element apiOperationClassifierElement = apiParamElement.element("apiOperationClassifier");
-			if (apiOperationClassifierElement != null) {
-				paramType = apiOperationClassifierElement.getTextTrim();
-				paramType = paramType.replace(":", ".");
-			}
-			if (paramType != null) {
-				functionBuilder.append(":");
-				functionBuilder.append(paramType);
-			}
-			Element apiDataElement = apiParamElement.element("apiData");
-			if (apiDataElement != null) {
-				writeVariableOrParameterValue(apiDataElement, paramType, functionBuilder);
+			if (isXMLConstructor) {
+				//workaround for missing data in asdoc dita
+				functionBuilder.append(":* = null");
+			} else {
+				Element apiOperationClassifierElement = apiParamElement.element("apiOperationClassifier");
+				if (apiOperationClassifierElement != null) {
+					paramType = apiOperationClassifierElement.getTextTrim();
+					paramType = paramType.replace(":", ".");
+				}
+				if (paramType != null) {
+					functionBuilder.append(":");
+					functionBuilder.append(paramType);
+				}
+				Element apiDataElement = apiParamElement.element("apiData");
+				if (apiDataElement != null) {
+					writeVariableOrParameterValue(apiDataElement, paramType, functionBuilder);
+				}
 			}
 		}
 	}