code: static VaultConfig loadExternalFile(File f) throws XMLStreamException {
          if(f == null) {
              throw new IllegalArgumentException("File is null");
          }
          if(!f.exists()) {
              throw new XMLStreamException("Failed to locate vault file " + f.getAbsolutePath());
          }
  
          final VaultConfig config = new VaultConfig();
          BufferedInputStream input = null;
          try {
              final XMLMapper mapper = XMLMapper.Factory.create();
              final XMLElementReader<VaultConfig> reader = new ExternalVaultConfigReader();
              mapper.registerRootElement(new QName(VAULT), reader);
              FileInputStream is = new FileInputStream(f);
              input = new BufferedInputStream(is);
              XMLStreamReader streamReader = XMLInputFactory.newInstance().createXMLStreamReader(input);
              mapper.parseDocument(config, streamReader);
              streamReader.close();
          } catch(FileNotFoundException e) {
              throw new XMLStreamException("Vault file not found", e);
          } catch(XMLStreamException t) {
              throw t;
          } finally {
              StreamUtils.safeClose(input);
          }
          return config;
      }
docs: In the 2.0 xsd the vault is in an external file, which has no namespace, using the output of the vault tool.
  
  @param f the file containing the external vault configuration as generated by the vault tool
  @return the vault config