8. Enhancements and bug fixes
Prev |  |

## 8. Enhancements and bug fixes

### 8.1. 3.6.1 (, 2007)

- Fixed a bug in James Clark's XP, the XML parser used by this toolset. The line numbers reported for an XML file where the encoding was other than UTF-8, UTF-16 and ISO-8859-1 (e.g. Windows-1252) and containing DOS-style end of lines (e.g. "`\r\n`") were incorrect. For example, a parse error found at line 67 actually occurred at line 67/2=34.

### 8.2. 3.5 (October 3, 2006)

- Removed dtdtoxsd, which was used to convert a DTD to a W3C XML schema. Please use Trang, a much better tool than dtdtoxsd, if you need this functionality.

- Added rngvalid, a RELAX NG validator, and schvalid, a Schematron validator.

- Renamed the distribution to XMLmind Validation Toolset.

### 8.3. 3.2 (April 03, 2006)

Bug fixes:

- This case (found in Dublin Core's `dcterms.xsd`) was wrongly detected as being an error: a `complexType` having `simpleContent` which is the restriction of a base `complexType` having a mixed content and an emptiable particle.

### 8.4. V3.0 Patch 1 (December 2, 2005)

Bug fixes:

- A `xs:keyref` identity constraint could reference a `xs:key` identity constraint, but not to a `xs:unique` identity constraint.

- An `xs:all` group must be the topmost group of a content model. Xsdvalid failed to enforce this constraint when the `xs:all` group was contained in a `xs:group`.

- Xsdvalid allowed element names to contain certain invalid characters. For example: it allowed to declare: `<element name="µ-computer"/>`.

- If schema1 includes schema2 and schema2 imports schema3, schema1 could reference components from schema3 without necessarily having a `<xs:import namespace="target namespace of schema3"/>` element.

- A value like 12.34E56 was accepted as being a valid `xs:decimal`.

### 8.5. V2.11 (July 11, 2005)

Bug fixes:

- There was a bug in the documentation of the XMLmind Xsdvalid Toolset. The documentation should read: the `xsdvalid`, `dtdvalid`, `dtdtoxsd` command-line tools are XML catalog aware. These command line tools will use the XML catalogs specified in environment variable `XML_CATALOG_FILES`. This variable must contain one or several XML catalog file names or URLs separated by a semi-colon ('`;`').

### 8.6. V2.10 (June 2, 2005)

Bug fixes:

- Fixed a `NullPointerException` that occurred for union types having a member type with a pattern facet or an enumeration facet and another member type of the same base type, but having no pattern facet or enumeration facet.

- When `xsdvalid` cannot cope with an `import` element without a `schemaLocation` attribute, it reports an `x-src-import` warning. Previously, it used to report a `x-src-import` fatal error.

### 8.7. V2.9 Patch 1 (April 4, 2005)

Bug fixes:

- The `blockDefault` and `finalDefault` attributes were applied not only to the direct descendants of a `schema` element but also to components obtained from imported schemas.

### 8.8. V2.9 (February 7, 2005)

Bug fixes:

- Error: `element declaration "bar" inconsistent [cos-element-consistent]` was reported for the valid example below:

      <xs:element name="foo">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="bar" type="xs:token" />
            <xs:element name="bar" type="xs:token" nillable="true" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>

  An error is still reported for the above valid schema, but the error is now an implementation error: `implementation limit: element declaration "bar" differs from previous element declarations "bar" [x-cos-element-consistent]`.

- The implementation of wildcards was out of date.

  For example, `##other` meant (to make it simple) "any namespace, including absent, different from `targetNamespace`".

  In fact, `##other` means "a namespace must be specified and this namespace must be different from `targetNamespace`".

Regressions:

- Xsdvalid: W3C XML Schemas having no target namespace can no longer be serialized. Option `-ss` `-` schema_location where '-' means no target namespace is no longer supported.

- Xsdvalid, dtdvalid: last deseralized schema or DTD is no longer cached. In practice, this means that:

      xsdvalid -r serial f1.xhtml f2.xhtml f3.xhtml

  is now much slower now because the W3C XML Schema for XHTML is deserialized for each document to be validated.

  If you want to speed up this, run something like:

      xsdvalid -r serial -ss http://www.xmlmind.com/xmleditor/schema/xhtml xhtml.xsd \
          f1.xhtml f2.xhtml f3.xhtml

### 8.9. V2.6 Patch 1 (June 18, 2004)

Enhancements:

- Upgraded the Schema for Schemas to the version included in "XML Schema Part 1: Structures Second Edition - W3C Proposed Edited Recommendation 18 March 2004".

  This version of the Schema for Schemas allows to add attributes with non-schema namespaces to annotate most schema components.

  Slightly edited this normative schema to allow spaces before and after path alternatives in the `xpath` attributes of elements `selector` and `field`. Example:

      <xs:key name="truck1" >
        <xs:selector xpath="truck" />
        <xs:field xpath="@number | @plate" />
      </xs:key>

- Xsdvalid now supports `xs:import` elements without a `schemaLocation` attribute, if an `xs:import` element for the same namespace but this time having a `schemaLocation` attribute has previously been processed.

  Example:

        <xs:import namespace="foo"
                   schemaLocation="http://foo.com/schema1.xsd" />

        <!-- Later, typically inside an included module. -->
        <xs:import namespace="foo" />

  Note that the other example below will not work because the W3C XML Schema validation engine cannot guess which of `schema1.xsd` or `schema2.xsd` needs to be imported.

        <xs:import namespace="foo"
                   schemaLocation="http://foo.com/schema1.xsd" />

        <!-- Later, typically inside an included module. -->
        <xs:import namespace="foo"
                   schemaLocation="http://foo.com/schema2.xsd" />

        <!-- Later, typically inside another included module. -->
        <xs:import namespace="foo" />

- Xsdvalid: it is now possible to use XML catalogs to resolve URLs found in the following places:

  - Schema locations in `xsi:schemaLocation` and in `xsi:noNamespaceSchemaLocation`.

  - Schema locations in `xs:include`, `xs:redefine`, `xs:import`.

Bug fixes:

- ``Placeholder groups'' such as:

      <xs:group name="Misc.extra">
        <xs:choice/>
      </xs:group>

  caused xsdvalid to throw a `NullPointerException`.

- Identity constraints found in element declarations themselves contained in groups, like for example,

         <xs:group name="general">
            <xs:sequence>
               <xs:element name="general" type="general">
                  <xs:unique name="generalUnique">
                     <xs:selector xpath="*"/>
                     <xs:field xpath="@uniqueElementName"/>
                  </xs:unique>
               </xs:element>
            </xs:sequence>
         </xs:group>

  caused xsdvalid to report false errors (the error message was: an identity-constraint with the same name "XXX" has already been defined).

### 8.10. V2.6 (May 10, 2004)

Enhancements:

- The `xsdvalid`, `dtdvalid`, `dtdtoxsd` command-line tools are now XML catalog aware. These command line tools will use the XML catalogs specified in environment variable `XXE_CATALOG`. This variable must contain one or several XML catalog file names or URLs separated by a semi-colon ('`;`').

Bug fixes:

- The complete schema built from multiple schemas specified using `xsi:schemaLocation` and / or `xsi:noNamespaceSchemaLocation` attributes was incorrect.

### 8.11. V2.5 Patch 3 (March 10, 2004)

Bug fixes:

- The validation engine implemented the original "Schema Component Constraint: Type Derivation OK (Simple)" specification, not the one fixed in "XML Schema 1.0 Specification Errata". This caused valid substitution groups where the type of the head was `xs:anyType` to be rejected by the engine.

- A substitution group containing just a single non-abstract member was ignored.

### 8.12. V2.5 Patch 1 (December 15, 2003)

Bug fixes:

- In XPath expressions, the default namespace declared with `xmlns` was used for name tests on elements. Now, if the QName does not have a prefix, then the namespace URI is null.

  Example: default namespace is "`http://www.w3.org/1999/xhtml`".

  Before the bug fix, "`div/p`" meant "`{http://www.w3.org/1999/xhtml}div/{http://www.w3.org/1999/xhtml}p`".

  After the bug fix, "`div/p`" means "`{}div/{}p`".

### 8.13. V2.5 (November 04, 2003)

Option -gendoc added to xsdvalid and dtdvalid allows to automatically generate an hypertext (HTML) reference manual from an XML schema or a DTD. See note about the generated documentation.

### 8.14. V2.4 (August 13, 2003)

Enhancements:

- Full support of regular expressions as specified in http://www.w3.org/TR/xmlschema-2/#regexs thanks to James Clark's excellent xsdregex library (XSD to Java Regular Expression Translator).

Bug fixes:

- QNames in included schema with no target namespace were not properly resolved when the including schema had a target namespace (feature known as ``Chameleon Includes'').

### 8.15. V2.0 Beta 1 (September 3, 2002)

Changed version number to V2 to use the same version number as XXE.

### 8.16. V1.0 Patch 3 (August 19, 2002)

Forgot to update the documentation for the release of Patch2.

### 8.17. V1.0 Patch 2 (July 29, 2002)

Validating really large XML schemas on Windows was not possible due to a stack overflow error. Increasing the stack size by editing xsdvalid.bat and adding -Xss1m to the Java command line had no effect.

Xsdvalid 1.0 Patch2 requires Java 1.4. It will not run with Java 1.3. Do not upgrade if you cannot install Java 1.4 on your machine.

### 8.18. V1.0 Patch 1 (April 25, 2002)

Fixed an obscure bug related to restrictions of the NMTOKENS, IDREFS, and ENTITIES simple types.

### 8.19. V1.0 (January 9, 2002)

Initial release.

Prev |  |
7. Implementation limits | Home |