public void saveXML ( ) {
		JFileChooser chooser = new JFileChooser();
		chooser.setFileSelectionMode( JFileChooser.FILES_ONLY );
		chooser.setAcceptAllFileFilterUsed( false );
		chooser.addChoosableFileFilter( new XMLFileFilter() );
		int option = chooser.showSaveDialog( MenuApp.getFrame() );
		if ( option == JFileChooser.APPROVE_OPTION ) {
			// clicked Save
			File f = chooser.getSelectedFile();
			String path = f.getPath();
			String ext = XMLFileFilter.getExtension( f );
			if ( ext == null ) {
				// didn't give an extension, add the extension
				path += "." + XMLFileFilter.XML_EXTENSION; //$NON-NLS-1$
			}

			if ( f.exists() ) {
				String s =
						String.format(	Messages.getString( "ControllerMenu.OverwriteFileFormat" ), //$NON-NLS-1$
										path );
				int ret =
						JOptionPane
								.showConfirmDialog( MenuApp.getFrame(),
													s,
													Messages.getString( "ControllerMenu.OverwriteFile" ), //$NON-NLS-1$
													JOptionPane.YES_NO_OPTION );
				if ( ret == JOptionPane.NO_OPTION ) {
					return;
				}
			}

			boolean fComplete = false;
			try {
				OutputStream os;
				os = new FileOutputStream( path );
				XMLOutputFactory of = XMLOutputFactory.newInstance();
				XMLStreamWriter w = of.createXMLStreamWriter( os, "utf-8" ); //$NON-NLS-1$
				w.writeStartDocument( "utf-8", "1.0" ); //$NON-NLS-1$ //$NON-NLS-2$
				w.writeStartElement( Constants.xmlMenuStart );

				String pos;
				for ( int i = 0; i < iMenuQuantity; i++ ) {
					pos = String.format( "%d", i + 1 ); //$NON-NLS-1$
					w.writeStartElement( Constants.xmlMenu );
					w.writeAttribute( Constants.xmlAtributePosition, pos );
					w.writeAttribute( Constants.xmlAttributeLabel, saLabels[i] );
					w.writeCharacters( saCode[i] );
					w.writeEndElement();
				}

				w.writeEndElement();
				w.writeEndDocument();
				w.flush();
				w.close();
				os.close();
				fComplete = true;
			} catch ( FileNotFoundException e ) {
				e.printStackTrace();
			} catch ( XMLStreamException e ) {
				e.printStackTrace();
			} catch ( IOException e ) {
				e.printStackTrace();
			}

			String msg;
			if ( fComplete ) {
				msg =
						Messages.getString( "ControllerMenu.SuccessullySaved" ) + path; //$NON-NLS-1$
			} else {
				msg =
						Messages.getString( "ControllerMenu.FailedToSave" ) + path; //$NON-NLS-1$
			}
			MenuApp.displayMessageBox( msg, Messages
					.getString( "ControllerMenu.SavedFile" ) ); //$NON-NLS-1$
		}
	}