Browse Source

Removed reference to XML schema from IF schema.

Copied the definition of xml:space into the IF schema.
Removed the setup-xml-schema Ant ask.

xml.xsd is a file under the W3C Document License and we cannot (yet?) redistribute files under such a license.


git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@1304524 13f79535-47bb-0310-9956-ffa450edef68
tags/fop-1_1rc1old
Vincent Hennebert 12 years ago
parent
commit
2874695d34

+ 4
- 15
build.xml View File

@@ -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"

+ 18
- 0
src/documentation/intermediate-format-ng/fop-intermediate-format-ng-content.xsd View File

@@ -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>

+ 1
- 3
src/documentation/intermediate-format-ng/fop-intermediate-format-ng.xsd View File

@@ -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>

+ 0
- 287
src/documentation/intermediate-format-ng/xml.xsd View File

@@ -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>


+ 0
- 1
test/java/org/apache/fop/intermediate/AbstractIFTest.java View File

@@ -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);

+ 0
- 94
test/java/org/apache/fop/intermediate/XMLSchemaResolver.java View File

@@ -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;
}
}

}

Loading…
Cancel
Save