Example usage for javax.xml.validation SchemaFactory newInstance

List of usage examples for javax.xml.validation SchemaFactory newInstance

Introduction

In this page you can find the example usage for javax.xml.validation SchemaFactory newInstance.

Prototype

public static SchemaFactory newInstance(String schemaLanguage) 

Source Link

Document

Lookup an implementation of the SchemaFactory that supports the specified schema language and return it.

Usage

From source file:test.unit.be.fedict.eid.tsl.BelgianTrustServiceListFactoryTest.java

@Test
public void testBelgianTrustList() throws Exception {
    // setup//from  w  w  w. jav a 2  s .c  o m
    TrustServiceList trustServiceList = BelgianTrustServiceListFactory.newInstance(2014, Trimester.FIRST);

    assertNotNull(trustServiceList.getType());

    File unsignedTslFile = File.createTempFile("tsl-be-2014-T1-candidatetest", ".xml");
    trustServiceList.saveAs(unsignedTslFile);

    // sign trust list
    KeyPair keyPair = TrustTestUtils.generateKeyPair(2048);
    PrivateKey privateKey = keyPair.getPrivate();
    DateTime notBefore = new DateTime();
    DateTime notAfter = notBefore.plusYears(5);
    X509Certificate certificate = TrustTestUtils.generateSelfSignedCertificate(keyPair,
            "C=BE, CN=Belgium Trust List Scheme Operator", notBefore, notAfter);
    trustServiceList.sign(privateKey, certificate);

    // operate
    File tmpTslFile = File.createTempFile("tsl-be-", ".xml");
    // tmpTslFile.deleteOnExit();
    trustServiceList.saveAs(tmpTslFile);

    // --------------- VERIFY TRUST LIST --------------------
    LOG.debug("TSL: " + FileUtils.readFileToString(tmpTslFile));
    Document document = TrustTestUtils.loadDocument(tmpTslFile);

    // XML schema validation
    SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
    LSResourceResolver resourceResolver = new TSLLSResourceResolver();
    factory.setResourceResolver(resourceResolver);
    InputStream tslSchemaInputStream = BelgianTrustServiceListFactoryTest.class
            .getResourceAsStream("/ts_119612v010101_xsd.xsd");
    Source tslSchemaSource = new StreamSource(tslSchemaInputStream);
    Schema tslSchema = factory.newSchema(tslSchemaSource);
    Validator tslValidator = tslSchema.newValidator();
    LOG.debug("Starting validate");
    tslValidator.validate(new DOMSource(document));

    Validator eccValidator = factory
            .newSchema(BelgianTrustServiceListFactoryTest.class.getResource("/ts_119612v010101_sie_xsd.xsd"))
            .newValidator();
    NodeList eccQualificationsNodeList = document.getElementsByTagNameNS(
            "http://uri.etsi.org/TrstSvc/SvcInfoExt/eSigDir-1999-93-EC-TrustedList/#", "Qualifications");
    for (int idx = 0; idx < eccQualificationsNodeList.getLength(); idx++) {
        Node eccQualificationsNode = eccQualificationsNodeList.item(idx);
        eccValidator.validate(new DOMSource(eccQualificationsNode));
    }

    Validator xadesValidator = factory
            .newSchema(BelgianTrustServiceListFactoryTest.class.getResource("/XAdES.xsd")).newValidator();
    NodeList xadesQualifyingPropertiesNodeList = document
            .getElementsByTagNameNS("http://uri.etsi.org/01903/v1.3.2#", "QualifyingProperties");
    for (int idx = 0; idx < xadesQualifyingPropertiesNodeList.getLength(); idx++) {
        Node xadesQualifyingPropertiesNode = xadesQualifyingPropertiesNodeList.item(idx);
        xadesValidator.validate(new DOMSource(xadesQualifyingPropertiesNode));
    }

    // signature
    trustServiceList = TrustServiceListFactory.newInstance(tmpTslFile);
    X509Certificate resultCertificate = trustServiceList.verifySignature();
    assertEquals(certificate, resultCertificate);

    File pdfExportFile = File.createTempFile("tsl-be-", ".pdf");
    trustServiceList.humanReadableExport(pdfExportFile);

    // scheme operator name
    String schemeOperatorNameEn = trustServiceList.getSchemeOperatorName(Locale.ENGLISH);
    assertEquals("FPS Economy, SMEs, Self-employed and Energy - Quality and Safety", schemeOperatorNameEn);
    LOG.debug("Locale.ENGLISH: " + Locale.ENGLISH.getLanguage());
    assertEquals("SPF Economie, PME, Classes moyennes et Energie - Qualit et Scurit",
            trustServiceList.getSchemeOperatorName(Locale.FRENCH));

    Node schemeOperatorNameEnNode = XPathAPI.selectSingleNode(document,
            "tsl:TrustServiceStatusList/tsl:SchemeInformation/tsl:SchemeOperatorName/tsl:Name[@xml:lang='en']");
    assertNotNull(schemeOperatorNameEnNode);
    assertEquals("FPS Economy, SMEs, Self-employed and Energy - Quality and Safety",
            schemeOperatorNameEnNode.getTextContent());

    // scheme operator postal address
    PostalAddressType resultPostalAddress = trustServiceList.getSchemeOperatorPostalAddress(Locale.ENGLISH);
    assertNotNull(resultPostalAddress);
    assertEquals("NG III - Koning Albert II-laan 16", resultPostalAddress.getStreetAddress());
    assertEquals("Brussels", resultPostalAddress.getLocality());
    assertEquals("Brussel", trustServiceList.getSchemeOperatorPostalAddress(new Locale("nl")).getLocality());

    // scheme operator electronic address
    assertEquals(2, trustServiceList.getSchemeOperatorElectronicAddresses().size());
    LOG.debug("electronic addresses: " + trustServiceList.getSchemeOperatorElectronicAddresses());

    // scheme name
    assertTrue(trustServiceList.getSchemeName(Locale.ENGLISH).startsWith("BE:"));

    // scheme information uri
    List<String> schemeInformationUris = trustServiceList.getSchemeInformationUris();
    assertNotNull(schemeInformationUris);
    // assertEquals(3, schemeInformationUris.size());
    assertEquals("http://tsl.belgium.be/", schemeInformationUris.get(0));

    // status determination approach
    assertEquals("http://uri.etsi.org/TrstSvc/TrustedList/TSLType/StatusDetn/EUappropriate",
            trustServiceList.getStatusDeterminationApproach());

    // scheme types

    /*List<String> schemeTypes = trustServiceList.getSchemeTypes();
    assertNotNull(schemeTypes);
    assertEquals(2, schemeTypes.size());
     */
    // scheme territory
    assertEquals("BE", trustServiceList.getSchemeTerritory());

    // legal notice
    String resultLegalNotice = trustServiceList.getLegalNotice(Locale.ENGLISH);
    assertNotNull(resultLegalNotice);
    assertTrue(resultLegalNotice.indexOf("1999/93/EC") != -1);
    assertTrue(resultLegalNotice.indexOf("Belgium") != -1);

    // historical information period
    assertEquals(new Integer(21845 * 3), trustServiceList.getHistoricalInformationPeriod());

    // list issue date time
    DateTime resultListIssueDateTime = trustServiceList.getListIssueDateTime();
    assertNotNull(resultListIssueDateTime);

    // next update
    DateTime resultNextUpdateDateTime = trustServiceList.getNextUpdate();
    assertNotNull(resultNextUpdateDateTime);

    // trust service provider list
    List<TrustServiceProvider> trustServiceProviders = trustServiceList.getTrustServiceProviders();
    assertEquals(2, trustServiceProviders.size());
    TrustServiceProvider certipostTrustServiceProvider = trustServiceProviders.get(0);
    assertEquals("Certipost n.v./s.a.", certipostTrustServiceProvider.getName(Locale.ENGLISH));

    // postal address
    PostalAddressType certipostPostalAddress = certipostTrustServiceProvider.getPostalAddress(Locale.ENGLISH);
    assertNotNull(certipostPostalAddress);
    assertEquals("Muntcentrum", certipostPostalAddress.getStreetAddress());
    assertEquals("BE", certipostPostalAddress.getCountryName());

    // electronic address
    /*
    List<String> resultElectronicAddress = certipostTrustServiceProvider
    .getElectronicAddress();
    assertEquals(2, resultElectronicAddress.size());
     */
    // information uri
    /*
    List<String> resultInformationUris = certipostTrustServiceProvider
    .getInformationUris(Locale.ENGLISH);
    assertEquals(2, resultInformationUris.size());
    assertEquals("http://repository.eid.belgium.be/EN/Index.htm",
    resultInformationUris.get(0));
    */

    LOG.debug("unsigned TSL: " + unsignedTslFile.getAbsolutePath());
    LOG.debug("TSL: " + tmpTslFile.getAbsolutePath());
    LOG.debug("PDF: " + pdfExportFile.getAbsolutePath());
}

From source file:voldemort.xml.ClusterMapper.java

public ClusterMapper() {
    try {/*w w  w  .  ja  va  2s.  co m*/
        SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
        Source source = new StreamSource(ClusterMapper.class.getResourceAsStream("cluster.xsd"));
        this.schema = factory.newSchema(source);
    } catch (SAXException e) {
        throw new MappingException(e);
    }
}

From source file:voldemort.xml.StoreDefinitionsMapper.java

public StoreDefinitionsMapper() {
    try {//from ww w.j  ava 2 s  .  co m
        SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
        Source source = new StreamSource(StoreDefinitionsMapper.class.getResourceAsStream("stores.xsd"));
        this.schema = factory.newSchema(source);
    } catch (SAXException e) {
        throw new MappingException(e);
    }
}