Skip to content

Validation / intellisense using XSDs with same namespace  #1030

@dkus

Description

@dkus

Hi,

I have two XSDs with same namespace:

document.a.1.0.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.0" xmlns="urn:xsd:document.a.1.0" targetNamespace="urn:xsd:document.a.1.0">
  <xs:element name="Document" type="DocumentType"></xs:element>
  <xs:complexType name="DocumentType">
    <xs:sequence>
      <xs:element name="A1" type="xs:string" fixed="1"></xs:element>
      <xs:element name="A2" type="A2Type"></xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="A2Type">
    <xs:sequence>
      <xs:element name="A3" type="xs:string" fixed="3"></xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

document.a.1.0.add.xsd

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.0" xmlns="urn:xsd:document.a.1.0" targetNamespace="urn:xsd:document.a.1.0">
  <xs:element name="Document" type="DocumentType"></xs:element>
  <xs:complexType name="DocumentType">
    <xs:sequence>
      <xs:element name="A1" type="xs:string" fixed="2"></xs:element>
      <xs:element name="A2" type="A2Type_2"></xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="A2Type_2">
    <xs:sequence>
      <xs:element name="A3" type="xs:string" fixed="33"></xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:schema>

And I generally use validation using catalog. For this XSD's I have the following entries in catalog.

catalog.xml

<catalog xmlns="urn:oasis:names:tc:entity:xmlns:xml:catalog" prefer="system">
  <system systemId="document.a.1.0.xsd" uri="document.a.1.0.xsd" />
  <system systemId="document.a.1.0.add.xsd" uri="document.a.1.0.add.xsd" />
  <uri name="urn:xsd:document.a.1.0" uri="document.a.1.0.xsd" />
  <uri name="urn:xsd:document.a.1.0" uri="document.a.1.0.add.xsd" />
</catalog>

The validation of the following XML passes in VsCode using this extension (I would say due to order of XSDs in catalog):

<?xml version="1.0" encoding="UTF-8"?>
<p:Document xmlns:p="urn:xsd:document.a.1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <p:A1>1</p:A1>
  <p:A2>
    <p:A3>3</p:A3>
  </p:A2>
</p:Document>

But, this one fails:

<?xml version="1.0" encoding="UTF-8"?>
<p:Document xmlns:p="urn:xsd:document.a.1.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <p:A1>2</p:A1>
  <p:A2>
    <p:A3>33</p:A3>
  </p:A2>
</p:Document>

When I do validation in Java code I must choose the correct XSD to validate XML.
The issue may be related to XERCESJ-1130.

Is there a way to do the similar in VsCode, keeping the catalog as-is, but choose correct XSD?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions