Implemented XML Formatter and simplified structure of XML tools (#229)

Co-authored-by: Adam Bem <adam.bem@zoho.eu>
Reviewed-on: #229
Reviewed-by: Mikolaj Widla <widlam@noreply.example.com>
This commit is contained in:
2023-06-21 14:32:00 +02:00
parent 3c79bddde3
commit f16639b45e
28 changed files with 573 additions and 329 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -1,33 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<library>
<libraryName>City library</libraryName>
<libraryID>345123</libraryID>
<readerList>
<person>
<readerID>7321</readerID>
<name>Adam</name>
<surname>Choke</surname>
</person>
<person>
<readerID>5123</readerID>
<name>Lauren</name>
<surname>Wong</surname>
</person>
</readerList>
<bookList>
<book>
<bookID>6422</bookID>
<title>Harry Potter</title>
<readerID>7542</readerID>
</book>
<book>
<bookID>1234</bookID>
<title>Macbeth</title>
<readerID>5123</readerID>
</book>
<book>
<bookID>9556</bookID>
<title>Romeo and Juliet</title>
</book>
</bookList>
</library>

View File

@@ -1,7 +1,5 @@
declare namespace p="http://www.release11.com/person";
declare namespace b="http://www.release11.com/book";
declare namespace l="http://www.release11.com/library";
declare default element namespace "http://www.release11.com/schemas/Sample.xsd";
declare namespace u = "http://www.release11.com/schemas/Sample.xsd";
for $x in //p:person
return string($x/p:name)
for $x in /u:root/u:UserList[@Id = 'a']/u:User
return string($x/u:Name)

View File

@@ -1,33 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<l:library xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.release11.com" xmlns:l="http://www.release11.com/library" xmlns:p="http://www.release11.com/person" xmlns:b="http://www.release11.com/book">
<l:libraryName>City library</l:libraryName>
<l:libraryID>345123</l:libraryID>
<l:readerList>
<p:person>
<p:readerID>7321</p:readerID>
<p:name>Adam</p:name>
<p:surname>Choke</p:surname>
</p:person>
<p:person>
<p:readerID>5123</p:readerID>
<p:name>Lauren</p:name>
<p:surname>Wong</p:surname>
</p:person>
</l:readerList>
<l:bookList>
<b:book>
<b:bookID>6422</b:bookID>
<b:title>Harry Potter</b:title>
<p:readerID>7542</p:readerID>
</b:book>
<b:book>
<b:bookID>1234</b:bookID>
<b:title>Macbeth</b:title>
<p:readerID>5123</p:readerID>
</b:book>
<b:book>
<b:bookID>9556</b:bookID>
<b:title>Romeo and Juliet</b:title>
</b:book>
</l:bookList>
</l:library>
<?xml version = "1.0" encoding = "UTF-8"?>
<u:root xmlns:u = "http://www.release11.com/schemas/Sample.xsd" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation = "http://www.tibco.com/schemas/Shemy4tools/Folder/Schema.xsd Schema4tools.xsd">
<u:UserList Id = "a">
<u:User Id = "1">
<u:Name>John</u:Name>
<u:Surname>Wick</u:Surname>
<u:DateOfDeath>2023-10-10</u:DateOfDeath>
</u:User>
<u:User Id = "2">
<u:Name>Martha</u:Name>
<u:Surname>Whane</u:Surname>
<u:DateOfDeath>1970-06-13</u:DateOfDeath>
</u:User>
<u:User Id = "3">
<u:Name>Bruce</u:Name>
<u:Surname>Lee</u:Surname>
<u:DateOfDeath>1985-01-24</u:DateOfDeath>
</u:User>
<u:User Id = "4">
<u:Name>John</u:Name>
<u:Surname>Rambo</u:Surname>
<u:DateOfDeath>2024-06-19</u:DateOfDeath>
</u:User>
<u:NameList>FirstList</u:NameList>
</u:UserList>
<u:UserList Id = "b">
<u:User Id = "1">
<u:Name>Jack</u:Name>
<u:Surname>Wicker</u:Surname>
<u:DateOfDeath>2023-10-10</u:DateOfDeath>
</u:User>
<u:NameList>SecondList</u:NameList>
</u:UserList>
<u:UserList Id = "c">
<u:User Id = "1">
<u:Name>New</u:Name>
<u:Surname>Folder</u:Surname>
<u:DateOfDeath>2023-11-10</u:DateOfDeath>
</u:User>
<u:User Id = "2">
<u:Name>Newer</u:Name>
<u:Surname>Folder</u:Surname>
<u:DateOfDeath>2023-11-11</u:DateOfDeath>
</u:User>
<u:User Id = "3">
<u:Name>Newest</u:Name>
<u:Surname>Folder</u:Surname>
<u:DateOfDeath>2023-11-12</u:DateOfDeath>
</u:User>
<u:User Id = "4">
<u:Name>New</u:Name>
<u:Surname>Folder2</u:Surname>
<u:DateOfDeath>2023-11-13</u:DateOfDeath>
</u:User>
<u:User Id = "5">
<u:Name>New</u:Name>
<u:Surname>Folder-Final</u:Surname>
<u:DateOfDeath>2023-11-14</u:DateOfDeath>
</u:User>
<u:NameList>ThirdList</u:NameList>
</u:UserList>
</u:root>

View File

@@ -1,42 +1,41 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
targetNamespace="">
<xsd:element name="library">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element minOccurs="0" name="libraryName" type="xsd:string" />
<xsd:element minOccurs="0" name="libraryID" type="xsd:int" />
<xsd:element minOccurs="0" name="readerList">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="person">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element minOccurs="0" name="readerID" type="xsd:int" />
<xsd:element minOccurs="0" name="name" type="xsd:normalizedString" />
<xsd:element minOccurs="0" name="surname" type="xsd:normalizedString" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element minOccurs="0" name="bookList">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element maxOccurs="unbounded" name="book">
<xsd:complexType mixed="true">
<xsd:sequence>
<xsd:element minOccurs="0" name="bookID" type="xsd:int" />
<xsd:element minOccurs="0" name="title" type="xsd:string" />
<xsd:element minOccurs="0" name="readerID" type="xsd:int" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:u="http://www.release11.com/schemas/Sample.xsd"
targetNamespace="http://www.release11.com/schemas/Sample.xsd"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element ref="u:UserList" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="UserList">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element ref="u:User" maxOccurs="unbounded"/>
<xs:element ref="u:NameList"/>
</xs:sequence>
<xs:attribute name="Id" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
<xs:simpleType name="User">
<xs:restriction base="xs:string"/>
</xs:simpleType>
<xs:element name="User">
<xs:complexType>
<xs:sequence>
<xs:element ref="u:Name"/>
<xs:element ref="u:Surname"/>
<xs:element ref="u:DateOfDeath"/>
</xs:sequence>
<xs:attribute name="Id" type="xs:int" use="required"/>
</xs:complexType>
</xs:element>
<xs:element name="Name" type="xs:string"/>
<xs:element name="Surname" type="xs:string"/>
<xs:element name="DateOfDeath" type="xs:date"/>
<xs:element name="NameList" type="xs:string"/>
</xs:schema>

View File

@@ -1,14 +1,17 @@
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:b="http://www.release11.com/book" xmlns:p="http://www.release11.com/person"
xmlns:l="http://www.release11.com/library">
<?xml version = "1.0" encoding = "UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:u = "http://www.release11.com/schemas/Sample.xsd"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<Library>
<ReaderCount>
<xsl:value-of select="count(//p:person)" />
</ReaderCount>
<BookCount>
<xsl:value-of select="count(/l:library/l:bookList/b:book)" />
</BookCount>
</Library>
<UserLists>
<UserListCount>
<xsl:value-of select="count(/u:root/u:UserList)" />
</UserListCount>
<xsl:for-each select="/u:root/u:UserList">
<UserListStats>
<Name><xsl:value-of select="u:NameList" /></Name>
<UserCount><xsl:value-of select="count(u:User)" /></UserCount>
</UserListStats>
</xsl:for-each>
</UserLists>
</xsl:template>
</xsl:stylesheet>