You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by "Michael Glavassevich (JIRA)" <xe...@xml.apache.org> on 2005/04/19 20:50:38 UTC

[jira] Assigned: (XERCESJ-1065) "Upwards" inheritance of properties with schema include

     [ http://issues.apache.org/jira/browse/XERCESJ-1065?page=all ]

Michael Glavassevich reassigned XERCESJ-1065:
---------------------------------------------

    Assign To: Michael Glavassevich

> "Upwards" inheritance of properties with schema include
> -------------------------------------------------------
>
>          Key: XERCESJ-1065
>          URL: http://issues.apache.org/jira/browse/XERCESJ-1065
>      Project: Xerces2-J
>         Type: Bug
>   Components: XML Schema datatypes
>     Versions: 2.6.2
>  Environment: Windows XP
> J2sdk1.4.2_06
>     Reporter: Ole Hougaard
>     Assignee: Michael Glavassevich
>     Priority: Critical

>
> I've observed this behaviour of XML Schemas: When an abstract complexType extends a concrete complexType, the latter is treated as abstract as well. This only occurs when the concrete type is defined in another file that is included into the schema.
> This is reproduced in the following schema files.
> Base.xsd:
>   <?xml version="1.0" encoding="UTF-8"?>
>   <xs:schema targetNamespace="http://w3c.org/test"  
>              xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://w3c.org/test">
>   	<xs:complexType name="Base" abstract="false"/>
>   </xs:schema>
> test.xsd:
>   <?xml version="1.0" encoding="UTF-8"?>
>   <xs:schema targetNamespace="http://w3c.org/test"   
>              xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://w3c.org/test">
>   	<xs:include schemaLocation="Base.xsd"/>
> 	  <xs:complexType name="Derived" abstract="true">
> 		  <xs:complexContent>
> 			  <xs:extension base="Base"/>
>                    </xs:complexContent>
>           </xs:complexType>
> 	  <xs:element name="base" type="Base"/>
>   </xs:schema>
> The validation of the file test.xml below fails with cvc-type.2: The type definition cannot be abstract for element base.
> test.xml:
>   <?xml version="1.0" encoding="UTF-8" standalone="no"?>
>   <base xmlns="http://w3c.org/test" 
>         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
> I'm using the follwing code to validate the schema.
> XercesTest.java:
> public class XercesTest {
>     private static final ContentHandler contentHandler = new ContentHandler() {
>         public void endDocument() {
>         }
>         public void startDocument() {
>         }
>         public void characters(char[] ch, int start, int length) {
>         }
>         public void ignorableWhitespace(char[] ch, int start, int length) {
>         }
>         public void endPrefixMapping(String prefix) {
>         }
>         public void skippedEntity(String name) {
>         }
>         public void setDocumentLocator(Locator locator) {
>         }
>         public void processingInstruction(String target, String data) {
>         }
>         public void startPrefixMapping(String prefix, String uri) {
>         }
>         public void endElement(String namespaceURI, String localName, String qName) {
>         }
>         public void startElement(String namespaceURI, String localName, String qName, Attributes atts) {
>         }
>     };
>     private static final ErrorHandler errorHandler = new ErrorHandler() {
>         public void error(SAXParseException exception) throws SAXException {
>             throw exception;
>         }
>         public void fatalError(SAXParseException exception) throws SAXException {
>             throw exception;
>         }
>         public void warning(SAXParseException exception) {
>             exception.printStackTrace();
>         }
>     };
>     public static void main(String[] args) throws Throwable {
>         try {
>             XMLReader parser = XMLReaderFactory.createXMLReader("org.apache.xerces.parsers.SAXParser");
>             URL schemaUrl = XercesTest.class.getResource("/test.xsd");
>             parser.setProperty("http://apache.org/xml/properties/schema/external-schemaLocation",
>                     "http://w3c.org/test " + schemaUrl);
>             parser.setFeature("http://xml.org/sax/features/validation", true);
>             parser.setFeature("http://apache.org/xml/features/validation/schema", true);
>             parser.setContentHandler(contentHandler);
>             parser.setErrorHandler(errorHandler);
>             parser.parse(new InputSource(XercesTest.class.getResourceAsStream("/test.xml")));
>             
>         } catch (Exception e) {
>             e.printStackTrace();
>         }
>     }
> }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


---------------------------------------------------------------------
To unsubscribe, e-mail: j-dev-unsubscribe@xerces.apache.org
For additional commands, e-mail: j-dev-help@xerces.apache.org