0

The attribute match may not always contain a value , it should allow Empty String :

<template mode="on" match="">
</template>

To validate that the previous code , I'm using the following xsd Here is my xsd :

<xs:element name="template">
    <xs:complexType>
        <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
        </xs:sequence>
        <xs:attribute type="xs:string" name="mode" use="optional"/>
        <xs:attribute name="match" use="optional">
            <xs:simpleType>
                <xs:union memberTypes="xs:string emptyString"/>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>
</xs:element>
<xs:simpleType name="emptyString">
        <xs:restriction base="xs:string">
            <xs:length value="0"/>
        </xs:restriction>
</xs:simpleType>

In the validation process against the xsd, I got the following error message : no viable alternative at input ' <EOF> ' .

The following code doesn't show me any error.

<template mode="on" match="aaa">
</template>

Any Idea how to solve this ?

0

1 Answer 1

1

Assuming that your complete XSD is as follows,

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:element name="template">
    <xs:complexType>
      <xs:sequence>
        <xs:any minOccurs="0" maxOccurs="unbounded" processContents="lax"/>
      </xs:sequence>
      <xs:attribute type="xs:string" name="mode" use="optional"/>
      <xs:attribute name="match" use="optional">
        <xs:simpleType>
          <xs:union memberTypes="xs:string emptyString"/>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="emptyString">
    <xs:restriction base="xs:string">
      <xs:length value="0"/>
    </xs:restriction>
  </xs:simpleType>

</xs:schema>

Then your XML is valid against your XSD, both with template/@match="" and with with template/@match="aaa". There is nothing wrong with either your XML or your XSD.

Note, though, that a xs:string can already be empty without the extra xs:union with emptyString part.

Note, too, that your error message does not look like one generated by common validating XML/XSD parsers. I suspect that your message is actually originating from another program, or that you've failed to produce a true MCVE of your issue.

Sign up to request clarification or add additional context in comments.

1 Comment

You're right, I have another top layer that produces, thanks.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.