package at.gv.egovernment.moa.util;

import java.util.HashMap;

/**
 * Contains various constants used throughout the system.
 * 
 * @author Patrick Peck
 * @version $Id$
 */
public interface Constants {
  /** Root location of the schema files. */
  public static final String SCHEMA_ROOT = "/resources/schemas/";

  /** URI of the Widerrufregister XML namespace. */
  public static final String WRR_NS_URI =
    "http://reference.e-government.gv.at/namespace/moavv/20041223";

  /** Prefix used for the Widerrufregister XML namespace */
  public static final String WRR_PREFIX = "wrr";

  /** URI of the StandardTextBlock XML namespace. */
  public static final String STB_NS_URI =
    "http://reference.e-government.gv.at/namespace/standardtextblock/20041105#";

  /** Prefix used for the Mandate XML namespace */
  public static final String STB_PREFIX = "stb";

  /** URI of the MOA XML namespace. */
  public static final String MOA_NS_URI =
    "http://reference.e-government.gv.at/namespace/moa/20020822#";

  /** Prefix used for the Mandate XML namespace */
  public static final String MD_PREFIX = "md";

  /** URI of the Mandate XML namespace. */
  public static final String MD_NS_URI =
    "http://reference.e-government.gv.at/namespace/mandates/20040701#";

  /** Prefix used for the Mandate XML namespace */
  public static final String MVV_PREFIX = "mvv";

  /** URI of the Mandate XML namespace. */
  public static final String MVV_NS_URI =
    "http://reference.e-government.gv.at/namespace/moavv/app2mvv/20041125";

  /** Prefix used for the MandateCheckProfile XML namespace */
  public static final String MDP_PREFIX = "mdp";

  /** URI of the Mandate XML namespace. */
  public static final String MDP_NS_URI =
    "http://reference.e-government.gv.at/namespace/mandateprofile/20041105#";

  /** Prefix used for the MOA XML namespace */
  public static final String MOA_PREFIX = "moa";

  /** Local location of the MOA XML schema definition. */
  public static final String MOA_SCHEMA_LOCATION =
    SCHEMA_ROOT + "MOA-SPSS-1.3.xsd";

  /** URI of the MOA configuration XML namespace. */
  public static final String MOA_CONFIG_NS_URI =
    "http://reference.e-government.gv.at/namespace/moaconfig/20021122#";

  /** URI of the MOA ID configuration XML namespace. */
  public static final String MOA_ID_CONFIG_NS_URI =
    "http://www.buergerkarte.at/namespaces/moaconfig#";

  /** Prefix used for the MOA configuration XML namespace */
  public static final String MOA_CONFIG_PREFIX = "conf";

  /** Prefix used for the MOA configuration XML namespace */
  public static final String MOA_ID_CONFIG_PREFIX = "confID";

  /** Local location of the MOA configuration XML schema definition. */
  public static final String MOA_CONFIG_SCHEMA_LOCATION =
    SCHEMA_ROOT + "MOA-SPSS-config-1.3.xsd";

  /** Local location of the MOA ID configuration XML schema definition. */
  public static final String MOA_ID_CONFIG_SCHEMA_LOCATION =
    SCHEMA_ROOT + "MOA-ID-Configuration-1.3.xsd";

  /** URI of the Security Layer 1.0 namespace. */
  public static final String SL10_NS_URI =
    "http://www.buergerkarte.at/namespaces/securitylayer/20020225#";

  /** Prefix used for the Security Layer 1.0 XML namespace */
  public static final String SL10_PREFIX = "sl10";

  /** Local location of the Security Layer 1.0 XML schema definition */
  public static final String SL10_SCHEMA_LOCATION =
    SCHEMA_ROOT + "Core.20020225.xsd";

  /** URI of the Security Layer 1.1 XML namespace */
  public static final String SL11_NS_URI =
    "http://www.buergerkarte.at/namespaces/securitylayer/20020831#";

  /** Prefix used for the Security Layer 1.1 XML namespace */
  public static final String SL11_PREFIX = "sl11";

  /** Local location of the Security Layer 1.1 XML schema definition */
  public static final String SL11_SCHEMA_LOCATION =
    SCHEMA_ROOT + "Core.20020831.xsd";
  
  /** URI of the Security Layer 1.2 XML namespace */
  public static final String SL12_NS_URI =
    "http://www.buergerkarte.at/namespaces/securitylayer/1.2#";

  /** Prefix used for the Security Layer 1.2 XML namespace */
  public static final String SL12_PREFIX = "sl";

  /** Local location of the Security Layer 1.2 XML schema definition */
  public static final String SL12_SCHEMA_LOCATION =
    SCHEMA_ROOT + "Core-1.2.xsd";
  
