{ "type": "class",
  "qname": "mx.collections.XMLListCollection",
  "baseClassname": "mx.collections.ListCollectionView"
  ,
    "description": "The XMLListCollection class provides collection functionality to an XMLList object and makes available some of the methods of the native XMLList class.   <p>The <code>&lt;mx:XMLListCollection&gt;</code> tag inherits all the attributes of its superclass, and adds the following attributes:</p>  <pre>\\n &lt;mx:XMLListCollection\\n <b>Properties</b>\\n source=&quot;null&quot;\\n /&gt;\\n </pre>",
  "tags": [
  {  "tagName": "see",
         "values": ["XMLList", "XML"]},
      {  "tagName": "mxml",
         "values": []},
      {  "tagName": "playerversion",
         "values": ["Flash 9", "AIR 1.1"]},
      {  "tagName": "productversion",
         "values": ["Flex 3"]},
      {  "tagName": "langversion",
         "values": ["3.0"]}  ],
  "members": [
  { "type": "method",
        "qname": "mx.collections.XMLListCollection",
        "namespace": "",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Constructor.  <p>Creates a new XMLListCollection object using the specified XMLList object.</p>  by the XMLListCollection object.",
        "tags": [
        {  "tagName": "param",
               "values": ["source The XMLList object containing the data to be represented"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "",
          "params": [{ "name": "source", "type": "XMLList"}]}
      ,
      { "type": "accessor",
        "access": "read-write",
        "return": "XMLList",
        "qname": "source",
        "namespace": "public",
        "bindable": ["listChanged"],
        "details": [],
        "deprecated": {},
          "description": "The underlying XMLList for this collection. The XMLListCollection object does not represent any changes that you make directly to the source XMLList object. Always use the XMLListCollection methods to modify the collection.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ]},
      { "type": "method",
        "qname": "attribute",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Calls the <code>attribute()</code> method of each XML object in the XMLList and returns an XMLList of the results, which match the given <code>attributeName</code>.  objects of the XMLList.",
        "tags": [
        {  "tagName": "see",
               "values": ["XML#attribute()"]},
            {  "tagName": "param",
               "values": ["attributeName The attribute that you want to match in the XML"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["The XMLList of matching XML objects."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "XMLList",
          "params": [{ "name": "attributeName", "type": "Object"}]}
      ,
      { "type": "method",
        "qname": "attributes",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Calls the <code>attributes()</code> method of each XML object in the XMLList object and returns an XMList of attributes for each XML object.  the attributes.",
        "tags": [
        {  "tagName": "see",
               "values": ["XML#attributes()"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["The XMLList containing the resulting XML objects, listing"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "XMLList",
          "params": []}
      ,
      { "type": "method",
        "qname": "child",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Calls the <code>child()</code> method of each XML object in the XMLList and returns an XMLList containing the children of with the specified property name, in order.   original XMLList.",
        "tags": [
        {  "tagName": "see",
               "values": ["XML#child()"]},
            {  "tagName": "param",
               "values": ["propertyName The propery to match."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["An XMLList of matching children of the XML objects in the"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "XMLList",
          "params": [{ "name": "propertyName", "type": "Object"}]}
      ,
      { "type": "method",
        "qname": "children",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Calls the children() method of each XML object in the XMLList and returns an XMLList containing the results.",
        "tags": [
        {  "tagName": "see",
               "values": ["XML#children()"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["An XMLList of children of the XML objects in the original XMLList."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "XMLList",
          "params": []}
      ,
      { "type": "method",
        "qname": "copy",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns a deep copy of the XMLList object.",
        "tags": [
        {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["The copy of the XMLList object."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "XMLList",
          "params": []}
      ,
      { "type": "method",
        "qname": "descendants",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Calls the <code>descendants()</code> method of each XML object in the XMLList and returns an XMLList containing the results. The <code>name</code> parameter is passed to the XML object's <code>descendants()</code> method. If you do not specify a parameter, the string &quot;~~&quot; is passed to the <code>descendants()</code> method.   etc.) of the XML objects in the original XMLList.",
        "tags": [
        {  "tagName": "see",
               "values": ["XML#descendants()"]},
            {  "tagName": "param",
               "values": ["name The name of the elements to match."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["XMLList of the matching descendents (children, grandchildren,"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "XMLList",
          "params": [{ "name": "name", "type": "Object"}]}
      ,
      { "type": "method",
        "qname": "elements",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Calls the <code>elements()</code> method of each XML object in the XMLList. The <code>name</code> parameter is passed to the XML object's <code>elements()</code> method. If you do not specify a parameter, the string &quot;~~&quot; is passed to the <code>elements()</code> method.   original XMLList.",
        "tags": [
        {  "tagName": "see",
               "values": ["XML#elements()"]},
            {  "tagName": "param",
               "values": ["name The name of the elements to match."]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["XMLList of the matching child elements of the XML objects in the"]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "XMLList",
          "params": [{ "name": "name", "type": "String"}]}
      ,
      { "type": "method",
        "qname": "text",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Calls the <code>text()</code> method of each XML object in the XMLList and returns an XMLList containing the results.",
        "tags": [
        {  "tagName": "see",
               "values": ["XML#text()"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["The XMLList that contains the result."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "XMLList",
          "params": []}
      ,
      { "type": "method",
        "qname": "toString",
        "namespace": "public",
        "bindable": [],
        "details": ["override"],
        "deprecated": {},
          "description": "Returns a string representation of the XMLList by calling the <code>toString()</code> method for each XML object in the XMLList. If the <code>prettyPrinting</code> property of the <code>XML</code> class is set to <code>true</code>, then the results for each XML object in the XMLList are separated by the return character. Otherwise, if <code>prettyPrinting</code> is set to <code>false</code>, then the results are simply concatenated, without separating return characters.  <p>The <code>toString()</code> method strips out the following in the returned string for an XML object that has simple content: the start tag, attributes, namespace declarations, and the end tag. Use the <code>toXMLString()</code> method if you want to preserve these in the returned string for XML objects with simple content.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["XML#prettyPrinting"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["The string representation of the XMLList object."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "String",
          "params": []}
      ,
      { "type": "method",
        "qname": "toXMLString",
        "namespace": "public",
        "bindable": [],
        "details": [],
        "deprecated": {},
          "description": "Returns a string representation of the XMLList by calling the <code>toXMLString()</code> method for each XML object in the XMLList. If the <code>prettyPrinting</code> property of the <code>XML</code> class is set to <code>true</code>, then the results for each XML object in the XMLList are separated by the return character. Otherwise, if <code>prettyPrinting</code> is set to <code>false</code>, then the results are concatenated, without separating return characters.  <p>The <code>toXMLString()</code> method preserves the following in the returned string for an XML object that has simple content: the start tag, attributes, namespace declarations, and the end tag. Use the <code>toString()</code> method if you want to strip these from the returned string for XML objects with simple content.</p>",
        "tags": [
        {  "tagName": "see",
               "values": ["XML#prettyPrinting"]},
            {  "tagName": "playerversion",
               "values": ["Flash 9", "AIR 1.1"]},
            {  "tagName": "productversion",
               "values": ["Flex 3"]},
            {  "tagName": "return",
               "values": ["The string representation of the XMLList."]},
            {  "tagName": "langversion",
               "values": ["3.0"]}  ],
          "return": "String",
          "params": []}
      ]
  }
