Compile Visualforce Successfully

Learn the requirements of compiling Visualforce pages and components.

You can't save your Visualforce pages and components unless they correctly compile. Here's a list of things to watch out for when creating Visualforce pages:

  • Verify that your component tags start with the correct namespace identifier such as apex:—that is, apex followed by a colon.
  • Only Visualforce components and HTML elements are supported in API version 20.0 and later. Markup tags with other prefixes such as soapenv aren't supported.
  • Make sure that every opening quote and bracket has a closing one.
  • Verify that the controller or controller extension is named correctly.
  • Visualforce pages and components created using Salesforce API version 19.0 or higher must be written as well-formed XML. In general, this means that elements must be correctly nested, non-empty elements must have an end tag, empty elements must be terminated with a closing slash (“/”), and so on. The World Wide Web Consortium (W3C) provides an article on the specifications of well-formed XML.

    The following exceptions are allowed:

    • Code that violates well-formed XML is permitted inside JavaScript. For example, you don't need to use <![CDATA[]]> tags in Visualforce.
    • Code that violates well-formed XML is permitted inside expressions. For example, you don't need to escape quotation marks inside formulas.
    • XML directives that are normally required at the beginning of a page—such as <?xml version="1.0" encoding="UTF-8"?>—can occur inside top-level container tags, like <apex:page> and <apex:component>.