code: protected void buildBookPreface(final BuildData buildData) throws BuildProcessingException {
          final ContentSpec contentSpec = buildData.getContentSpec();
  
          // Check that should actually use the preface
          if (contentSpec.getUseDefaultPreface()) {
              final Map<String, String> overrides = buildData.getBuildOptions().getOverrides();
              final Map<String, byte[]> overrideFiles = buildData.getOverrideFiles();
  
              final Document prefaceDoc;
              try {
                  prefaceDoc = XMLUtilities.convertStringToDocument("<preface></preface>");
              } catch (Exception e) {
                  throw new BuildProcessingException(e);
              }
  
              // Add the title
              final String prefaceTitleTranslation = buildData.getConstants().getString("PREFACE");
              final Element titleEle = prefaceDoc.createElement("title");
              titleEle.setTextContent(prefaceTitleTranslation);
              prefaceDoc.getDocumentElement().appendChild(titleEle);
  
              // Add the Conventions.xml
              final Element conventions = XMLUtilities.createXIInclude(prefaceDoc, "Common_Content/Conventions.xml");
              prefaceDoc.getDocumentElement().appendChild(conventions);
  
              // Add the Feedback.xml
              if (overrides.containsKey(CSConstants.FEEDBACK_OVERRIDE) && overrideFiles.containsKey(
                      CSConstants.FEEDBACK_OVERRIDE) || contentSpec.getFeedback() != null) {
                  final Element xinclude = XMLUtilities.createXIInclude(prefaceDoc, "Feedback.xml");
                  prefaceDoc.getDocumentElement().appendChild(xinclude);
              } else {
                  final Element xinclude = XMLUtilities.createXIInclude(prefaceDoc, "Common_Content/Feedback.xml");
                  prefaceDoc.getDocumentElement().appendChild(xinclude);
              }
  
              final String prefaceXml = DocBookBuildUtilities.convertDocumentToDocBookFormattedString(buildData.getDocBookVersion(),
                      prefaceDoc, "preface", buildData.getEntityFileName(), getXMLFormatProperties());
              addToZip(buildData.getBookLocaleFolder() + PREFACE_FILE_NAME, prefaceXml, buildData);
          }
      }
docs: Builds the Preface.xml file for the book.
  
  @param buildData
  @throws BuildProcessingException