  /** URI of the ECDSA XML namespace */
  public static final String ECDSA_NS_URI =
    "http://www.w3.org/2001/04/xmldsig-more#";
  
  /** Prefix used for ECDSA namespace */
  public static final String ECDSA_PREFIX = "ecdsa";

  /** Local location of ECDSA XML schema definition */
  public static final String ECDSA_SCHEMA_LOCATION =
    SCHEMA_ROOT + "ECDSAKeyValue.xsd";

  /** URI of the PersonData XML namespace. */
  public static final String PD_NS_URI =
    "http://reference.e-government.gv.at/namespace/persondata/20020228#";

  /** Prefix used for the PersonData XML namespace */
  public static final String PD_PREFIX = "pr";

//  /** Local location of the PersonData XML schema definition */
//  public static final String PD_SCHEMA_LOCATION =
//    SCHEMA_ROOT + "PersonData.xsd";
  
  /** Local location of the PersonData XML schema definition */
  public static final String PD_SCHEMA_LOCATION =
    SCHEMA_ROOT + "PersonData_20_en_moaWID.xsd";

  /** URI of the SAML namespace. */
  public static final String SAML_NS_URI =
    "urn:oasis:names:tc:SAML:1.0:assertion";

  /** Prefix used for the SAML XML namespace */
  public static final String SAML_PREFIX = "saml";

  /** Local location of the SAML XML schema definition. */
  public static final String SAML_SCHEMA_LOCATION =
    SCHEMA_ROOT + "cs-sstc-schema-assertion-01.xsd";

  /** URI of the SAML request-response protocol namespace. */
  public static final String SAMLP_NS_URI =
    "urn:oasis:names:tc:SAML:1.0:protocol";

  /** Prefix used for the SAML request-response protocol namespace */
  public static final String SAMLP_PREFIX = "samlp";

  /** Local location of the SAML request-response protocol schema definition. */
  public static final String SAMLP_SCHEMA_LOCATION =
    SCHEMA_ROOT + "cs-sstc-schema-protocol-01.xsd";

  /** URI of the XML namespace. */
  public static final String XML_NS_URI =
    "http://www.w3.org/XML/1998/namespace";

  /** Prefix used for the XML namespace */
  public static final String XML_PREFIX = "xml";

  /** Local location of the XML schema definition. */
  public static final String XML_SCHEMA_LOCATION = SCHEMA_ROOT + "xml.xsd";

  /** URI of the XMLNS namespace */
  public static final String XMLNS_NS_URI = "http://www.w3.org/2000/xmlns/";

  /** Prefix used for the XSI namespace */
  public static final String XSI_PREFIX = "xsi";

  /** Local location of the XSI schema definition. */
  public static final String XSI_SCHEMA_LOCATION =
    SCHEMA_ROOT + "XMLSchema-instance.xsd";

  /** URI of the XSI XMLNS namespace */
  public static final String XSI_NS_URI =
    "http://www.w3.org/2001/XMLSchema-instance";

  /** URI of the XSLT XML namespace */
  public static final String XSLT_NS_URI =
    "http://www.w3.org/1999/XSL/Transform";

  /** Prefix used for the XSLT XML namespace */
  public static final String XSLT_PREFIX = "xsl";

  /** URI of the XMLDSig XML namespace. */
  public static final String DSIG_NS_URI = "http://www.w3.org/2000/09/xmldsig#";

  /** Prefix used for the XMLDSig XML namespace */
  public static final String DSIG_PREFIX = "dsig";

  /** Local location of the XMLDSig XML schema. */
  public static final String DSIG_SCHEMA_LOCATION =
    SCHEMA_ROOT + "xmldsig-core-schema.xsd";

  /** URI of the XMLDSig XPath Filter XML namespace. */
  public static final String DSIG_FILTER2_NS_URI =
    "http://www.w3.org/2002/06/xmldsig-filter2";

  /** Prefix used for the XMLDSig XPath Filter XML namespace */
  public static final String DSIG_FILTER2_PREFIX = "dsig-filter2";

  /** Local location of the XMLDSig XPath Filter XML schema definition. */
  public static final String DSIG_FILTER2_SCHEMA_LOCATION =
    SCHEMA_ROOT + "xmldsig-filter2.xsd";

  /** URI of the Exclusive Canonicalization XML namespace */
  public static final String DSIG_EC_NS_URI =
    "http://www.w3.org/2001/10/xml-exc-c14n#";
    
  /** Prefix used for the Exclusive Canonicalization XML namespace */
  public static final String DSIG_EC_PREFIX = "ec";

  /** Local location of the Exclusive Canonicalizaion XML schema definition */
  public static final String DSIG_EC_SCHEMA_LOCATION =
    SCHEMA_ROOT + "exclusive-canonicalization.xsd";

