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:';
}