8142463: Xml schema validation failing after Xerces update; maxOccurs ignored
Reviewed-by: lancea
This commit is contained in:
parent
f7176a2886
commit
8a9ae48ba7
@ -136,6 +136,7 @@ public class XSDFACM
|
||||
* 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 @@ public class XSDFACM
|
||||
|
||||
// Store away our index and pools in members
|
||||
fLeafCount = leafCount;
|
||||
fIsCompactedForUPA = syntaxTree.isCompactedForUPA();
|
||||
|
||||
//
|
||||
// Create some string pool indexes that represent the names of some
|
||||
|
@ -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")));
|
||||
}
|
||||
}
|
@ -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>
|
19
jaxp/test/javax/xml/jaxp/unittest/validation/tck/upa01.xsd
Normal file
19
jaxp/test/javax/xml/jaxp/unittest/validation/tck/upa01.xsd
Normal file
@ -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>
|
Loading…
Reference in New Issue
Block a user