code: package com.swtworkbench.community.xswt.editors;
  
  import org.eclipse.core.runtime.CoreException;
  import org.eclipse.jface.text.IDocument;
  import org.eclipse.jface.text.IDocumentPartitioner;
  import org.eclipse.jface.text.rules.DefaultPartitioner;
  import org.eclipse.ui.editors.text.FileDocumentProvider;
  
  public class XMLDocumentProvider extends FileDocumentProvider {
      protected IDocument createDocument(Object element) throws CoreException {
          IDocument document = super.createDocument(element);
          if (document != null) {
              IDocumentPartitioner partitioner = new DefaultPartitioner(new XMLPartitionScanner(), new String[] { "__xml_tag",
                      "__xml_comment" });
              partitioner.connect(document);
              document.setDocumentPartitioner(partitioner);
          }
          return document;
      }
  }