OpenFPGA/libs/libopenfpgacapnproto/gen/unique_blocks.xsd

45 lines
1.5 KiB
XML

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Enumeration for BlockType -->
<xs:simpleType name="BlockType">
<xs:restriction base="xs:string">
<xs:enumeration value="cbx"/>
<xs:enumeration value="cby"/>
<xs:enumeration value="sb"/>
</xs:restriction>
</xs:simpleType>
<!-- BlockInfo Structure (using attributes for type, x, and y) -->
<xs:complexType name="BlockInfo">
<xs:attribute name="type" type="BlockType"/>
<xs:attribute name="x" type="xs:unsignedInt"/>
<xs:attribute name="y" type="xs:unsignedInt"/>
</xs:complexType>
<!-- InstanceInfo Structure (using attributes for x and y) -->
<xs:complexType name="InstanceInfo">
<xs:attribute name="x" type="xs:unsignedInt"/>
<xs:attribute name="y" type="xs:unsignedInt"/>
</xs:complexType>
<!-- UniqueBlockPacked Structure (blockInfo, list of instances) -->
<xs:complexType name="UniqueBlockPacked">
<xs:sequence>
<xs:element name="blockInfo" type="BlockInfo"/>
<xs:element name="instance" type="InstanceInfo" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- Root element definition combined with UniqueBlockCompactInfo structure -->
<xs:element name="unique_blocks">
<xs:complexType>
<xs:sequence>
<!-- Directly include atomInfo (previously part of UniqueBlockCompactInfo) -->
<xs:element name="atomInfo" type="UniqueBlockPacked" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>