	/** URI of the XMLLoginParameterResolver Configuration XML namespace */
	public static final String XMLLPR_NS_URI="http://reference.e-government.gv.at/namespace/moa/20020822#/xmllpr20030814";

	/** Local location of the XMLLoginParameterResolver Configuration XML schema definition */
	public static final String XMLLPR_SCHEMA_LOCATION =
		SCHEMA_ROOT + "MOAIdentities.xsd";


  /**
   * Contains all namespaces and local schema locations for XML schema
   * definitions relevant for MOA. For use in validating XML parsers.
   */
  public static final String ALL_SCHEMA_LOCATIONS =
    (MOA_NS_URI + " " + MOA_SCHEMA_LOCATION + " ")
      + (MOA_CONFIG_NS_URI + " " + MOA_CONFIG_SCHEMA_LOCATION + " ")
      + (MOA_ID_CONFIG_NS_URI + " " + MOA_ID_CONFIG_SCHEMA_LOCATION + " ")
      + (SL10_NS_URI + " " + SL10_SCHEMA_LOCATION + " ")
      + (SL11_NS_URI + " " + SL11_SCHEMA_LOCATION + " ")
      + (SL12_NS_URI + " " + SL12_SCHEMA_LOCATION + " ")
      + (ECDSA_NS_URI + " " + ECDSA_SCHEMA_LOCATION + " ")
      + (PD_NS_URI + " " + PD_SCHEMA_LOCATION + " ")
      + (SAML_NS_URI + " " + SAML_SCHEMA_LOCATION + " ")
      + (SAMLP_NS_URI + " " + SAMLP_SCHEMA_LOCATION + " ")
      + (XML_NS_URI + " " + XML_SCHEMA_LOCATION + " ")
      + (XSI_NS_URI + " " + XSI_SCHEMA_LOCATION + " ")
      + (DSIG_NS_URI + " " + DSIG_SCHEMA_LOCATION + " ")
      + (DSIG_FILTER2_NS_URI + " " + DSIG_FILTER2_SCHEMA_LOCATION + " ")
      + (DSIG_EC_NS_URI + " " + DSIG_EC_SCHEMA_LOCATION + " ")
      + (XMLLPR_NS_URI + " " + XMLLPR_SCHEMA_LOCATION);

  /** URN prefix for bPK and wbPK. */
  public static final String URN_PREFIX = "urn:publicid:gv.at";
  
  /** URN prefix for context dependent id. */
  public static final String URN_PREFIX_CDID = URN_PREFIX + ":cdid";
  
  /** URN prefix for context dependent id (bPK). */
  public static final String URN_PREFIX_BPK = URN_PREFIX_CDID + "+bpk";
   
  /** URN prefix for context dependent id (wbPK). */
  public static final String URN_PREFIX_WBPK = URN_PREFIX + ":wbpk";
  
  /** URN prefix for context dependent id. */
  public static final String URN_PREFIX_BASEID = URN_PREFIX + ":baseid";
  
  /** Security Layer manifest type URI. */
  public static final String SL_MANIFEST_TYPE_URI =
    "http://www.buergerkarte.at/specifications/Security-Layer/20020225#SignatureManifest";

  /** URI of the SHA1 digest algorithm */
  public static final String SHA1_URI =
    "http://www.w3.org/2000/09/xmldsig#sha1";

  /** URI of the Canonical XML algorithm */
  public static final String C14N_URI =
    "http://www.w3.org/TR/2001/REC-xml-c14n-20010315";

  /** URI of the Canoncial XML with comments algorithm */
  public static final String C14N_WITH_COMMENTS_URI =
    "http://www.w3.org/TR/2001/REC-xml-c14n-20010315#WithComments";

  /** URI of the Exclusive Canonical XML algorithm */
  public static final String EXC_C14N_URI =
    "http://www.w3.org/2001/10/xml-exc-c14n#";
  
  /** URI of the Exclusive Canonical XML with commments algorithm */
  public static final String EXC_C14N_WITH_COMMENTS_URI =
    "http://www.w3.org/2001/10/xml-exc-c14n#WithComments";
    
  //
  // Local names for elements of the MOA SPSS schema
  //
  
  /** 
   * Local name of request for creating an XML signature.
   */
  public static final String MOA_SPSS_CREATE_XML_REQUEST = "CreateXMLSignatureRequest";
  
  /** 
   * Local name of request for verifying an XML signature.
   */
  public static final String MOA_SPSS_VERIFY_XML_REQUEST = "VerifiyXMLSignatureRequest";
  
  /** 
   * A map used to map namespace prefixes to namespace URIs 
   */ 
  public static HashMap nSMap = new HashMap(5);
   
}