Reimplemented XML Tools and added styling #227
							
								
								
									
										33
									
								
								Frontend/src/assets/sampleXMLForXSD.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								Frontend/src/assets/sampleXMLForXSD.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| <?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> | ||||
							
								
								
									
										7
									
								
								Frontend/src/assets/sampleXQuery.xquery
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								Frontend/src/assets/sampleXQuery.xquery
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| declare namespace p="http://www.release11.com/person"; | ||||
| declare namespace b="http://www.release11.com/book"; | ||||
| declare namespace l="http://www.release11.com/library"; | ||||
|  | ||||
|  | ||||
| for $x in //p:person | ||||
| return string($x/p:name) | ||||
							
								
								
									
										33
									
								
								Frontend/src/assets/sampleXml.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								Frontend/src/assets/sampleXml.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,33 @@ | ||||
| <?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> | ||||
							
								
								
									
										42
									
								
								Frontend/src/assets/sampleXsd.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										42
									
								
								Frontend/src/assets/sampleXsd.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,42 @@ | ||||
| <?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> | ||||
							
								
								
									
										14
									
								
								Frontend/src/assets/sampleXslt.xml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								Frontend/src/assets/sampleXslt.xml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,14 @@ | ||||
| <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"> | ||||
|     <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> | ||||
|     </xsl:template> | ||||
| </xsl:stylesheet> | ||||
| @@ -21,16 +21,26 @@ function sendTransform() { | ||||
|     emit('update:transform', query.value) | ||||
| } | ||||
|  | ||||
| function setToDefaultXML(data: string) { | ||||
|     xml.value = data; | ||||
|     sendXml(); | ||||
| } | ||||
|  | ||||
| function setToDefaultQuery(data: string) { | ||||
|     query.value = data; | ||||
|     sendTransform(); | ||||
| } | ||||
|  | ||||
| </script> | ||||
|  | ||||
| <template> | ||||
|     <div class="flex flex-col w-full lg:w-1/2 h-full items-center gap-4"> | ||||
|         <div class="flex flex-col w-full h-1/2"> | ||||
|             <xmlInputFieldToolbarComponent prettyName="XML"></xmlInputFieldToolbarComponent> | ||||
|             <xmlInputFieldToolbarComponent prettyName="XML" @update:defaultData="(data) => setToDefaultXML(data)"></xmlInputFieldToolbarComponent> | ||||
|             <textarea id="xmlField" v-model="xml" @input="sendXml()" class="w-full h-full resize-none dark:text-slate-100 dark:bg-gray-600 border border-slate-400 p-2 rounded-md"></textarea> | ||||
|         </div> | ||||
|         <div class="flex flex-col w-full h-1/2"> | ||||
|             <xmlInputFieldToolbarComponent :prettyName="$props.prettyName"></xmlInputFieldToolbarComponent> | ||||
|             <xmlInputFieldToolbarComponent :prettyName="$props.prettyName" @update:defaultData="(data) => setToDefaultQuery(data)"></xmlInputFieldToolbarComponent> | ||||
|             <textarea id="transformField" v-model="query" @input="sendTransform()" class="w-full h-full resize-none dark:text-slate-100 dark:bg-gray-600 border border-slate-400 p-2 rounded-md"></textarea> | ||||
|         </div> | ||||
|     </div> | ||||
|   | ||||
| @@ -1,18 +1,49 @@ | ||||
| <script setup lang="ts"> | ||||
|  | ||||
| import sampleXML from "@/assets/sampleXml.xml?raw" | ||||
| import sampleXSLT from "@/assets/sampleXslt.xml?raw" | ||||
| import sampleXSD from "@/assets/sampleXsd.xml?raw" | ||||
| import sampleXQuery from "@/assets/sampleXQuery.xquery?raw" | ||||
|  | ||||
|  | ||||
| const props = defineProps( | ||||
|     { | ||||
|         prettyName: {type: String, required: true} | ||||
|     } | ||||
| ) | ||||
|  | ||||
| const emit = defineEmits(['update:defaultData']) | ||||
|  | ||||
| function setDefault() { | ||||
|     console.log(props.prettyName.toLowerCase()) | ||||
|     switch (props.prettyName.toLowerCase()) { | ||||
|         case "xpath": | ||||
|             emit("update:defaultData", "string(/l:library/l:libraryName)") | ||||
|             break; | ||||
|         case "xsd": | ||||
|             emit("update:defaultData", sampleXSD) | ||||
|             break; | ||||
|         case "xslt": | ||||
|             emit("update:defaultData", sampleXSLT) | ||||
|             break; | ||||
|         case "xquery": | ||||
|             emit("update:defaultData", sampleXQuery) | ||||
|             break; | ||||
|          | ||||
|         default: | ||||
|             emit("update:defaultData", sampleXML) | ||||
|             break; | ||||
|     } | ||||
|  | ||||
| } | ||||
|  | ||||
| </script> | ||||
|  | ||||
| <template> | ||||
|     <div class="flex place-content-between w-full pr-2 items-center m-2"> | ||||
|         <span class="dark:text-white">{{ prettyName }}</span> | ||||
|         <div class="flex space-x-2"> | ||||
|             <button class="tool-button">Insert default {{ prettyName }}</button> | ||||
|             <button class="tool-button" @click="setDefault()">Insert default {{ prettyName }}</button> | ||||
|         </div> | ||||
|          | ||||
|     </div> | ||||
|   | ||||
| @@ -10,6 +10,8 @@ const props = defineProps( | ||||
|     } | ||||
| ) | ||||
|  | ||||
| const emit = defineEmits(['update:result']) | ||||
|  | ||||
| const engine = ref(''); | ||||
| const version = ref(''); | ||||
|  | ||||
| @@ -17,7 +19,6 @@ const isSaxonHidden = ref(false); | ||||
| const isXalanHidden = ref(false); | ||||
| const isLibXMLHidden = ref(false); | ||||
|  | ||||
| const emit = defineEmits(['update:result']) | ||||
|  | ||||
| function process() { | ||||
|     var request:Request = prepareRequest(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user