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.
|
* positions in the second dimension of the transition table.
|
||||||
*/
|
*/
|
||||||
private int fTransTable[][] = null;
|
private int fTransTable[][] = null;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Array containing occurence information for looping states
|
* Array containing occurence information for looping states
|
||||||
* which use counters to check minOccurs/maxOccurs.
|
* which use counters to check minOccurs/maxOccurs.
|
||||||
@ -211,6 +212,7 @@ public class XSDFACM
|
|||||||
|
|
||||||
// Store away our index and pools in members
|
// Store away our index and pools in members
|
||||||
fLeafCount = leafCount;
|
fLeafCount = leafCount;
|
||||||
|
fIsCompactedForUPA = syntaxTree.isCompactedForUPA();
|
||||||
|
|
||||||
//
|
//
|
||||||
// Create some string pool indexes that represent the names of some
|
// 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…
x
Reference in New Issue
Block a user