Uploaded image for project: 'Application Server 3  4  5 and 6'
  1. Application Server 3 4 5 and 6
  2. JBAS-6426

"jboss_5.0.xsd" of JBoss 5.0GA is invalid

XMLWordPrintable

      The jboss_5.0.xsd in the JBoss 5.0GA release (\docs\schema) is invalid.

      First of all: The comment in "jboss_5_0.xsd" showing a sample "jboss.xml" file seems to be wrong, as this jboss.xml leads to a deployment error:
      This is found in the XSD:
      <jboss xmlns="http://www.jboss.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.jboss.org/j2ee/schema
      http://www.jboss.org/j2ee/schema/jboss_5_0.xsd"
      version="5.0">
      ...
      </jboss>

      The deployment error is:
      ...
      Caused by: org.jboss.xb.binding.JBossXBException: Failed to parse source: Element

      {http://www.jboss.com/xml/ns/javaee}

      jboss is not bound as a global element.
      at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:203)
      at org.jboss.xb.binding.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:168)

      I found that the following snippet is working on deploy (but version is still invalid, see below!):
      <?xml version="1.0" encoding="UTF-8"?>
      <jboss xmlns="http://www.jboss.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee http://www.jboss.org/j2ee/schema/jboss_5_0.xsd"
      version="5.0">
      ....
      </jboss>

      =================
      The rest of the problems occur when using Eclipse 3.4/WebToolsPlatform 3.0 to build a "jboss.xml" which references to XSD. The errors also occur when adding the XSD itself to the project so that WTP validates it.

      First one:
      "Failed to read schema document 'ejb-jar_3_0.xsd', because 1) could not find the document; 2) the document could not be read; 3) the root element of the document is not <xsd:schema>."

      Solution:
      Modify import of "ejb-jar_3_0.xsd" to:
      <xsd:import namespace="http://java.sun.com/xml/ns/javaee" schemaLocation="http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"/>

      ===============
      This leads to the next one:
      "http://www.jboss.com/xml/ns/javaee":security-identity and "http://www.jboss.com/xml/ns/javaee":security-identity (or elements from their substitution group) violate "Unique Particle Attribution". During validation against this schema, ambiguity would be created for those two particles.

      Solution: in the definition of "message-driven-bean" is a dupliate "security-identity" element:
      <xsd:complexType name="message-driven-beanType">
      ...
      <xsd:element name="service-ref" type="jboss:service-refType" minOccurs="0"
      maxOccurs="unbounded"/>
      ===> <xsd:element name="security-identity" type="jboss:security-identityType" minOccurs="0"/>
      <xsd:element name="resource-ref" type="jboss:resource-refType" minOccurs="0"
      maxOccurs="unbounded"/>
      <xsd:element name="service-ref" type="jboss:service-refType" minOccurs="0"
      maxOccurs="unbounded"/>
      <xsd:element name="security-identity" type="jboss:security-identityType" minOccurs="0"/>
      <xsd:element name="resource-ref" type="jboss:resource-refType" minOccurs="0"
      maxOccurs="unbounded"/>
      <xsd:element name="resource-env-ref" type="jboss:resource-env-refType" minOccurs="0"
      maxOccurs="unbounded"/>
      <xsd:element name="message-destination-ref" type="jboss:message-destination-refType"
      minOccurs="0" maxOccurs="unbounded"/>

      ===> <xsd:element name="security-identity" type="jboss:security-identityType" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="security-domain" type="jboss:security-domainType" minOccurs="0"/>
      <xsd:element name="method-attributes" type="jboss:method-attributesType" minOccurs="0"/>

      Remove one of the duplicates.

      Now the XSD validates.
      =================
      So back to my jboss.xml:

      <?xml version="1.0" encoding="UTF-8"?>
      <jboss xmlns="http://www.jboss.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee jboss_5_0.xsd"
      version="5.0">
      </jboss>

      Error:
      Value '5.0' of attribute 'version' of element 'jboss' is not valid with respect to the corresponding attribute use. Attribute 'version' has a fixed value of '3.0'.

      Solution: version must be "3.0":
      <jboss xmlns="http://www.jboss.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.jboss.com/xml/ns/javaee jboss_5_0.xsd"
      version="3.0">

      I will attach a reworked file.

      Please take a look at bug https://jira.jboss.org/jira/browse/JBAS-6114
      This one is about updating the XSD at http://www.jboss.org/j2ee/schema/ , which would upload the invalid file from 5.0GA, and I think it should be blocked.

              olubyans@redhat.com Alexey Loubyansky
              wolfgangknauf Wolfgang Knauf
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

                Created:
                Updated:
                Resolved: