users@jaxb.java.net

Name collisions

From: Nick Betteridge <n.betteridge_at_syntactics.com>
Date: Thu, 06 Mar 2003 20:54:05 +0000

Hi

I'm new to this, so apologies for the basic question relating to a basic problem

I've just hit my first problem with name collisions and I'm not having much luck. I'm trying to generate classes for the servlet schema web-app_2_3.xsd and I get errors with class/interface use.

I've written a bindings file in order to circumnavigate the name collisions but keep getting the same error when using the bindings - 'premature end of file' - and it looks OK to me.


I would be very grateful if someone could cast a quick eye over this and point out my shortcomings.

Thanks

Nick

-------------------------------------
The initial errors with xjc web-app_2_3.xsd
-------------------------------------

>xjc web-app_2_3.xsd
parsing a schema...
[ERROR] A class/interface with the same name "generated.EnvEntryType" is already
 in use.
  line 183 of web-app_2_3.xsd

[ERROR] (Relevant to above error) another one is generated from here.
  line 164 of web-app_2_3.xsd

[ERROR] A class/interface with the same name "generated.ResourceEnvRefType" is a
lready in use.
  line 537 of web-app_2_3.xsd

[ERROR] (Relevant to above error) another one is generated from here.
  line 518 of web-app_2_3.xsd

[ERROR] A class/interface with the same name "generated.EjbRefType" is already i
n use.
  line 135 of web-app_2_3.xsd

[ERROR] (Relevant to above error) another one is generated from here.
  line 154 of web-app_2_3.xsd

Failed to parse a schema.
>


-------------------------------------
The errors with xjc web-app.xjb web-app.xsd
-------------------------------------


parsing a schema...
[ERROR] Premature end of file.
unknown location

Failed to parse a schema




-------------------------------------
The web-app.xjb ... I get the same error with the comments removed too
-------------------------------------


<jxb:bindings version="1.0" xmlns:jxb="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <jxb:bindings schemaLocation="web-app_2_3.xsd" node="/xs:schema">

    <jxb:globalBindings bindingStyle="modelGroupBinding"/>
    <jxb:schemaBindings>
      <jxb:package name="."/>
      <jxb:nameXmlTransform>
        <jxb:elementName suffix="Element"/>
      </jxb:nameXmlTransform>
    </jxb:schemaBindings>

<!-- <jxb:bindings node="//xs:complexType[@name='EnvEntry']">
      <jxb:bindings node=".//xs:element[@name='EnvEntryType']">
        <jxb:property name="EnvEntryTypeElement"/>
      </jxb:bindings>
    </jxb:bindings>

    <jxb:bindings node="//xs:complexType[@name='EjbRef']">
      <jxb:bindings node=".//xs:ref[@name='EjbRefType']">
        <jxb:property name="EjbRefTypeRef"/>
      </jxb:bindings>
    </jxb:bindings>

    <jxb:bindings node="//xs:complexType[@name='ResourceEnvRef']">
      <jxb:bindings node=".//xs:element[@name='ResourceEnvRefType']">
        <jxb:property name="ResourceEnvRefTypeRef"/>
      </jxb:bindings>
    </jxb:bindings> -->

  </jxb:bindings>
</jxb:bindings>


-------------------------------------
The web-app.xsd
-------------------------------------

<?xml version="1.0" encoding="UTF-8"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"

xmlns:jxb="http://java.sun.com/xml/ns/jaxb"

jxb:version="1.0">

<xs:element name="web-app">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" ref="icon" />

<xs:element minOccurs="0" ref="display-name" />

<xs:element minOccurs="0" ref="description" />

<xs:element minOccurs="0" ref="distributable" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="context-param" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="filter" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="filter-mapping" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="listener" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="servlet" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="servlet-mapping" />

<xs:element minOccurs="0" ref="session-config" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="mime-mapping" />

<xs:element minOccurs="0" ref="welcome-file-list" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="error-page" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="taglib" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="resource-env-ref" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="resource-ref" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="security-constraint" />

<xs:element minOccurs="0" ref="login-config" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="security-role" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="env-entry" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="ejb-ref" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="ejb-local-ref" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="auth-constraint">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" ref="description" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="role-name" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="auth-method">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="context-param">

<xs:complexType>

<xs:sequence>

<xs:element ref="param-name" />

<xs:element ref="param-value" />

<xs:element minOccurs="0" ref="description" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="description">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="display-name">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="distributable">

<xs:complexType>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="ejb-link">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="ejb-local-ref">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" ref="description" />

<xs:element ref="ejb-ref-name" />

<xs:element ref="ejb-ref-type" />

<xs:element ref="local-home" />

<xs:element ref="local" />

<xs:element minOccurs="0" ref="ejb-link" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="ejb-ref">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" ref="description" />

<xs:element ref="ejb-ref-name" />

<xs:element ref="ejb-ref-type" />

<xs:element ref="home" />

<xs:element ref="remote" />

<xs:element minOccurs="0" ref="ejb-link" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="ejb-ref-name">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="ejb-ref-type">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="env-entry">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" ref="description" />

