<?xml version="1.0"?>
<!-- 
 Copyright 2020-2022 F4PGA Authors

 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.

 SPDX-License-Identifier: Apache-2.0


 XML 1.0 Schema for packed netlist format developed based on documentation here:
 http://vtr-verilog-to-routing.readthedocs.io/en/latest/vpr/file_formats.html#packed-netlist-format-net
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

  <xs:complexType name="named_value">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="name" type="xs:string" use="required"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="port">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="name" type="xs:string" use="required"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="port_rotation_map">
    <xs:simpleContent>
      <xs:extension base="xs:string">
        <xs:attribute name="name" type="xs:string" use="required"/>
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:complexType name="port_group" mixed="true">
    <xs:sequence>
      <xs:element name="port" type="port" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="block">
    <xs:choice minOccurs="0" maxOccurs="unbounded">
      <xs:element name="inputs">
        <xs:complexType  mixed="true">
          <xs:choice minOccurs="0" maxOccurs="unbounded">
            <xs:element name="port" type="port"/>
            <xs:element name="port_rotation_map" type="port_rotation_map"/>
          </xs:choice>
        </xs:complexType>
      </xs:element>
      <xs:element name="outputs" type="port_group"/>
      <xs:element name="clocks" type="port_group"/>
      <xs:element name="attributes">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="attribute" type="named_value" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
      <xs:element name="parameters">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="parameter" type="named_value" minOccurs="0" maxOccurs="unbounded"/>
          </xs:sequence>
        </xs:complexType>
      </xs:element>

      <xs:element name="block" type="block"/>
    </xs:choice>

    <xs:attribute name="name" type="xs:string"/>
    <xs:attribute name="instance" type="xs:string"/>
    <xs:attribute name="mode" type="xs:string"/>
    <xs:attribute name="architecture_id" type="xs:string"/>
    <xs:attribute name="atom_netlist_id" type="xs:string"/>
    <xs:attribute name="pb_type_num_modes" type="xs:integer"/>
  </xs:complexType>

  <xs:element name="block" type="block"/>

</xs:schema>
