10
__coverage__['build/dataschema-xml/dataschema-xml.js'] = {"path":"build/dataschema-xml/dataschema-xml.js","s":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0,"10":0,"11":0,"12":0,"13":0,"14":0,"15":0,"16":0,"17":0,"18":0,"19":0,"20":0,"21":0,"22":0,"23":0,"24":0,"25":0,"26":0,"27":0,"28":0,"29":0,"30":0,"31":0,"32":0,"33":0,"34":0,"35":0,"36":0,"37":0,"38":0,"39":0,"40":0,"41":0,"42":0,"43":0,"44":0,"45":0,"46":0,"47":0,"48":0,"49":0,"50":0,"51":0,"52":0,"53":0,"54":0,"55":0,"56":0,"57":0,"58":0,"59":0,"60":0,"61":0,"62":0,"63":0,"64":0,"65":0,"66":0,"67":0,"68":0,"69":0,"70":0,"71":0,"72":0,"73":0,"74":0,"75":0,"76":0,"77":0,"78":0,"79":0,"80":0,"81":0,"82":0,"83":0,"84":0},"b":{"1":[0,0],"2":[0,0,0],"3":[0,0,0],"4":[0,0],"5":[0,0,0,0,0,0],"6":[0,0],"7":[0,0],"8":[0,0],"9":[0,0],"10":[0,0],"11":[0,0],"12":[0,0],"13":[0,0],"14":[0,0],"15":[0,0],"16":[0,0],"17":[0,0],"18":[0,0],"19":[0,0],"20":[0,0],"21":[0,0],"22":[0,0],"23":[0,0],"24":[0,0],"25":[0,0],"26":[0,0],"27":[0,0],"28":[0,0],"29":[0,0],"30":[0,0]},"f":{"1":0,"2":0,"3":0,"4":0,"5":0,"6":0,"7":0,"8":0,"9":0},"fnMap":{"1":{"name":"(anonymous_1)","line":1,"loc":{"start":{"line":1,"column":26},"end":{"line":1,"column":45}}},"2":{"name":"(anonymous_2)","line":116,"loc":{"start":{"line":116,"column":11},"end":{"line":116,"column":34}}},"3":{"name":"(anonymous_3)","line":143,"loc":{"start":{"line":143,"column":23},"end":{"line":143,"column":48}}},"4":{"name":"(anonymous_4)","line":180,"loc":{"start":{"line":180,"column":21},"end":{"line":180,"column":56}}},"5":{"name":"(anonymous_5)","line":254,"loc":{"start":{"line":254,"column":29},"end":{"line":254,"column":40}}},"6":{"name":"(anonymous_6)","line":276,"loc":{"start":{"line":276,"column":17},"end":{"line":276,"column":50}}},"7":{"name":"(anonymous_7)","line":300,"loc":{"start":{"line":300,"column":16},"end":{"line":300,"column":58}}},"8":{"name":"(anonymous_8)","line":324,"loc":{"start":{"line":324,"column":18},"end":{"line":324,"column":44}}},"9":{"name":"(anonymous_9)","line":346,"loc":{"start":{"line":346,"column":19},"end":{"line":346,"column":55}}}},"statementMap":{"1":{"start":{"line":1,"column":0},"end":{"line":383,"column":48}},"2":{"start":{"line":19,"column":0},"end":{"line":27,"column":14}},"3":{"start":{"line":29,"column":0},"end":{"line":378,"column":2}},"4":{"start":{"line":117,"column":8},"end":{"line":118,"column":49}},"5":{"start":{"line":120,"column":8},"end":{"line":128,"column":9}},"6":{"start":{"line":122,"column":12},"end":{"line":122,"column":73}},"7":{"start":{"line":125,"column":12},"end":{"line":125,"column":81}},"8":{"start":{"line":127,"column":12},"end":{"line":127,"column":67}},"9":{"start":{"line":130,"column":8},"end":{"line":130,"column":24}},"10":{"start":{"line":144,"column":8},"end":{"line":146,"column":38}},"11":{"start":{"line":148,"column":8},"end":{"line":163,"column":9}},"12":{"start":{"line":149,"column":12},"end":{"line":149,"column":73}},"13":{"start":{"line":150,"column":12},"end":{"line":152,"column":13}},"14":{"start":{"line":151,"column":16},"end":{"line":151,"column":107}},"15":{"start":{"line":161,"column":12},"end":{"line":161,"column":68}},"16":{"start":{"line":165,"column":8},"end":{"line":165,"column":20}},"17":{"start":{"line":182,"column":8},"end":{"line":263,"column":9}},"18":{"start":{"line":183,"column":12},"end":{"line":183,"column":176}},"19":{"start":{"line":188,"column":12},"end":{"line":188,"column":122}},"20":{"start":{"line":191,"column":12},"end":{"line":248,"column":13}},"21":{"start":{"line":193,"column":16},"end":{"line":195,"column":30}},"22":{"start":{"line":194,"column":19},"end":{"line":194,"column":68}},"23":{"start":{"line":197,"column":16},"end":{"line":197,"column":54}},"24":{"start":{"line":202,"column":16},"end":{"line":232,"column":17}},"25":{"start":{"line":203,"column":20},"end":{"line":203,"column":47}},"26":{"start":{"line":206,"column":20},"end":{"line":231,"column":21}},"27":{"start":{"line":207,"column":24},"end":{"line":207,"column":96}},"28":{"start":{"line":209,"column":24},"end":{"line":209,"column":33}},"29":{"start":{"line":210,"column":24},"end":{"line":210,"column":59}},"30":{"start":{"line":211,"column":24},"end":{"line":211,"column":37}},"31":{"start":{"line":214,"column":25},"end":{"line":231,"column":21}},"32":{"start":{"line":215,"column":24},"end":{"line":215,"column":72}},"33":{"start":{"line":216,"column":24},"end":{"line":216,"column":99}},"34":{"start":{"line":219,"column":25},"end":{"line":231,"column":21}},"35":{"start":{"line":220,"column":24},"end":{"line":220,"column":82}},"36":{"start":{"line":221,"column":24},"end":{"line":221,"column":83}},"37":{"start":{"line":224,"column":25},"end":{"line":231,"column":21}},"38":{"start":{"line":225,"column":24},"end":{"line":230,"column":25}},"39":{"start":{"line":226,"column":28},"end":{"line":229,"column":29}},"40":{"start":{"line":227,"column":32},"end":{"line":227,"column":64}},"41":{"start":{"line":228,"column":32},"end":{"line":228,"column":39}},"42":{"start":{"line":234,"column":16},"end":{"line":247,"column":17}},"43":{"start":{"line":236,"column":20},"end":{"line":246,"column":21}},"44":{"start":{"line":237,"column":24},"end":{"line":237,"column":53}},"45":{"start":{"line":240,"column":25},"end":{"line":246,"column":21}},"46":{"start":{"line":241,"column":24},"end":{"line":241,"column":63}},"47":{"start":{"line":245,"column":24},"end":{"line":245,"column":70}},"48":{"start":{"line":251,"column":12},"end":{"line":262,"column":14}},"49":{"start":{"line":255,"column":20},"end":{"line":255,"column":77}},"50":{"start":{"line":255,"column":59},"end":{"line":255,"column":76}},"51":{"start":{"line":256,"column":20},"end":{"line":256,"column":57}},"52":{"start":{"line":257,"column":20},"end":{"line":257,"column":36}},"53":{"start":{"line":258,"column":20},"end":{"line":258,"column":34}},"54":{"start":{"line":277,"column":8},"end":{"line":278,"column":19}},"55":{"start":{"line":280,"column":8},"end":{"line":287,"column":9}},"56":{"start":{"line":281,"column":12},"end":{"line":281,"column":47}},"57":{"start":{"line":282,"column":12},"end":{"line":282,"column":76}},"58":{"start":{"line":284,"column":12},"end":{"line":284,"column":41}},"59":{"start":{"line":286,"column":12},"end":{"line":286,"column":70}},"60":{"start":{"line":301,"column":8},"end":{"line":310,"column":9}},"61":{"start":{"line":302,"column":12},"end":{"line":303,"column":62}},"62":{"start":{"line":305,"column":12},"end":{"line":309,"column":13}},"63":{"start":{"line":306,"column":16},"end":{"line":308,"column":17}},"64":{"start":{"line":307,"column":20},"end":{"line":307,"column":94}},"65":{"start":{"line":311,"column":8},"end":{"line":311,"column":24}},"66":{"start":{"line":325,"column":8},"end":{"line":325,"column":27}},"67":{"start":{"line":328,"column":8},"end":{"line":330,"column":9}},"68":{"start":{"line":329,"column":12},"end":{"line":329,"column":62}},"69":{"start":{"line":332,"column":8},"end":{"line":332,"column":22}},"70":{"start":{"line":347,"column":8},"end":{"line":375,"column":9}},"71":{"start":{"line":348,"column":12},"end":{"line":351,"column":36}},"72":{"start":{"line":353,"column":12},"end":{"line":368,"column":13}},"73":{"start":{"line":354,"column":16},"end":{"line":354,"column":82}},"74":{"start":{"line":357,"column":16},"end":{"line":359,"column":17}},"75":{"start":{"line":358,"column":20},"end":{"line":358,"column":77}},"76":{"start":{"line":361,"column":16},"end":{"line":361,"column":96}},"77":{"start":{"line":364,"column":16},"end":{"line":367,"column":17}},"78":{"start":{"line":365,"column":20},"end":{"line":365,"column":70}},"79":{"start":{"line":366,"column":20},"end":{"line":366,"column":27}},"80":{"start":{"line":370,"column":12},"end":{"line":374,"column":13}},"81":{"start":{"line":371,"column":16},"end":{"line":371,"column":43}},"82":{"start":{"line":373,"column":16},"end":{"line":373,"column":88}},"83":{"start":{"line":376,"column":8},"end":{"line":376,"column":24}},"84":{"start":{"line":380,"column":0},"end":{"line":380,"column":55}}},"branchMap":{"1":{"line":120,"type":"if","locations":[{"start":{"line":120,"column":8},"end":{"line":120,"column":8}},{"start":{"line":120,"column":8},"end":{"line":120,"column":8}}]},"2":{"line":120,"type":"binary-expr","locations":[{"start":{"line":120,"column":12},"end":{"line":120,"column":18}},{"start":{"line":120,"column":22},"end":{"line":120,"column":49}},{"start":{"line":120,"column":53},"end":{"line":120,"column":59}}]},"3":{"line":144,"type":"binary-expr","locations":[{"start":{"line":144,"column":22},"end":{"line":144,"column":35}},{"start":{"line":144,"column":39},"end":{"line":144,"column":48}},{"start":{"line":144,"column":52},"end":{"line":144,"column":57}}]},"4":{"line":145,"type":"binary-expr","locations":[{"start":{"line":145,"column":21},"end":{"line":145,"column":42}},{"start":{"line":145,"column":46},"end":{"line":145,"column":53}}]},"5":{"line":151,"type":"binary-expr","locations":[{"start":{"line":151,"column":24},"end":{"line":151,"column":39}},{"start":{"line":151,"column":43},"end":{"line":151,"column":52}},{"start":{"line":151,"column":56},"end":{"line":151,"column":64}},{"start":{"line":151,"column":68},"end":{"line":151,"column":81}},{"start":{"line":151,"column":85},"end":{"line":151,"column":98}},{"start":{"line":151,"column":102},"end":{"line":151,"column":106}}]},"6":{"line":182,"type":"if","locations":[{"start":{"line":182,"column":8},"end":{"line":182,"column":8}},{"start":{"line":182,"column":8},"end":{"line":182,"column":8}}]},"7":{"line":183,"type":"cond-expr","locations":[{"start":{"line":183,"column":101},"end":{"line":183,"column":138}},{"start":{"line":183,"column":141},"end":{"line":183,"column":164}}]},"8":{"line":202,"type":"binary-expr","locations":[{"start":{"line":202,"column":23},"end":{"line":202,"column":26}},{"start":{"line":202,"column":30},"end":{"line":202,"column":37}}]},"9":{"line":206,"type":"if","locations":[{"start":{"line":206,"column":20},"end":{"line":206,"column":20}},{"start":{"line":206,"column":20},"end":{"line":206,"column":20}}]},"10":{"line":206,"type":"binary-expr","locations":[{"start":{"line":206,"column":25},"end":{"line":206,"column":51}},{"start":{"line":206,"column":57},"end":{"line":206,"column":83}}]},"11":{"line":214,"type":"if","locations":[{"start":{"line":214,"column":25},"end":{"line":214,"column":25}},{"start":{"line":214,"column":25},"end":{"line":214,"column":25}}]},"12":{"line":216,"type":"cond-expr","locations":[{"start":{"line":216,"column":43},"end":{"line":216,"column":88}},{"start":{"line":216,"column":91},"end":{"line":216,"column":98}}]},"13":{"line":219,"type":"if","locations":[{"start":{"line":219,"column":25},"end":{"line":219,"column":25}},{"start":{"line":219,"column":25},"end":{"line":219,"column":25}}]},"14":{"line":221,"type":"cond-expr","locations":[{"start":{"line":221,"column":50},"end":{"line":221,"column":75}},{"start":{"line":221,"column":78},"end":{"line":221,"column":82}}]},"15":{"line":224,"type":"if","locations":[{"start":{"line":224,"column":25},"end":{"line":224,"column":25}},{"start":{"line":224,"column":25},"end":{"line":224,"column":25}}]},"16":{"line":226,"type":"if","locations":[{"start":{"line":226,"column":28},"end":{"line":226,"column":28}},{"start":{"line":226,"column":28},"end":{"line":226,"column":28}}]},"17":{"line":234,"type":"if","locations":[{"start":{"line":234,"column":16},"end":{"line":234,"column":16}},{"start":{"line":234,"column":16},"end":{"line":234,"column":16}}]},"18":{"line":236,"type":"if","locations":[{"start":{"line":236,"column":20},"end":{"line":236,"column":20}},{"start":{"line":236,"column":20},"end":{"line":236,"column":20}}]},"19":{"line":240,"type":"if","locations":[{"start":{"line":240,"column":25},"end":{"line":240,"column":25}},{"start":{"line":240,"column":25},"end":{"line":240,"column":25}}]},"20":{"line":255,"type":"if","locations":[{"start":{"line":255,"column":20},"end":{"line":255,"column":20}},{"start":{"line":255,"column":20},"end":{"line":255,"column":20}}]},"21":{"line":277,"type":"binary-expr","locations":[{"start":{"line":277,"column":18},"end":{"line":277,"column":27}},{"start":{"line":277,"column":31},"end":{"line":277,"column":36}}]},"22":{"line":280,"type":"if","locations":[{"start":{"line":280,"column":8},"end":{"line":280,"column":8}},{"start":{"line":280,"column":8},"end":{"line":280,"column":8}}]},"23":{"line":301,"type":"if","locations":[{"start":{"line":301,"column":8},"end":{"line":301,"column":8}},{"start":{"line":301,"column":8},"end":{"line":301,"column":8}}]},"24":{"line":303,"type":"binary-expr","locations":[{"start":{"line":303,"column":25},"end":{"line":303,"column":48}},{"start":{"line":303,"column":52},"end":{"line":303,"column":61}}]},"25":{"line":306,"type":"if","locations":[{"start":{"line":306,"column":16},"end":{"line":306,"column":16}},{"start":{"line":306,"column":16},"end":{"line":306,"column":16}}]},"26":{"line":347,"type":"if","locations":[{"start":{"line":347,"column":8},"end":{"line":347,"column":8}},{"start":{"line":347,"column":8},"end":{"line":347,"column":8}}]},"27":{"line":347,"type":"binary-expr","locations":[{"start":{"line":347,"column":12},"end":{"line":347,"column":36}},{"start":{"line":347,"column":40},"end":{"line":347,"column":73}}]},"28":{"line":348,"type":"binary-expr","locations":[{"start":{"line":348,"column":25},"end":{"line":348,"column":46}},{"start":{"line":348,"column":50},"end":{"line":348,"column":57}}]},"29":{"line":353,"type":"if","locations":[{"start":{"line":353,"column":12},"end":{"line":353,"column":12}},{"start":{"line":353,"column":12},"end":{"line":353,"column":12}}]},"30":{"line":370,"type":"if","locations":[{"start":{"line":370,"column":12},"end":{"line":370,"column":12}},{"start":{"line":370,"column":12},"end":{"line":370,"column":12}}]}},"code":["(function () { YUI.add('dataschema-xml', function (Y, NAME) {","","/**","Provides a DataSchema implementation which can be used to work with XML data.","","@module dataschema","@submodule dataschema-xml","**/","","/**","Provides a DataSchema implementation which can be used to work with XML data.","","See the `apply` method for usage.","","@class DataSchema.XML","@extends DataSchema.Base","@static","**/","var Lang = Y.Lang,",""," okNodeType = {"," 1 : true,"," 9 : true,"," 11: true"," },",""," SchemaXML;","","SchemaXML = {",""," ////////////////////////////////////////////////////////////////////////////"," //"," // DataSchema.XML static methods"," //"," ////////////////////////////////////////////////////////////////////////////"," /**"," Applies a schema to an XML data tree, returning a normalized object with"," results in the `results` property. Additional information can be parsed out"," of the XML for inclusion in the `meta` property of the response object. If"," an error is encountered during processing, an `error` property will be"," added.",""," Field data in the nodes captured by the XPath in _schema.resultListLocator_"," is extracted with the field identifiers described in _schema.resultFields_."," Field identifiers are objects with the following properties:",""," * `key` : <strong>(required)</strong> The desired property name to use"," store the retrieved value in the result object. If `locator` is"," not specified, `key` is also used as the XPath locator (String)"," * `locator`: The XPath locator to the node or attribute within each"," result node found by _schema.resultListLocator_ containing the"," desired field data (String)"," * `parser` : A function or the name of a function on `Y.Parsers` used"," to convert the input value into a normalized type. Parser"," functions are passed the value as input and are expected to"," return a value."," * `schema` : Used to retrieve nested field data into an array for"," assignment as the result field value. This object follows the same"," conventions as _schema_.",""," If no value parsing or nested parsing is needed, you can use XPath locators"," (strings) instead of field identifiers (objects) -- see example below.",""," `response.results` will contain an array of objects with key:value pairs."," The keys are the field identifier `key`s, and the values are the data"," values extracted from the nodes or attributes found by the field `locator`"," (or `key` fallback)."," "," To extract additional information from the XML, include an array of"," XPath locators in _schema.metaFields_. The collected values will be"," stored in `response.meta` with the XPath locator as keys.",""," @example"," var schema = {"," resultListLocator: '//produce/item',"," resultFields: ["," {"," locator: 'name',"," key: 'name'"," },"," {"," locator: 'color',"," key: 'color',"," parser: function (val) { return val.toUpperCase(); }"," }"," ]"," };",""," // Assumes data like"," // <inventory>"," // <produce>"," // <item><name>Banana</name><color>yellow</color></item>"," // <item><name>Orange</name><color>orange</color></item>"," // <item><name>Eggplant</name><color>purple</color></item>"," // </produce>"," // </inventory>",""," var response = Y.DataSchema.JSON.apply(schema, data);",""," // response.results[0] is { name: \"Banana\", color: \"YELLOW\" }"," "," @method apply"," @param {Object} schema Schema to apply. Supported configuration"," properties are:"," @param {String} [schema.resultListLocator] XPath locator for the"," XML nodes that contain the data to flatten into `response.results`"," @param {Array} [schema.resultFields] Field identifiers to"," locate/assign values in the response records. See above for"," details."," @param {Array} [schema.metaFields] XPath locators to extract extra"," non-record related information from the XML data"," @param {XMLDoc} data XML data to parse"," @return {Object} An Object with properties `results` and `meta`"," @static"," **/"," apply: function(schema, data) {"," var xmldoc = data, // unnecessary variables"," data_out = { results: [], meta: {} };",""," if (xmldoc && okNodeType[xmldoc.nodeType] && schema) {"," // Parse results data"," data_out = SchemaXML._parseResults(schema, xmldoc, data_out);",""," // Parse meta data"," data_out = SchemaXML._parseMeta(schema.metaFields, xmldoc, data_out);"," } else {"," data_out.error = new Error(\"XML schema parse failure\");"," }",""," return data_out;"," },",""," /**"," * Get an XPath-specified value for a given field from an XML node or document."," *"," * @method _getLocationValue"," * @param field {String | Object} Field definition."," * @param context {Object} XML node or document to search within."," * @return {Object} Data value or null."," * @static"," * @protected"," */"," _getLocationValue: function(field, context) {"," var locator = field.locator || field.key || field,"," xmldoc = context.ownerDocument || context,"," result, res, value = null;",""," try {"," result = SchemaXML._getXPathResult(locator, context, xmldoc);"," while ((res = result.iterateNext())) {"," value = res.textContent || res.value || res.text || res.innerHTML || res.innerText || null;"," }",""," // FIXME: Why defer to a method that is mixed into this object?"," // DSchema.Base is mixed into DSchema.XML (et al), so"," // DSchema.XML.parse(...) will work. This supports the use case"," // where DSchema.Base.parse is changed, and that change is then"," // seen by all DSchema.* implementations, but does not support the"," // case where redefining DSchema.XML.parse changes behavior. In"," // fact, DSchema.XML.parse is never even called."," return Y.DataSchema.Base.parse.call(this, value, field);"," } catch (e) {"," }",""," return null;"," },",""," /**"," * Fetches the XPath-specified result for a given location in an XML node"," * or document."," * "," * @method _getXPathResult"," * @param locator {String} The XPath location."," * @param context {Object} XML node or document to search within."," * @param xmldoc {Object} XML document to resolve namespace."," * @return {Object} Data collection or null."," * @static"," * @protected"," */"," _getXPathResult: function(locator, context, xmldoc) {"," // Standards mode"," if (! Lang.isUndefined(xmldoc.evaluate)) {"," return xmldoc.evaluate(locator, context, xmldoc.createNSResolver(context.ownerDocument ? context.ownerDocument.documentElement : context.documentElement), 0, null);"," "," }"," // IE mode"," else {"," var values=[], locatorArray = locator.split(/\\b\\/\\b/), i=0, l=locatorArray.length, location, subloc, m, isNth;"," "," // XPath is supported"," try {"," // this fixes the IE 5.5+ issue where childnode selectors begin at 0 instead of 1"," try {"," xmldoc.setProperty(\"SelectionLanguage\", \"XPath\");"," } catch (e) {}"," "," values = context.selectNodes(locator);"," }"," // Fallback for DOM nodes and fragments"," catch (e) {"," // Iterate over each locator piece"," for (; i<l && context; i++) {"," location = locatorArray[i];",""," // grab nth child []"," if ((location.indexOf(\"[\") > -1) && (location.indexOf(\"]\") > -1)) {"," subloc = location.slice(location.indexOf(\"[\")+1, location.indexOf(\"]\"));"," //XPath is 1-based while DOM is 0-based"," subloc--;"," context = context.children[subloc];"," isNth = true;"," }"," // grab attribute value @"," else if (location.indexOf(\"@\") > -1) {"," subloc = location.substr(location.indexOf(\"@\"));"," context = subloc ? context.getAttribute(subloc.replace('@', '')) : context;"," }"," // grab that last instance of tagName"," else if (-1 < location.indexOf(\"//\")) {"," subloc = context.getElementsByTagName(location.substr(2));"," context = subloc.length ? subloc[subloc.length - 1] : null;"," }"," // find the last matching location in children"," else if (l != i + 1) {"," for (m=context.childNodes.length-1; 0 <= m; m-=1) {"," if (location === context.childNodes[m].tagName) {"," context = context.childNodes[m];"," m = -1;"," }"," }"," }"," }"," "," if (context) {"," // attribute"," if (Lang.isString(context)) {"," values[0] = {value: context};"," }"," // nth child"," else if (isNth) {"," values[0] = {value: context.innerHTML};"," }"," // all children"," else {"," values = Y.Array(context.childNodes, 0, true);"," }"," }"," }",""," // returning a mock-standard object for IE"," return {"," index: 0,"," "," iterateNext: function() {"," if (this.index >= this.values.length) {return undefined;}"," var result = this.values[this.index];"," this.index += 1;"," return result;"," },",""," values: values"," };"," }"," },",""," /**"," * Schema-parsed result field."," *"," * @method _parseField"," * @param field {String | Object} Required. Field definition."," * @param result {Object} Required. Schema parsed data object."," * @param context {Object} Required. XML node or document to search within."," * @static"," * @protected"," */"," _parseField: function(field, result, context) {"," var key = field.key || field,"," parsed;",""," if (field.schema) {"," parsed = { results: [], meta: {} };"," parsed = SchemaXML._parseResults(field.schema, context, parsed);",""," result[key] = parsed.results;"," } else {"," result[key] = SchemaXML._getLocationValue(field, context);"," }"," },",""," /**"," * Parses results data according to schema"," *"," * @method _parseMeta"," * @param xmldoc_in {Object} XML document parse."," * @param data_out {Object} In-progress schema-parsed data to update."," * @return {Object} Schema-parsed data."," * @static"," * @protected"," */"," _parseMeta: function(metaFields, xmldoc_in, data_out) {"," if(Lang.isObject(metaFields)) {"," var key,"," xmldoc = xmldoc_in.ownerDocument || xmldoc_in;",""," for(key in metaFields) {"," if (metaFields.hasOwnProperty(key)) {"," data_out.meta[key] = SchemaXML._getLocationValue(metaFields[key], xmldoc);"," }"," }"," }"," return data_out;"," },",""," /**"," * Schema-parsed result to add to results list."," *"," * @method _parseResult"," * @param fields {Array} Required. A collection of field definition."," * @param context {Object} Required. XML node or document to search within."," * @return {Object} Schema-parsed data."," * @static"," * @protected"," */"," _parseResult: function(fields, context) {"," var result = {}, j;",""," // Find each field value"," for (j=fields.length-1; 0 <= j; j--) {"," SchemaXML._parseField(fields[j], result, context);"," }",""," return result;"," },",""," /**"," * Schema-parsed list of results from full data"," *"," * @method _parseResults"," * @param schema {Object} Schema to parse against."," * @param context {Object} XML node or document to parse."," * @param data_out {Object} In-progress schema-parsed data to update."," * @return {Object} Schema-parsed data."," * @static"," * @protected"," */"," _parseResults: function(schema, context, data_out) {"," if (schema.resultListLocator && Lang.isArray(schema.resultFields)) {"," var xmldoc = context.ownerDocument || context,"," fields = schema.resultFields,"," results = [],"," node, nodeList, i=0;",""," if (schema.resultListLocator.match(/^[:\\-\\w]+$/)) {"," nodeList = context.getElementsByTagName(schema.resultListLocator);"," "," // loop through each result node"," for (i = nodeList.length - 1; i >= 0; --i) {"," results[i] = SchemaXML._parseResult(fields, nodeList[i]);"," }"," } else {"," nodeList = SchemaXML._getXPathResult(schema.resultListLocator, context, xmldoc);",""," // loop through the nodelist"," while ((node = nodeList.iterateNext())) {"," results[i] = SchemaXML._parseResult(fields, node);"," i += 1;"," }"," }",""," if (results.length) {"," data_out.results = results;"," } else {"," data_out.error = new Error(\"XML schema result nodes retrieval failure\");"," }"," }"," return data_out;"," }","};","","Y.DataSchema.XML = Y.mix(SchemaXML, Y.DataSchema.Base);","","","}, '3.10.3', {\"requires\": [\"dataschema-base\"]});","","}());"]};