<xs:element ref="env-entry-name" />

<xs:element minOccurs="0" ref="env-entry-value" />

<xs:element ref="env-entry-type" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="env-entry-name">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="env-entry-type">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="env-entry-value">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="error-code">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="error-page">

<xs:complexType>

<xs:sequence>

<xs:choice>

<xs:element ref="error-code" />

<xs:element ref="exception-type" />

</xs:choice>

<xs:element ref="location" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="exception-type">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="extension">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="filter">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" ref="icon" />

<xs:element ref="filter-name" />

<xs:element minOccurs="0" ref="display-name" />

<xs:element minOccurs="0" ref="description" />

<xs:element ref="filter-class" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="init-param" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="filter-class">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="filter-mapping">

<xs:complexType>

<xs:sequence>

<xs:element ref="filter-name" />

<xs:choice>

<xs:element ref="url-pattern" />

<xs:element ref="servlet-name" />

</xs:choice>

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="filter-name">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="form-error-page">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="form-login-config">

<xs:complexType>

<xs:sequence>

<xs:element ref="form-login-page" />

<xs:element ref="form-error-page" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="form-login-page">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="home">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="http-method">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="icon">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" ref="small-icon" />

<xs:element minOccurs="0" ref="large-icon" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="init-param">

<xs:complexType>

<xs:sequence>

<xs:element ref="param-name" />

<xs:element ref="param-value" />

<xs:element minOccurs="0" ref="description" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="jsp-file">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="large-icon">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="listener">

<xs:complexType>

<xs:sequence>

<xs:element ref="listener-class" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="listener-class">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="load-on-startup">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="local">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="local-home">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="location">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="login-config">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" ref="auth-method" />

<xs:element minOccurs="0" ref="realm-name" />

<xs:element minOccurs="0" ref="form-login-config" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="mime-mapping">

<xs:complexType>

<xs:sequence>

<xs:element ref="extension" />

<xs:element ref="mime-type" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="mime-type">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="param-name">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="param-value">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="realm-name">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="remote">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="res-auth">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="res-ref-name">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="res-sharing-scope">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="res-type">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="resource-env-ref">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" ref="description" />

<xs:element ref="resource-env-ref-name" />

<xs:element ref="resource-env-ref-type" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="resource-env-ref-name">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="resource-env-ref-type">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="resource-ref">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" ref="description" />

<xs:element ref="res-ref-name" />

<xs:element ref="res-type" />

<xs:element ref="res-auth" />

<xs:element minOccurs="0" ref="res-sharing-scope" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="role-link">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="role-name">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="run-as">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" ref="description" />

<xs:element ref="role-name" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="security-constraint">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" ref="display-name" />

<xs:element maxOccurs="unbounded" ref="web-resource-collection" />

<xs:element minOccurs="0" ref="auth-constraint" />

<xs:element minOccurs="0" ref="user-data-constraint" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="security-role">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" ref="description" />

<xs:element ref="role-name" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="security-role-ref">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" ref="description" />

<xs:element ref="role-name" />

<xs:element minOccurs="0" ref="role-link" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="servlet">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" ref="icon" />

<xs:element ref="servlet-name" />

<xs:element minOccurs="0" ref="display-name" />

<xs:element minOccurs="0" ref="description" />

<xs:choice>

<xs:element ref="servlet-class" />

<xs:element ref="jsp-file" />

</xs:choice>

<xs:element minOccurs="0" maxOccurs="unbounded" ref="init-param" />

<xs:element minOccurs="0" ref="load-on-startup" />

<xs:element minOccurs="0" ref="run-as" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="security-role-ref" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="servlet-class">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="servlet-mapping">

<xs:complexType>

<xs:sequence>

<xs:element ref="servlet-name" />

<xs:element ref="url-pattern" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="servlet-name">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="session-config">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" ref="session-timeout" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="session-timeout">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="small-icon">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="taglib">

<xs:complexType>

<xs:sequence>

<xs:element ref="taglib-uri" />

<xs:element ref="taglib-location" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="taglib-location">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="taglib-uri">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="transport-guarantee">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="url-pattern">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="user-data-constraint">

<xs:complexType>

<xs:sequence>

<xs:element minOccurs="0" ref="description" />

<xs:element ref="transport-guarantee" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="web-resource-collection">

<xs:complexType>

<xs:sequence>

<xs:element ref="web-resource-name" />

<xs:element minOccurs="0" ref="description" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="url-pattern" />

<xs:element minOccurs="0" maxOccurs="unbounded" ref="http-method" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

<xs:element name="web-resource-name">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="welcome-file">

<xs:complexType>

<xs:simpleContent>

<xs:extension base="xs:string">

<xs:attribute name="id" type="xs:ID" />

</xs:extension>

</xs:simpleContent>

</xs:complexType>

</xs:element>

<xs:element name="welcome-file-list">

<xs:complexType>

<xs:sequence>

<xs:element maxOccurs="unbounded" ref="welcome-file" />

</xs:sequence>

<xs:attribute name="id" type="xs:ID" />

</xs:complexType>

</xs:element>

</xs:schema>