1
0
mirror of https://github.com/suk-ws/ph-Bookshelf.git synced 2025-03-01 17:40:51 +08:00
ph-Bookshelf/assets/xsd/bookshelf.xsd

90 lines
2.2 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema
targetNamespace="https://book.sukazyo.cc/"
xmlns:phb="https://book.sukazyo.cc/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
elementFormDefault="qualified"
>
<xs:include schemaLocation="./book.xsd" />
<xs:include schemaLocation="./configurations.xsd" />
<xs:element name="BookShelf">
<xs:complexType>
<xs:sequence>
<xs:element name="site_name" type="xs:string" />
<xs:element name="site_icon" type="xs:string" minOccurs="0" />
<xs:element name="configurations" type="phb:phb-config-level-site" />
<xs:element name="links">
<xs:complexType>
<xs:group ref="phb:linkElement" maxOccurs="unbounded"/>
</xs:complexType>
</xs:element>
<xs:element name="books">
<xs:complexType>
<xs:group ref="phb:bookElement" maxOccurs="unbounded" />
</xs:complexType>
</xs:element>
<xs:element name="root_book" type="phb:bookContents" />
</xs:sequence>
<xs:attribute name="version" type="xs:string" />
</xs:complexType>
</xs:element>
<xs:group name="linkElement">
<xs:choice>
<xs:element name="Link">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="href" type="xs:anyURI" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Collection">
<xs:complexType>
<xs:sequence>
<xs:element name="caption" type="xs:string" />
<xs:group ref="phb:linkElement" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:group>
<xs:group name="bookElement">
<xs:choice>
<xs:element name="Book">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:string" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="Collection">
<xs:complexType>
<xs:sequence>
<xs:element name="caption" type="xs:string" />
<xs:group ref="phb:bookElement" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:group>
</xs:schema>