You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by ha...@apache.org on 2016/04/11 00:48:29 UTC

[18/49] git commit: [flex-asjs] [refs/heads/develop] - Changed XML to match the new folder structure

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a487152a/frameworks/projects/XML/src/main/flex/XMLList.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/XML/src/main/flex/XMLList.as b/frameworks/projects/XML/src/main/flex/XMLList.as
new file mode 100644
index 0000000..e34b765
--- /dev/null
+++ b/frameworks/projects/XML/src/main/flex/XMLList.as
@@ -0,0 +1,657 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+COMPILE::JS
+{
+package
+{
+	public class XMLList
+	{
+		public function XMLList()
+		{
+			addIndex(0);
+		}
+		private var _targetObject:XML;
+		public function set targetObject(value:XML):void
+		{
+			_targetObject = value;
+		}
+		private var _targetProperty:QName;
+		public function set targetProperty(value:QName):void
+		{
+			_targetProperty = value;
+		}
+		private var _xmlArray:Array = [];
+		/*
+			9.2.1.2 [[Put]] (P, V)
+			Overview
+			The XMLList type overrides the internal [[Put]] method defined by the Object type. The XMLList [[Put]] method is used to modify or replace an XML object within the XMLList and the context of its parent. In addition, when the XMLList contains a single property with an XML object, the [[Put]] method is used to modify, replace, and insert properties or XML attributes of that value by name. The input argument P identifies which portion of the XMLList and associated XML objects will be affected and may be a numeric property name, an unqualified name for an XML attribute (distinguished from XML valued property names by a leading “@” symbol) or set of XML elements, a QName for a set of XML elements, an AttributeName for a set of XML attributes or the properties wildcard “*”. When the input argument P is an unqualified XML element name, it identifies XML elements in the default namespace. When the input argument P is an unqualified XML attribute name, it identifies XML attributes
  in no namespace. The input argument V may be a value of type XML, XMLList or any value that can be converted to a String with ToString().
+			NOTE Unlike the internal Object [[Put]] method, the internal XMLList [[Put]] method is never used for modifying the set of methods associated with XMLList objects.
+			Semantics
+			When the [[Put]] method of an XMLList object x is called with property name P and value V, the following steps are taken:
+			1. Let i = ToUint32(P)
+			2. If ToString(i) == P
+			  a. If x.[[TargetObject]] is not null
+			    i. Let r be the result of calling the [[ResolveValue]] method of x.[[TargetObject]]
+			    ii. If r == null, return
+			  b. Else let r = null
+			  c. If i is greater than or equal to x.[[Length]]
+			    i. If Type(r) is XMLList
+			      1. If r.[[Length]] is not equal to 1, return
+			      2. Else let r = r[0]
+			    ii. If r.[[Class]] is not equal to "element", return
+			    iii. Create a new XML object y with y.[[Parent]] = r, y.[[Name]] = x.[[TargetProperty]], y.[[Attributes]] = {}, y.[[Length]] = 0
+			    iv. If Type(x.[[TargetProperty]]) is AttributeName
+			      1. Let attributeExists be the result of calling the [[Get]] method of r with argument y.[[Name]]
+			      2. If (attributeExists.[[Length]] > 0), return
+			      3. Let y.[[Class]] = "attribute"
+			    v. Else if x.[[TargetProperty]] == null or x.[[TargetProperty]].localName == "*"
+			      1. Let y.[[Name]] = null
+			      2. Let y.[[Class]] = "text"
+			    vi. Else let y.[[Class]] = "element"
+			    vii. Let i = x.[[Length]]
+			    viii. If (y.[[Class]] is not equal to "attribute")
+			      1. If r is not null
+			        a. If (i > 0)
+			          i. Let j = 0
+			          ii. While (j < r.[[Length]]-1) and (r[j] is not the same object as x[i-1])
+			            1. Let j = j + 1
+			        b. Else
+			          i. Let j = r.[[Length]]-1
+			        c. Call the [[Insert]] method of r with arguments ToString(j+1) and y
+			      2. If Type(V) is XML, let y.[[Name]] = V.[[Name]]
+			      3. Else if Type(V) is XMLList, let y.[[Name]] = V.[[TargetProperty]]
+			    ix. Call the [[Append]] method of x with argument y
+			  d. If (Type(V) ∉ {XML, XMLList}) or (V.[[Class]] ∈ {"text", "attribute"}), let V = ToString(V)
+			  e. If x[i].[[Class]] == "attribute"
+			    i. Let z = ToAttributeName(x[i].[[Name]])
+			    ii. Call the [[Put]] method of x[i].[[Parent]] with arguments z and V
+			    iii. Let attr be the result of calling [[Get]] on x[i].[[Parent]] with argument z
+			    iv. Let x[i] = attr[0]
+			  f. Else if Type(V) is XMLList
+			    i. Create a shallow copy c of V
+			    ii. Let parent = x[i].[[Parent]]
+			    iii. If parent is not null
+			      1. Let q be the property of parent, such that parent[q] is the same object as x[i]
+			      2. Call the [[Replace]] method of parent with arguments q and c
+			      3. For j = 0 to c.[[Length]]-1
+			        a. Let c[j] = parent[ToUint32(q)+j]
+			    iv. If c.[[Length]] == 0
+			      1. For j = i + 1 to x.[[Length]] – 1, rename property j of x to ToString(j-1)
+			    v. Else
+			      1. For j = x.[[Length]]-1 downto i + 1, rename property j of x to ToString(j + c.[[Length]] - 1)
+			    vi. For j = 0 to c.[[Length]]-1, let x[i + j] = c[j]
+			    vii. Let x.[[Length]] = x.[[Length]] + c.[[Length]] - 1
+			  g. Else if (Type(V) is XML) or (x[i].[[Class]] ∈ {"text", "comment", "processing-instruction"})
+			    i. Let parent = x[i].[[Parent]]
+			    ii. If parent is not null
+			      1. Let q be the property of parent, such that parent[q] is the same object as x[i]
+			      2. Call the [[Replace]] method of parent with arguments q and V
+			      3. Let V = parent[q]
+			    iii. If Type(V) is String
+			      1. Create a new XML object t with t.[[Class]] = "text", t.[[Parent]] = x and t.[[Value]] = V
+			      2. Let x[i] = t
+			    iv. Else
+			      1. Let x[i] = V
+			  h. Else
+			    i. Call the [[Put]] method of x[i] with arguments "*" and V
+			3. Else if x.[[Length]] is less than or equal to 1
+			  a. If x.[[Length]] == 0
+			    i. Let r be the result of calling the [[ResolveValue]] method of x
+			    ii. If (r == null) or (r.[[Length]] is not equal to 1), return
+			    iii. Call the [[Append]] method of x with argument r
+			  b. Call the [[Put]] method of x[0] with arguments P and V
+			4. Return
+		*/
+		private function addIndex(idx:int):void
+		{
+			var idxStr:String = "" + idx;
+			Object.defineProperty(this,idxStr,
+				{
+					get: function() { return _xmlArray[idx]; },
+					set: function(newValue:*) {
+						var i:int;
+						if(newValue is XML)
+						{
+							_xmlArray[idx] = newValue;
+						}
+						else if(newValue is XMLList)
+						{
+							var len:int = newValue.length();
+							for(i=0;i<len;i++)
+							{
+								// replace the first one and add each additonal one.
+								if(i==0)
+									_xmlArray[idx] = newValue[i];
+								else
+									_xmlArray.splice(idx+i,0,newValue[i]);
+							}
+						}
+						// add indexes as necessary
+						while(idx++ < _xmlArray.length)
+						{
+							if(!this.hasOwnProperty(idx))
+								addIndex(idx);
+						}
+					},
+					enumerable: true,
+					configurable: true
+				}
+			);
+		}
+		
+		public function appendChild(child:XML):void
+		{
+			addIndex(_xmlArray.length);
+			_xmlArray[_xmlArray.length] = child;
+		}
+		
+		/**
+		 * Calls the attribute() method of each XML object and returns an XMLList object of the results.
+		 * 
+		 * @param attributeName
+		 * @return 
+		 * 
+		 */
+		public function attribute(attributeName:*):XMLList
+		{
+			var retVal:XMLList = new XMLList();
+			var len:int = _xmlArray.length;
+			for (var i:int=0;i<len;i++)
+			{
+				var list:XMLList = _xmlArray[i].attribute(attributeName);
+				if(list.length())
+					retVal = retVal.concat(list);
+			}
+			return retVal;
+		}
+		/**
+		 * Calls the attributes() method of each XML object and returns an XMLList object of attributes for each XML object.
+		 * 
+		 * @return 
+		 * 
+		 */
+		public function attributes():XMLList
+		{
+			var retVal:XMLList = new XMLList();
+			var len:int = _xmlArray.length;
+			for (var i:int=0;i<len;i++)
+			{
+				var list:XMLList = _xmlArray[i].attributes();
+				if(list.length())
+					retVal = retVal.concat(list);
+			}
+			return retVal;
+		}
+		/**
+		 * Calls the child() method of each XML object and returns an XMLList object that contains the results in order.
+		 * 
+		 * @param propertyName
+		 * @return 
+		 * 
+		 */
+		public function child(propertyName:Object):XMLList
+		{
+			var retVal:XMLList = new XMLList();
+			var len:int = _xmlArray.length;
+			for (var i:int=0;i<len;i++)
+			{
+				var list:XMLList = _xmlArray[i].child(propertyName);
+				if(list.length())
+					retVal = retVal.concat(list);
+			}
+			return retVal;
+		}
+		/**
+		 * Calls the children() method of each XML object and returns an XMLList object that contains the results.
+		 * 
+		 * @return 
+		 * 
+		 */
+		public function children():XMLList
+		{
+			var retVal:XMLList = new XMLList();
+			var len:int = _xmlArray.length;
+			for (var i:int=0;i<len;i++)
+			{
+				var list:XMLList = _xmlArray[i].children();
+				if(list.length)
+					retVal = retVal.concat(list);
+			}
+			return retVal;
+		}
+		
+		/**
+		 * Calls the comments() method of each XML object and returns an XMLList of comments.
+		 * @return 
+		 * 
+		 */
+		public function comments():XMLList
+		{
+			var retVal:XMLList = new XMLList();
+			var len:int = _xmlArray.length;
+			for (var i:int=0;i<len;i++)
+			{
+				var list:XMLList = _xmlArray[i].comments();
+				if(list.length)
+					retVal = retVal.concat(list);
+			}
+			return retVal;
+		}
+		
+		public function concat(list:*):XMLList
+		{
+			if(list is XML)
+			{
+				var newList:XMLList = new XMLList();
+				newList.appendChild(list);
+				list = newList;
+			}
+			if(!(list is XMLList))
+				throw new TypeError("invalid type");
+
+			var retVal:XMLList = this.copy();
+			var item:XML;
+			for each(item in list)
+				retVal.appendChild(item);
+				
+			return retVal;
+		}
+		
+		/**
+		 * Checks whether the XMLList object contains an XML object that is equal to the given value parameter.
+		 * 
+		 * @param value
+		 * @return 
+		 * 
+		 */
+		public function contains(value:XML):Boolean
+		{
+			
+			var len:int = _xmlArray.length;
+			for (var i:int=0;i<len;i++)
+			{
+				if(_xmlArray[i].contains(value))
+					return true;
+			}
+			return false;
+		}
+		
+		/**
+		 * Returns a copy of the given XMLList object.
+		 * 
+		 * @return 
+		 * 
+		 */
+		public function copy():XMLList
+		{
+			var retVal:XMLList = new XMLList();
+			var len:int = _xmlArray.length;
+			for (var i:int=0;i<len;i++)
+				retVal[i] = _xmlArray[i].copy();
+			
+			return retVal;
+		}
+		
+		/**
+		 * Returns all descendants (children, grandchildren, great-grandchildren, and so on) of the XML object that have the given name parameter.
+		 * 
+		 * @param name
+		 * @return 
+		 * 
+		 */
+		public function descendants(name:Object = *):XMLList
+		{
+			var retVal:XMLList = new XMLList();
+			var len:int = _xmlArray.length;
+			for (var i:int=0;i<len;i++)
+			{
+				var list:XMLList = _xmlArray[i].descendants(name);
+				if(list.length())
+					retVal = retVal.concat(list);
+			}
+			return retVal;
+		}
+		
+		/**
+		 * Calls the elements() method of each XML object.
+		 * 
+		 * @param name
+		 * @return 
+		 * 
+		 */
+		public function elements(name:Object = *):XMLList
+		{
+			var retVal:XMLList = new XMLList();
+			var len:int = _xmlArray.length;
+			for (var i:int=0;i<len;i++)
+			{
+				var list:XMLList = _xmlArray[i].elements(name);
+				if(list.length())
+					retVal = retVal.concat(list);
+			}
+			return retVal;
+		}
+
+		public function equals(list:*):Boolean
+		{
+			/*
+				Overview
+				The XMLList type adds the internal [[Equals]] method to the internal properties defined by the Object type.
+				The XMLList [[Equals]] method is used to compare this XMLList object for content equality 
+				with another XMLList object V or determine whether this XMLList object contains a single XML object that compares equal to V. 
+				The [[Equals]] operator returns true if this XMLList object is considered equal to V 
+				or contains only one XML object that is considered equal to V. Otherwise, it returns false. 
+				Empty XMLList objects are considered equal to undefined. 
+				The input argument V may be a value of type XMLList, XML, undefined or any value that can be converted to a String with ToString().
+				
+				Semantics
+				When the [[Equals]] method of an XML object x is called with value V, the following steps are taken:
+				1. If V == undefined and x.[[Length]] == 0, return true
+				2. If Type(V) is XMLList
+				  a. If x.[[Length]] is not equal to V.[[Length]], return false
+				  b. For i = 0 to x.[[Length]]
+				    i. If the result of the comparison x[i] == V[i] is false, return false
+				  c. Return true
+				3. Else if x.[[Length]] == 1
+				  a. Return the result of the comparison x[0] == V
+				4. Return false
+			*/
+			return false;
+		}
+		
+		public function hasComplexContent():Boolean
+		{
+			//what to do with multiple nodes? If anything is complex, we return true.
+			if(_xmlArray.length == 0)
+				return false;
+			var len:int = _xmlArray.length;
+			for (var i:int=1;i<len;i++)
+			{
+				if(_xmlArray[i].hasComplexContent())
+					return true;
+			}
+			return false;
+		}
+
+		public function hasOwnProperty(propertyName:*):Boolean
+		{
+			/*
+				Overview
+				The XMLList type overrides the internal [[HasProperty]] method defined by the Object type. The XMLList [[HasProperty]] method is used to determine whether this XMLList object contains an XML element or attribute by its ordinal position or whether any of the objects contained in this XMLList object contains an XML element or attribute by its name. The input argument P may be a numeric property name, an unqualified name for an XML attribute (distinguished from the name of XML elements by a leading “@” symbol) or a set of XML elements, a QName for a set of XML elements, an AttributeName for a set of XML attributes, the properties wildcard “*” or the attributes wildcard “@*”. When the input argument P is an unqualified XML element name, it identifies XML elements in the default namespace. When the input argument P is an unqualified XML attribute name, it identifies XML attributes in no namespace.
+				Semantics
+				When the [[HasProperty]] method of an XMLList object x is called with property name P, the following steps are taken:
+				1. If ToString(ToUint32(P)) == P
+				a. Return (ToUint32(P) < x.[[Length]])
+				2. For i = 0 to x.[[Length]]-1
+				a. If x[i].[[Class]] == "element" and the result of calling the [[HasProperty]] method of x[i] with argument P == true, return true
+				3. Return false			
+			*/
+			if(parseInt(propertyName,10).toString() == propertyName)
+			{
+				return parseInt(propertyName,10) < _xmlArray.length;
+			}
+			var len:int = _xmlArray.length;
+			for (var i:int=1;i<len;i++)
+			{
+				if(_xmlArray[i].hasOwnProperty(propertyName))
+					return true;
+			}
+			return false;
+		}
+		
+		/**
+		 * Checks whether the XMLList object contains simple content.
+		 * 
+		 * @return 
+		 * 
+		 */
+		public function hasSimpleContent():Boolean
+		{
+			//what to do with multiple nodes? If anything is complex, we return false.
+			if(_xmlArray.length == 0)
+				return true;
+			var len:int = _xmlArray.length;
+			for (var i:int=1;i<len;i++)
+			{
+				if(_xmlArray[i].hasComplexContent())
+					return false;
+			}
+			return true;
+		}
+		
+		/**
+		 * Returns the number of items in the XMLList.
+		 * 
+		 * @return 
+		 * 
+		 */
+		public function length():int
+		{
+			return _xmlArray.length;
+		}
+		
+		/**
+		 * Merges adjacent text nodes and eliminates empty text nodes for each of the following:
+		 * all text nodes in the XMLList, all the XML objects contained in the XMLList, and the descendants of all the XML objects in the XMLList.
+		 * 
+		 * @return 
+		 * 
+		 */
+		public function normalize():XMLList
+		{
+			//TODO: Figure out what to do here.
+		}
+		
+		/**
+		 * Returns the parent of the XMLList object if all items in the XMLList object have the same parent.
+		 * 
+		 * @return 
+		 * 
+		 */
+		public function parent():Object
+		{
+			if(_xmlArray.length == 0)
+				return undefined;
+			var retVal = this[0].parent;
+			var len:int = _xmlArray.length;
+			for (var i:int=1;i<len;i++)
+			{
+				if(_xmlArray[i].parent != retVal)
+					return undefined;
+			}
+			return retVal;
+		}
+		
+		/**
+		 * If a name parameter is provided, lists all the children of the XMLList object that contain processing instructions with that name.
+		 * 
+		 * @param name
+		 * @return 
+		 * 
+		 */
+		public function processingInstructions(name:String = "*"):XMLList
+		{
+			var retVal:XMLList = new XMLList();
+			if(!name)
+				return retVal;
+			var len:int = _xmlArray.length;
+			for (var i:int=0;i<len;i++)
+			{
+				if(_xmlArray[i].nodeKind() != "processing-instruction")
+					continue;
+				if(name == "*")
+				{
+					retVal.appendChild(_xmlArray[i]);
+				}
+				else if(name == _xmlArray[i].localName)
+					retVal.appendChild(_xmlArray[i]);
+			}
+			return retVal;
+		}
+
+		public function removeChild(child:*):void
+		{
+			var i:int;
+			var len:int;
+			if(child is XMLList)
+			{
+				len = child.length();
+				for(i=0;i<len;i++)
+				{
+					removeChild(child[i]);
+				}
+			}
+			else if(child is XML)
+			{
+				len = _xmlArray.length-1;
+				for(i=len; i >= 0; i--)
+				{
+					if(_xmlArray[i] == child)
+					{
+						_xmlArray.splice(i,1);
+					}
+				}
+			}
+		}
+
+		public function removeChildAt(idx:int):void
+		{
+			if(idx >= 0 && idx < _xmlArray.length)
+				_xmlArray.splice(idx,1);
+		}
+
+		private var _targetObject:*;
+		/**
+		 * @private
+		 * 
+		 * Internally used to store an associated XML or XMLList object which will be effected by operations
+		 */
+		public function set targetObject(value:*):void
+		{
+			_targetObject = value;
+		}
+		public function get targetObject():*
+		{
+			return _targetObject;
+		}
+
+		private var _targetProperty:*;
+		/**
+		 * @private
+		 * 
+		 * The name of a property that may be created in the targetObject when objects are added to an empty XMLList.
+		 */
+		public function set targetProperty(value:*):void
+		{
+			_targetProperty = value;
+		}
+		public function get targetProperty():*
+		{
+			return _targetProperty;
+		}
+		
+		/**
+		 * Calls the text() method of each XML object and returns an XMLList object that contains the results.
+		 * 
+		 * @return 
+		 * 
+		 */
+		public function text():XMLList
+		{
+			var retVal:XMLList = new XMLList();
+			var len:int = _xmlArray.length;
+			for (var i:int=0;i<len;i++)
+			{
+				var list:XMLList = _xmlArray[i].text();
+				if(list.length())
+					retVal.concat(list);
+			}
+			return retVal;
+		}
+
+		/**
+		 * Returns the string representation of this object, formatted according to locale-specific conventions.
+		 * 
+		 * @return 
+		 * 
+		 */
+		public function toLocaleString():String
+		{
+			var retVal:Array = [];
+			var len:int = _xmlArray.length;
+			for (var i:int=0;i<len;i++)
+			{
+				var str:String = _xmlArray[i].toLocaleString();
+				if(str)
+					retVal.push(str);
+			}
+			return retVal.join("");
+		}
+		
+		/**
+		 * Returns a string representation of all the XML objects in an XMLList object.
+		 * 
+		 * @return 
+		 * 
+		 */
+		public function toString():String
+		{
+			var retVal:Array = [];
+			var len:int = _xmlArray.length;
+			for (var i:int=0;i<len;i++)
+			{
+				var str:String = _xmlArray[i].toString();
+				if(str)
+					retVal.push(str);
+			}
+			return retVal.join("");
+		}
+		
+		/**
+		 * Returns a string representation of all the XML objects in an XMLList object.
+		 * 
+		 * @return 
+		 * 
+		 */
+		public function toXMLString():String
+		{
+			var retVal:Array = [];
+			var len:int = _xmlArray.length;
+			for (var i:int=0;i<len;i++)
+			{
+				var str:String = _xmlArray[i].toXMLString();
+				if(str)
+					retVal.push(str);
+			}
+			return retVal.join("");
+		}
+		
+		/**
+		 * Returns the XMLList object.
+		 * 
+		 * @return 
+		 * 
+		 */
+		public function valueOf():XMLList
+		{
+			return this;
+		}
+	}
+}
+}

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a487152a/frameworks/projects/XML/src/main/resources/basic-manifest.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/XML/src/main/resources/basic-manifest.xml b/frameworks/projects/XML/src/main/resources/basic-manifest.xml
new file mode 100644
index 0000000..cd0f5b4
--- /dev/null
+++ b/frameworks/projects/XML/src/main/resources/basic-manifest.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0"?>
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+
+
+<componentPackage>
+
+</componentPackage>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a487152a/frameworks/projects/XML/src/main/resources/compile-as-to-js-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/XML/src/main/resources/compile-as-to-js-config.xml b/frameworks/projects/XML/src/main/resources/compile-as-to-js-config.xml
new file mode 100644
index 0000000..e601b79
--- /dev/null
+++ b/frameworks/projects/XML/src/main/resources/compile-as-to-js-config.xml
@@ -0,0 +1,77 @@
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<flex-config>
+
+    <compiler>
+        <accessible>false</accessible>
+        
+        <external-library-path>
+            <path-element>${env.AIR_HOME}/frameworks/libs/air/airglobal.swc</path-element>
+            <path-element>D:/SDKs/FlexJS/nightly_PF18_AIR18.0_en_US/js/libs/js.swc</path-element>
+            <path-element>D:/SDKs/FlexJS/nightly_PF18_AIR18.0_en_US/js/libs/gcl.swc</path-element>
+        </external-library-path>
+
+        <mxml>
+            <children-as-data>true</children-as-data>
+        </mxml>
+        <binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
+        <binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
+        <binding-value-change-event-type>valueChange</binding-value-change-event-type>
+
+        <keep-as3-metadata>
+            <name>Bindable</name>
+            <name>Managed</name>
+            <name>ChangeEvent</name>
+            <name>NonCommittingChangeEvent</name>
+            <name>Transient</name>
+        </keep-as3-metadata>
+
+        <namespaces>
+            <namespace>
+                <uri>library://ns.apache.org/flexjs/basic</uri>
+                <manifest>basic-manifest.xml</manifest>
+            </namespace>
+        </namespaces>
+        
+        <locale/>
+
+        <source-path>
+            <!--<path-element>as/src</path-element>-->
+        </source-path>
+
+        <warn-no-constructor>false</warn-no-constructor>
+    </compiler>
+
+    <include-sources>
+        <path-element>as/src</path-element>
+    </include-sources>
+
+    <include-classes>
+        <class>CoreClasses</class>
+        <!--<class>CoreASJSClasses</class>-->
+    </include-classes>
+    
+    <include-namespaces>
+        <uri>library://ns.apache.org/flexjs/basic</uri>
+    </include-namespaces>
+        
+    <target-player>11.1</target-player>
+	
+
+</flex-config>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a487152a/frameworks/projects/XML/src/main/resources/compile-asjs-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/XML/src/main/resources/compile-asjs-config.xml b/frameworks/projects/XML/src/main/resources/compile-asjs-config.xml
new file mode 100644
index 0000000..977c1d4
--- /dev/null
+++ b/frameworks/projects/XML/src/main/resources/compile-asjs-config.xml
@@ -0,0 +1,78 @@
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<flex-config>
+
+    <compiler>
+        <accessible>false</accessible>
+        
+        <external-library-path>
+        </external-library-path>
+        
+		<mxml>
+			<children-as-data>true</children-as-data>
+		</mxml>
+		<binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
+		<binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
+		<binding-value-change-event-type>valueChange</binding-value-change-event-type>
+
+        <keep-as3-metadata>
+          <name>Bindable</name>
+          <name>Managed</name>
+          <name>ChangeEvent</name>
+          <name>NonCommittingChangeEvent</name>
+          <name>Transient</name>
+        </keep-as3-metadata>
+	  
+        <locale/>
+        
+        <library-path>
+        </library-path>
+        
+        <namespaces>
+            <namespace>
+                <uri>library://ns.apache.org/flexjs/basic</uri>
+                <manifest>basic-manifest.xml</manifest>
+            </namespace>
+        </namespaces>
+        
+        <source-path>
+            <path-element>as/src</path-element>
+        </source-path>
+        
+        <warn-no-constructor>false</warn-no-constructor>
+    </compiler>
+    
+    <include-file>
+    </include-file>
+
+    <include-sources>
+    </include-sources>
+    
+    <include-classes>
+        <class>CoreClasses</class>
+    </include-classes>
+    
+    <include-namespaces>
+        <uri>library://ns.apache.org/flexjs/basic</uri>
+    </include-namespaces>
+    
+    <!--<target-player>${playerglobal.version}</target-player>-->
+	
+
+</flex-config>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a487152a/frameworks/projects/XML/src/main/resources/compile-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/XML/src/main/resources/compile-config.xml b/frameworks/projects/XML/src/main/resources/compile-config.xml
new file mode 100644
index 0000000..7d862dc
--- /dev/null
+++ b/frameworks/projects/XML/src/main/resources/compile-config.xml
@@ -0,0 +1,83 @@
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<flex-config>
+
+    <compiler>
+        <accessible>false</accessible>
+        
+        <external-library-path>
+            <path-element>${env.AIR_HOME}/frameworks/libs/air/airglobal.swc</path-element>
+        </external-library-path>
+        
+		<mxml>
+			<children-as-data>true</children-as-data>
+		</mxml>
+		<binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
+		<binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
+		<binding-value-change-event-type>valueChange</binding-value-change-event-type>
+
+        <keep-as3-metadata>
+          <name>Bindable</name>
+          <name>Managed</name>
+          <name>ChangeEvent</name>
+          <name>NonCommittingChangeEvent</name>
+          <name>Transient</name>
+        </keep-as3-metadata>
+	  
+        <locale/>
+        
+        <library-path/>
+
+        <namespaces>
+            <namespace>
+                <uri>library://ns.apache.org/flexjs/basic</uri>
+                <manifest>basic-manifest.xml</manifest>
+            </namespace>
+        </namespaces>
+        
+        <source-path>
+            <path-element>as/src</path-element>
+        </source-path>
+        
+        <warn-no-constructor>false</warn-no-constructor>
+    </compiler>
+    
+    <include-file>
+        <name>js/out/*</name>
+        <path>js/out/*</path>
+    </include-file>
+    <!--
+    <include-file>
+        <name>js/src/*</name>
+        <path>js/src/*</path>
+    </include-file>
+     -->
+
+    <include-classes>
+        <class>XMLClasses</class>
+    </include-classes>
+    
+    <include-namespaces>
+        <uri>library://ns.apache.org/flexjs/basic</uri>
+    </include-namespaces>  
+        
+    <target-player>${playerglobal.version}</target-player>
+	
+
+</flex-config>

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/a487152a/frameworks/projects/XML/src/main/resources/compile-js-config.xml
----------------------------------------------------------------------
diff --git a/frameworks/projects/XML/src/main/resources/compile-js-config.xml b/frameworks/projects/XML/src/main/resources/compile-js-config.xml
new file mode 100644
index 0000000..b37f6af
--- /dev/null
+++ b/frameworks/projects/XML/src/main/resources/compile-js-config.xml
@@ -0,0 +1,87 @@
+<!--
+
+  Licensed to the Apache Software Foundation (ASF) under one or more
+  contributor license agreements.  See the NOTICE file distributed with
+  this work for additional information regarding copyright ownership.
+  The ASF licenses this file to You under the Apache License, Version 2.0
+  (the "License"); you may not use this file except in compliance with
+  the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+  Unless required by applicable law or agreed to in writing, software
+  distributed under the License is distributed on an "AS IS" BASIS,
+  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  See the License for the specific language governing permissions and
+  limitations under the License.
+
+-->
+<flex-config>
+
+    <compiler>
+        <accessible>false</accessible>
+        
+        <external-library-path>
+            <path-element>${env.AIR_HOME}/frameworks/libs/air/airglobal.swc</path-element>
+        </external-library-path>
+        
+		<mxml>
+			<children-as-data>true</children-as-data>
+		</mxml>
+		<binding-value-change-event>org.apache.flex.events.ValueChangeEvent</binding-value-change-event>
+		<binding-value-change-event-kind>org.apache.flex.events.ValueChangeEvent</binding-value-change-event-kind>
+		<binding-value-change-event-type>valueChange</binding-value-change-event-type>
+
+        <keep-as3-metadata>
+          <name>Bindable</name>
+          <name>Managed</name>
+          <name>ChangeEvent</name>
+          <name>NonCommittingChangeEvent</name>
+          <name>Transient</name>
+        </keep-as3-metadata>
+	  
+        <locale/>
+        
+        <library-path/>
+
+        <namespaces>
+            <namespace>
+                <uri>library://ns.apache.org/flexjs/basic</uri>
+                <manifest>basic-manifest.xml</manifest>
+            </namespace>
+        </namespaces>
+        
+        <source-path>
+            <path-element>as/src</path-element>
+            <path-element>asjs/src</path-element>
+        </source-path>
+        
+        <warn-no-constructor>false</warn-no-constructor>
+    </compiler>
+    
+    <include-file>
+        <name>js/out/*</name>
+        <path>js/out/*</path>
+    </include-file>
+    <!--
+    <include-file>
+        <name>js/src/*</name>
+        <path>js/src/*</path>
+    </include-file>
+     -->
+    
+    <include-classes>
+        <class>XMLClasses</class>
+        <!-- leave out for now until we get Application to compile
+        <class>CoreASJSClasses</class>-->
+    </include-classes>
+    
+    <include-namespaces>
+        <uri>library://ns.apache.org/flexjs/basic</uri>
+		<uri>library://ns.apache.org/flexjs/svg</uri>
+    </include-namespaces>  
+        
+    <target-player>${playerglobal.version}</target-player>
+	
+
+</flex-config>