summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--build.xml19
-rw-r--r--src/documentation/intermediate-format-ng/fop-intermediate-format-ng-content.xsd18
-rw-r--r--src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd4
-rw-r--r--src/documentation/intermediate-format-ng/xml.xsd287
-rw-r--r--test/java/org/apache/fop/intermediate/AbstractIFTest.java1
-rw-r--r--test/java/org/apache/fop/intermediate/XMLSchemaResolver.java94
6 files changed, 23 insertions, 400 deletions
diff --git a/build.xml b/build.xml
index 36ee264e0..f84f83a84 100644
--- a/build.xml
+++ b/build.xml
@@ -806,7 +806,8 @@ list of possible build targets.
</junit>
</sequential>
</macrodef>
- <target name="junit-all" depends="junit-compile, junit-transcoder, junit-layout-hyphenation, setup-xml-schema" description="Runs FOP's JUnit basic tests" if="junit.present">
+ <target name="junit-all" depends="junit-compile, junit-transcoder, junit-layout-hyphenation"
+ description="Runs FOP's JUnit basic tests" if="junit.present">
<junit dir="${basedir}" haltonfailure="yes" fork="${junit.fork}" forkmode="once"
errorproperty="fop.junit.error" failureproperty="fop.junit.failure">
<sysproperty key="jawa.awt.headless" value="true"/>
@@ -844,25 +845,13 @@ list of possible build targets.
<target name="junit-area-tree-xml-format" depends="junit-compile" description="Runs FOP's area tree XML format JUnit tests" if="xmlunit.present">
<junit-run title="area tree XML format" testsuite="org.apache.fop.intermediate.AreaTreeXMLFormatTestSuite" outfile="TEST-area-tree-xml-format"/>
</target>
- <target name="junit-intermediate-layout" depends="junit-compile,setup-xml-schema"
- if="xmlunit.present">
+ <target name="junit-intermediate-layout" depends="junit-compile" if="xmlunit.present">
<junit-run title="intermediate format from layout tests"
testsuite="org.apache.fop.intermediate.LayoutIFTestSuite"
outfile="TEST-intermediate-format-from-layout"/>
</target>
- <target name="setup-xml-schema">
- <local name="cache-dir"/>
- <property name="cache-dir" value="${basedir}/.cache/junit/intermediate"/>
- <mkdir dir="${cache-dir}"/>
- <get src="http://www.w3.org/2001/xml.xsd"
- dest="${cache-dir}/xml.xsd"
- usetimestamp="true"/>
- <copy file="${cache-dir}/xml.xsd"
- todir="${build.dir}/test-classes/org/apache/fop/intermediate"/>
- </target>
- <target name="junit-intermediate-format"
- depends="junit-compile,setup-xml-schema,junit-intermediate-layout"
+ <target name="junit-intermediate-format" depends="junit-compile,junit-intermediate-layout"
description="Runs FOP's intermediate format JUnit tests" if="xmlunit.present">
<junit-run title="intermediate format"
testsuite="org.apache.fop.intermediate.IntermediateFormatTestSuite"
diff --git a/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-content.xsd b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-content.xsd
index 16fd0aa1f..eae7a88af 100644
--- a/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-content.xsd
+++ b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng-content.xsd
@@ -138,4 +138,22 @@
<xs:attributeGroup name="foreignAtts">
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:attributeGroup>
+ <xs:attribute name="xmlSpace">
+ <!--
+ This is a copy of the definition of the xml:space attribute, from the schema for the XML
+ namespace. That schema can be found at http://www.w3.org/2001/xml.xsd.
+
+ Ideally we would want to re-use that schema. However, we don’t want to refer to it using an
+ import statement is it causes too many connections to the W3C website. Neither can we store a
+ local copy and ship it with FOP as its license is the W3C Document License and so far we are not
+ allowed to redistribute files under such a license.
+ See also https://issues.apache.org/jira/browse/LEGAL-111
+ -->
+ <xs:simpleType>
+ <xs:restriction base="xs:NCName">
+ <xs:enumeration value="default"/>
+ <xs:enumeration value="preserve"/>
+ </xs:restriction>
+ </xs:simpleType>
+ </xs:attribute>
</xs:schema>
diff --git a/src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd
index 86dce1a3c..bea5275a5 100644
--- a/src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd
+++ b/src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd
@@ -20,8 +20,6 @@
targetNamespace="http://xmlgraphics.apache.org/fop/intermediate"
xmlns:mf="http://xmlgraphics.apache.org/fop/intermediate"
xmlns:nav="http://xmlgraphics.apache.org/fop/intermediate/document-navigation">
- <xs:import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="xml.xsd"/>
<xs:import namespace="http://xmlgraphics.apache.org/fop/intermediate/document-navigation"
schemaLocation="fop-intermediate-format-ng-nav.xsd"/>
<xs:import namespace="adobe:ns:meta/" schemaLocation="xmp-metadata.xsd"/>
@@ -70,7 +68,7 @@
<xs:element ref="mf:page" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID"/>
- <xs:attribute ref="xml:space"/>
+ <xs:attribute ref="mf:xmlSpace"/>
<xs:attributeGroup ref="mf:foreignAtts"/>
</xs:complexType>
</xs:element>
diff --git a/src/documentation/intermediate-format-ng/xml.xsd b/src/documentation/intermediate-format-ng/xml.xsd
deleted file mode 100644
index aea7d0db0..000000000
--- a/src/documentation/intermediate-format-ng/xml.xsd
+++ /dev/null
@@ -1,287 +0,0 @@
-<?xml version='1.0'?>
-<?xml-stylesheet href="../2008/09/xsd.xsl" type="text/xsl"?>
-<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace"
- xmlns:xs="http://www.w3.org/2001/XMLSchema"
- xmlns ="http://www.w3.org/1999/xhtml"
- xml:lang="en">
-
- <xs:annotation>
- <xs:documentation>
- <div>
- <h1>About the XML namespace</h1>
-
- <div class="bodytext">
- <p>
- This schema document describes the XML namespace, in a form
- suitable for import by other schema documents.
- </p>
- <p>
- See <a href="http://www.w3.org/XML/1998/namespace.html">
- http://www.w3.org/XML/1998/namespace.html</a> and
- <a href="http://www.w3.org/TR/REC-xml">
- http://www.w3.org/TR/REC-xml</a> for information
- about this namespace.
- </p>
- <p>
- Note that local names in this namespace are intended to be
- defined only by the World Wide Web Consortium or its subgroups.
- The names currently defined in this namespace are listed below.
- They should not be used with conflicting semantics by any Working
- Group, specification, or document instance.
- </p>
- <p>
- See further below in this document for more information about <a
- href="#usage">how to refer to this schema document from your own
- XSD schema documents</a> and about <a href="#nsversioning">the
- namespace-versioning policy governing this schema document</a>.
- </p>
- </div>
- </div>
- </xs:documentation>
- </xs:annotation>
-
- <xs:attribute name="lang">
- <xs:annotation>
- <xs:documentation>
- <div>
-
- <h3>lang (as an attribute name)</h3>
- <p>
- denotes an attribute whose value
- is a language code for the natural language of the content of
- any element; its value is inherited. This name is reserved
- by virtue of its definition in the XML specification.</p>
-
- </div>
- <div>
- <h4>Notes</h4>
- <p>
- Attempting to install the relevant ISO 2- and 3-letter
- codes as the enumerated possible values is probably never
- going to be a realistic possibility.
- </p>
- <p>
- See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
- http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
- and the IANA language subtag registry at
- <a href="http://www.iana.org/assignments/language-subtag-registry">
- http://www.iana.org/assignments/language-subtag-registry</a>
- for further information.
- </p>
- <p>
- The union allows for the 'un-declaration' of xml:lang with
- the empty string.
- </p>
- </div>
- </xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:union memberTypes="xs:language">
- <xs:simpleType>
- <xs:restriction base="xs:string">
- <xs:enumeration value=""/>
- </xs:restriction>
- </xs:simpleType>
- </xs:union>
- </xs:simpleType>
- </xs:attribute>
-
- <xs:attribute name="space">
- <xs:annotation>
- <xs:documentation>
- <div>
-
- <h3>space (as an attribute name)</h3>
- <p>
- denotes an attribute whose
- value is a keyword indicating what whitespace processing
- discipline is intended for the content of the element; its
- value is inherited. This name is reserved by virtue of its
- definition in the XML specification.</p>
-
- </div>
- </xs:documentation>
- </xs:annotation>
- <xs:simpleType>
- <xs:restriction base="xs:NCName">
- <xs:enumeration value="default"/>
- <xs:enumeration value="preserve"/>
- </xs:restriction>
- </xs:simpleType>
- </xs:attribute>
-
- <xs:attribute name="base" type="xs:anyURI"> <xs:annotation>
- <xs:documentation>
- <div>
-
- <h3>base (as an attribute name)</h3>
- <p>
- denotes an attribute whose value
- provides a URI to be used as the base for interpreting any
- relative URIs in the scope of the element on which it
- appears; its value is inherited. This name is reserved
- by virtue of its definition in the XML Base specification.</p>
-
- <p>
- See <a
- href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
- for information about this attribute.
- </p>
- </div>
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
-
- <xs:attribute name="id" type="xs:ID">
- <xs:annotation>
- <xs:documentation>
- <div>
-
- <h3>id (as an attribute name)</h3>
- <p>
- denotes an attribute whose value
- should be interpreted as if declared to be of type ID.
- This name is reserved by virtue of its definition in the
- xml:id specification.</p>
-
- <p>
- See <a
- href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a>
- for information about this attribute.
- </p>
- </div>
- </xs:documentation>
- </xs:annotation>
- </xs:attribute>
-
- <xs:attributeGroup name="specialAttrs">
- <xs:attribute ref="xml:base"/>
- <xs:attribute ref="xml:lang"/>
- <xs:attribute ref="xml:space"/>
- <xs:attribute ref="xml:id"/>
- </xs:attributeGroup>
-
- <xs:annotation>
- <xs:documentation>
- <div>
-
- <h3>Father (in any context at all)</h3>
-
- <div class="bodytext">
- <p>
- denotes Jon Bosak, the chair of
- the original XML Working Group. This name is reserved by
- the following decision of the W3C XML Plenary and
- XML Coordination groups:
- </p>
- <blockquote>
- <p>
- In appreciation for his vision, leadership and
- dedication the W3C XML Plenary on this 10th day of
- February, 2000, reserves for Jon Bosak in perpetuity
- the XML name "xml:Father".
- </p>
- </blockquote>
- </div>
- </div>
- </xs:documentation>
- </xs:annotation>
-
- <xs:annotation>
- <xs:documentation>
- <div xml:id="usage" id="usage">
- <h2><a name="usage">About this schema document</a></h2>
-
- <div class="bodytext">
- <p>
- This schema defines attributes and an attribute group suitable
- for use by schemas wishing to allow <code>xml:base</code>,
- <code>xml:lang</code>, <code>xml:space</code> or
- <code>xml:id</code> attributes on elements they define.
- </p>
- <p>
- To enable this, such a schema must import this schema for
- the XML namespace, e.g. as follows:
- </p>
- <pre>
- &lt;schema . . .>
- . . .
- &lt;import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="http://www.w3.org/2001/xml.xsd"/>
- </pre>
- <p>
- or
- </p>
- <pre>
- &lt;import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
- </pre>
- <p>
- Subsequently, qualified reference to any of the attributes or the
- group defined below will have the desired effect, e.g.
- </p>
- <pre>
- &lt;type . . .>
- . . .
- &lt;attributeGroup ref="xml:specialAttrs"/>
- </pre>
- <p>
- will define a type which will schema-validate an instance element
- with any of those attributes.
- </p>
- </div>
- </div>
- </xs:documentation>
- </xs:annotation>
-
- <xs:annotation>
- <xs:documentation>
- <div id="nsversioning" xml:id="nsversioning">
- <h2><a name="nsversioning">Versioning policy for this schema document</a></h2>
- <div class="bodytext">
- <p>
- In keeping with the XML Schema WG's standard versioning
- policy, this schema document will persist at
- <a href="http://www.w3.org/2009/01/xml.xsd">
- http://www.w3.org/2009/01/xml.xsd</a>.
- </p>
- <p>
- At the date of issue it can also be found at
- <a href="http://www.w3.org/2001/xml.xsd">
- http://www.w3.org/2001/xml.xsd</a>.
- </p>
- <p>
- The schema document at that URI may however change in the future,
- in order to remain compatible with the latest version of XML
- Schema itself, or with the XML namespace itself. In other words,
- if the XML Schema or XML namespaces change, the version of this
- document at <a href="http://www.w3.org/2001/xml.xsd">
- http://www.w3.org/2001/xml.xsd
- </a>
- will change accordingly; the version at
- <a href="http://www.w3.org/2009/01/xml.xsd">
- http://www.w3.org/2009/01/xml.xsd
- </a>
- will not change.
- </p>
- <p>
- Previous dated (and unchanging) versions of this schema
- document are at:
- </p>
- <ul>
- <li><a href="http://www.w3.org/2009/01/xml.xsd">
- http://www.w3.org/2009/01/xml.xsd</a></li>
- <li><a href="http://www.w3.org/2007/08/xml.xsd">
- http://www.w3.org/2007/08/xml.xsd</a></li>
- <li><a href="http://www.w3.org/2004/10/xml.xsd">
- http://www.w3.org/2004/10/xml.xsd</a></li>
- <li><a href="http://www.w3.org/2001/03/xml.xsd">
- http://www.w3.org/2001/03/xml.xsd</a></li>
- </ul>
- </div>
- </div>
- </xs:documentation>
- </xs:annotation>
-
-</xs:schema>
-
diff --git a/test/java/org/apache/fop/intermediate/AbstractIFTest.java b/test/java/org/apache/fop/intermediate/AbstractIFTest.java
index cdb7e0cf9..2e7f37400 100644
--- a/test/java/org/apache/fop/intermediate/AbstractIFTest.java
+++ b/test/java/org/apache/fop/intermediate/AbstractIFTest.java
@@ -71,7 +71,6 @@ abstract class AbstractIFTest extends AbstractIntermediateTest {
}
});
- sFactory.setResourceResolver(XMLSchemaResolver.getInstance());
File ifSchemaFile = new File(
"src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd");
ifSchema = sFactory.newSchema(ifSchemaFile);
diff --git a/test/java/org/apache/fop/intermediate/XMLSchemaResolver.java b/test/java/org/apache/fop/intermediate/XMLSchemaResolver.java
deleted file mode 100644
index 566e79f71..000000000
--- a/test/java/org/apache/fop/intermediate/XMLSchemaResolver.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-/* $Id$ */
-
-package org.apache.fop.intermediate;
-
-import java.io.InputStream;
-import java.util.MissingResourceException;
-
-import javax.xml.XMLConstants;
-
-import org.w3c.dom.bootstrap.DOMImplementationRegistry;
-import org.w3c.dom.ls.DOMImplementationLS;
-import org.w3c.dom.ls.LSInput;
-import org.w3c.dom.ls.LSResourceResolver;
-
-/**
- * A resource resolver that returns a cached instance of the XML Schema, that can normally
- * be found at {@linkplain http://www.w3.org/2001/xml.xsd}. This can be used to avoid
- * unnecessary connection to the W3C website.
- */
-final class XMLSchemaResolver implements LSResourceResolver {
-
- private static final String XML_SCHEMA_SYSTEM_ID = "http://www.w3.org/2001/xml.xsd";
-
- private static final LSInput XML_SCHEMA_INPUT;
-
- private static final XMLSchemaResolver INSTANCE = new XMLSchemaResolver();
-
- private XMLSchemaResolver() { }
-
- static {
- DOMImplementationRegistry registry = getDOMImplementationRegistry();
- DOMImplementationLS impl
- = (DOMImplementationLS) registry.getDOMImplementation("LS 3.0");
- XML_SCHEMA_INPUT = impl.createLSInput();
- InputStream xmlSchema = loadXMLSchema();
- XML_SCHEMA_INPUT.setByteStream(xmlSchema);
- }
-
- private static DOMImplementationRegistry getDOMImplementationRegistry() {
- try {
- return DOMImplementationRegistry.newInstance();
- } catch (ClassCastException e) {
- throw new ExceptionInInitializerError(e);
- } catch (ClassNotFoundException e) {
- throw new ExceptionInInitializerError(e);
- } catch (InstantiationException e) {
- throw new ExceptionInInitializerError(e);
- } catch (IllegalAccessException e) {
- throw new ExceptionInInitializerError(e);
- }
- }
-
- private static InputStream loadXMLSchema() {
- String xmlSchemaResource = "xml.xsd";
- InputStream xmlSchema = XMLSchemaResolver.class.getResourceAsStream(xmlSchemaResource);
- if (xmlSchema == null) {
- throw new MissingResourceException("Schema for XML namespace not found."
- + " Did you run ant junit-intermediate-format?",
- XMLSchemaResolver.class.getName(), xmlSchemaResource);
- }
- return xmlSchema;
- }
-
- public static XMLSchemaResolver getInstance() {
- return INSTANCE;
- }
-
- public LSInput resolveResource(String type, String namespaceURI, String publicId,
- String systemId, String baseURI) {
- if (XMLConstants.XML_NS_URI.equals(namespaceURI) && XML_SCHEMA_SYSTEM_ID.equals(systemId)) {
- return XML_SCHEMA_INPUT;
- } else {
- return null;
- }
- }
-
-}