<?xml version="1.0"?>
<!--
  Copyright 2002-2004 The Apache Software Foundation

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<j:jelly xmlns:j="jelly:core" xmlns:v="jelly:validate">

Loading the verifier for a DTD

<v:verifier uri="address.dtd" var="addressSchema"/>

Attempting to validate a valid address ...

<v:validate var="flag" verifier="${addressSchema}">
  <addressBook>
    <card>
      <name>John Smith</name>
      <email>js@example.com</email>
    </card>
    <card>
      <name>Fred Bloggs</name>
      <email>fb@example.net</email>
    </card>
  </addressBook>
</v:validate>

Validation returned: ${flag}

Attempting to validate a wrong address

<v:validate var="flag" verifier="${addressSchema}">
  <addressBook>
    <card>
      <email>js@example.com</email>
    </card>
    <card>
      <name>Fred Bloggs</name>
    </card>
    <card>
      <wrongname>Fred Bloggs</wrongname>
    </card>
    <card>
    </card>
  </addressBook>
</v:validate>

Validation returned: ${flag}
    
</j:jelly>
