<?xml version="1.0" encoding="utf-8"?>
<!--
Cadence Design Systems 


(C) COPYRIGHT, Cadence Design Systems, Inc. 2016
All Rights Reserved
Licensed Materials - PropertyA of Cadence Design Systems

No part of this file may be reproduced, stored in a retrieval system,
or transmitted in any form or by any means electronic, mechanical,
photocopying, recording, or otherwise without prior written permission
of Cadence Design Systems, Inc. 

WARRANTY:
Use all material in this file at your own risk.  Cadence Design Systems
makes no claims about any material contained in this file.
-->
<xs:schema
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://www.cadence.com/xsd/dictionaryOverlay"
    xmlns:l="http://www.cadence.com/xsd/dictionaryOverlay"
    elementFormDefault="qualified"
    >

  <xs:include schemaLocation="common.xsd"/>
  <xs:include schemaLocation="dictionaryCommon.xsd"/>
  
  <xs:annotation>
    <xs:documentation xml:lang="en">
      Cadence Allegro Constraint Manager property dictionary overlay schema.
      Copyright 2016 Cadence Design Systems LLC All rights reserved.
    </xs:documentation>
  </xs:annotation>

  <xs:element name="root">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="overlay">
          <xs:complexType>
            <xs:sequence>
              <xs:element ref="l:attribute" minOccurs="0" maxOccurs="unbounded"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="Version" type="l:VersionPattern" use="optional"/>
    </xs:complexType>
    <xs:key name="AttributeNameKey">
      <xs:selector xpath="l:attribute"/>
      <xs:field xpath="@Name"/>
    </xs:key>
  </xs:element>

  <xs:element name="attribute">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="l:value" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
      <xs:attribute name="Name" type="l:PropertyNamePattern" use="required">
        <xs:annotation>
          <xs:documentation>Attribute Name (&lt;= 64 characters)</xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name="Description" type="xs:string" use="optional">
        <xs:annotation>
          <xs:documentation>Free form attribute description text (&lt;= 255 characters). Used for simple help</xs:documentation>
        </xs:annotation>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="value">
    <xs:complexType>
      <xs:sequence>
            <xs:element name="flags" minOccurs="0" maxOccurs="1">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="add" type="l:OverlayFlagListTp" minOccurs="0" maxOccurs="1"/>
                  <xs:element name="remove" type="l:OverlayFlagListTp" minOccurs="0" maxOccurs="1"/>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
