spec/cordova/fixtures/projects/platformApi/platforms/windows/cordova/lib/AppxManifest.js
function AppxManifest(path, prefix) {
    this.path = path;
    // Append ':' to prefix if needed
    prefix = prefix || '';
    this.prefix = (prefix.indexOf(':') === prefix.length - 1) ? prefix : prefix + ':';
    this.doc = xml.parseElementtreeSync(path);
    if (this.doc.getroot().tag !== 'Package') {
        // Some basic validation
        throw new Error(path + ' has incorrect root node name (expected "Package")');
    }

    // Indicates that this manifest is for phone application (either WinPhone 8.1 or Universal Windows 10)
    this.hasPhoneIdentity = this.prefix === 'uap:' || this.prefix === 'm3:';
}
function AppxManifest(path, prefix) {
    this.path = path;
    // Append ':' to prefix if needed
    prefix = prefix || '';
    this.prefix = (prefix.indexOf(':') === prefix.length - 1) ? prefix : prefix + ':';
    this.doc = xml.parseElementtreeSync(path);
    if (this.doc.getroot().tag !== 'Package') {
        // Some basic validation
        throw new Error(path + ' has incorrect root node name (expected "Package")');
    }

    // Indicates that this manifest is for phone application (either WinPhone 8.1 or Universal Windows 10)
    this.hasPhoneIdentity = this.prefix === 'uap:' || this.prefix === 'm3:';
}
@constructor
@constructs AppxManifest

Wraps an AppxManifest file. Shouldn't be instantiated directly.
AppxManifest.get should be used instead to select proper manifest type
(AppxManifest for Win 8/8.1/Phone 8.1, Win10AppxManifest for Win 10)

@param  {string}  path    Path to appxmanifest to wrap
@param  {string}  prefix  A namespace prefix used to prepend some elements.
Depends on manifest type.