DTD Apple · 1.0

Apple property list 1.0

plist (Info.plist, launchd, configuration profiles)

XML property lists: Info.plist of apps, launchd jobs, configuration profiles.

About

Property lists hold dictionaries, arrays, strings, numbers, dates and data. The DTD catches a key without a value, a stray element or a typo in a type name.

Good to know

  • Binary plists are not XML; convert them first with plutil -convert xml1.
  • Required keys (CFBundleIdentifier and so on) are an Xcode and App Store concern and are not checked by the DTD.
  • The example is by xmlvalid.com.

Files

1 file · 1 KB

Example document

Info.plist · 738 B · valid against this schema

In CI and from code

The same schema by its name, apple-plist-1.0, through the API.

npx @xmlvalid/cli validate "**/*.xml" --schema apple-plist-1.0
- uses: xmlvalid/validate-action@v1
  with:
    files: "**/*.xml"
    schema: apple-plist-1.0
    api-key: ${{ secrets.XMLVALID_API_KEY }}
curl https://xmlvalid.com/api/v1/validations \
  -H "Authorization: Bearer $XMLVALID_API_KEY" \
  -F document={{ $schema->example ?? 'document.xml' }} -F schema=apple-plist-1.0

Free accounts get 100 API validations a month. On Pro, a URL monitor can check a published document against this schema every hour and email you when it breaks. More CI setups