Mercurial > hg > openjdk > jdk9 > jaxp
changeset 846:e2fbfb7ed78a
8142463: Xml schema validation failing after Xerces update; maxOccurs ignored
Reviewed-by: lancea
author | joehw |
---|---|
date | Mon, 30 Nov 2015 16:17:54 -0800 |
parents | 5caeffed1b51 |
children | 1cefe0c8447c |
files | src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSDFACM.java test/javax/xml/jaxp/unittest/validation/tck/ParticleTest.java test/javax/xml/jaxp/unittest/validation/tck/upa01.xml test/javax/xml/jaxp/unittest/validation/tck/upa01.xsd |
diffstat | 4 files changed, 86 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSDFACM.java Sun Nov 29 11:00:03 2015 -0800 +++ b/src/java.xml/share/classes/com/sun/org/apache/xerces/internal/impl/xs/models/XSDFACM.java Mon Nov 30 16:17:54 2015 -0800 @@ -136,6 +136,7 @@ * positions in the second dimension of the transition table. */ private int fTransTable[][] = null; + /** * Array containing occurence information for looping states * which use counters to check minOccurs/maxOccurs. @@ -211,6 +212,7 @@ // Store away our index and pools in members fLeafCount = leafCount; + fIsCompactedForUPA = syntaxTree.isCompactedForUPA(); // // Create some string pool indexes that represent the names of some
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/javax/xml/jaxp/unittest/validation/tck/ParticleTest.java Mon Nov 30 16:17:54 2015 -0800 @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2015, Oracle and/or its affiliates. All rights reserved. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 only, as + * published by the Free Software Foundation. + * + * This code is distributed in the hope that it will be useful, but WITHOUT + * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or + * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * version 2 for more details (a copy is included in the LICENSE file that + * accompanied this code). + * + * You should have received a copy of the GNU General Public License version + * 2 along with this work; if not, write to the Free Software Foundation, + * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. + * + * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ +package validation.tck; + +import java.io.IOException; +import javax.xml.XMLConstants; +import javax.xml.transform.stream.StreamSource; +import javax.xml.validation.Schema; +import javax.xml.validation.SchemaFactory; +import javax.xml.validation.Validator; +import org.testng.annotations.Test; +import org.xml.sax.SAXException; + + +/* + * @bug 8142463 + * @summary Tests that verify bug fixes for Particles (http://www.w3.org/TR/xmlschema11-1/#cParticles) + + * @author Joe Wang (huizhe.wang@oracle.com) + */ +public class ParticleTest { + static final String SCHEMA_LANGUAGE = "http://java.sun.com/xml/jaxp/properties/schemaLanguage"; + static final String SCHEMA_SOURCE = "http://java.sun.com/xml/jaxp/properties/schemaSource"; + + /* + @bug 8142463 + This test verifies the fix for a missing flag that indicates the DFA + is compacted for UPA. Without the fix, the 2nd foo:foo element was + rejected. + */ + @Test + public void test() throws SAXException, IOException { + SchemaFactory schemaFactory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI); + Schema schema = schemaFactory.newSchema(new StreamSource(ParticleTest.class.getResourceAsStream("upa01.xsd"))); + Validator validator = schema.newValidator(); + + validator.validate(new StreamSource(ParticleTest.class.getResourceAsStream("upa01.xml"))); + } +}
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/javax/xml/jaxp/unittest/validation/tck/upa01.xml Mon Nov 30 16:17:54 2015 -0800 @@ -0,0 +1,6 @@ +<foo:root xmlns:foo="foo"> + <foo:foo>true</foo:foo> + <foo>123</foo > + <foo:foo>true</foo:foo> + <foo>123</foo > +</foo:root> \ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/javax/xml/jaxp/unittest/validation/tck/upa01.xsd Mon Nov 30 16:17:54 2015 -0800 @@ -0,0 +1,19 @@ +<?xml version="1.0"?> +<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" + elementFormDefault="qualified" + targetNamespace="foo" + xmlns="foo" + > + <xsd:element name="e1" type="xsd:boolean" /> + <xsd:element name="foo" substitutionGroup="e1" type="xsd:boolean" /> + + <xsd:element name="root" type="B" /> + + <xsd:complexType name="B"> + <xsd:choice maxOccurs="1000"> + <xsd:element ref="e1" /> + <xsd:element name="foo" type="xsd:int" form="unqualified"/> + </xsd:choice> + </xsd:complexType> + +</xsd:schema>