dict points to the top-level object the programmer was meaning to encode. Among other things, using an archiver allows for new datatypes to be encoded without changing the plist format itself and it is the preferred way for Apple to encode things like NSSets and null values. Parsing the formats do prove a bit harder, since one more layer must be followed even for some classes plists were supposed to support. Like the binary format which also has an object table, it is possible to create circular references in . Since there is not a UID data type in XML, the integers are stored in a dictionary under the key "CF$UID". Apple publishes an open-source in Swift Corelibs Foundation; like the closed-source Apple Foundation, it restricts output formats to binary and XML only. It also has some test cases showing the results of serialization. GNUstep also has a compatible implementation, which does not limit output formats. Path language There is not a single, standardized path language for property lists like XPath does for XML, but informal conventions used by various programs exist. A dot syntax version is found in the keypath argument of Apple's . It appears to derive from . A different format is used by , with a colon syntax for indexing. Neither format is able to express a key with the separator character in it. Other platforms Windows Although best known on Apple or Darwin systems, including iOS and macOS, plist files are also present on Windows computers when Apple software, such as iTunes or Safari are installed. On Windows, the files are typically binary files, although some applications may generate PLIST files in the other formats. On Windows the Apple plist files are stored in the user's home directory under . These plist files on Windows typically store preferences and other information, rather than using the Windows registry. Options for editing PLIST files on Windows are not as extensive as on macOS. If the file is in the XML or JSON format with care a text editor such as Notepad++ can be used. Apple ships a plutil.exe within its "Apple Application Support" package (which is part of iTunes), and it is identical to its macOS counterpart. NetBSD Introduced in 2006 and first released with NetBSD#4.0 (2007) is a proplib library, which can be used for serialising data between the kernel and userland. It implements part of