|  | @ -7,6 +7,7 @@ use Darksparrow\AuxiliumSchemaBuilder\Attributes\SchemaDocument; | 
			
		
	
		
		
			
				
					|  |  | use Darksparrow\AuxiliumSchemaBuilder\Attributes\SchemaDocumentField; |  |  | use Darksparrow\AuxiliumSchemaBuilder\Attributes\SchemaDocumentField; | 
			
		
	
		
		
			
				
					|  |  | use Darksparrow\AuxiliumSchemaBuilder\Utilities\URLHandling; |  |  | use Darksparrow\AuxiliumSchemaBuilder\Utilities\URLHandling; | 
			
		
	
		
		
			
				
					|  |  | use JetBrains\PhpStorm\NoReturn; |  |  | use JetBrains\PhpStorm\NoReturn; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | use PHPUnit\Util\Exception; | 
			
		
	
		
		
			
				
					|  |  | use ReflectionClass; |  |  | use ReflectionClass; | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  | class SchemaBuilder |  |  | class SchemaBuilder | 
			
		
	
	
		
		
			
				
					|  | @ -81,6 +82,9 @@ class SchemaBuilder | 
			
		
	
		
		
			
				
					|  |  |          */ |  |  |          */ | 
			
		
	
		
		
			
				
					|  |  |         foreach ($reflection->getProperties() as $property) |  |  |         foreach ($reflection->getProperties() as $property) | 
			
		
	
		
		
			
				
					|  |  |         { |  |  |         { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             $classNameRegex = '/^([\\]*)?[a-zA-Z_][a-zA-Z0-9_]*)(([\\]*[a-zA-Z0-9_]*)*)$/'; | 
			
		
	
		
		
			
				
					|  |  |  |  |  |             $urlRegex = '/^https?:\/\/[^\s$.?#].[^\s]*$/i'; | 
			
		
	
		
		
			
				
					|  |  |  |  |  | 
 | 
			
		
	
		
		
			
				
					|  |  |             $propertyName = ""; |  |  |             $propertyName = ""; | 
			
		
	
		
		
			
				
					|  |  |             $propertySchema = []; |  |  |             $propertySchema = []; | 
			
		
	
		
		
			
				
					|  |  | 
 |  |  | 
 | 
			
		
	
	
		
		
			
				
					|  | @ -101,24 +105,38 @@ class SchemaBuilder | 
			
		
	
		
		
			
				
					|  |  |                             "@comment" => $value->Comment, |  |  |                             "@comment" => $value->Comment, | 
			
		
	
		
		
			
				
					|  |  |                             "@valid_schemas" => $value->ValidSchemas, |  |  |                             "@valid_schemas" => $value->ValidSchemas, | 
			
		
	
		
		
			
				
					|  |  |                         ]; |  |  |                         ]; | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                         $propertySchema["@valid_schemas"] = []; | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                         foreach($value as $validSchema) | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                         { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                             if (preg_match($classNameRegex, $validSchema)) | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                 $propertySchema["@valid_schemas"][] = URLHandling::GetURLForSchema($validSchema); | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                             elseif (preg_match($urlRegex, $validSchema)) | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                 $propertySchema["@valid_schemas"][] = $validSchema; | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                             else | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                 $propertySchema["@valid_schemas"][] = "test123"; | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                         } | 
			
		
	
		
		
			
				
					|  |  |                     } |  |  |                     } | 
			
		
	
		
		
			
				
					
					|  |  |                     elseif(self::VerifyField($key, $value, $validKeys[1])) |  |  |                     elseif($key == "Existance") | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |                     { |  |  |                     { | 
			
		
	
		
		
			
				
					
					|  |  |                         $propertySchema["@" . self::PascalCaseToSnakeCase(input: $key)] = $value; |  |  |                         $propertySchema["#"] = $value->value; | 
			
				
				
			
		
	
		
		
	
		
		
			
				
					|  |  |                     } |  |  |                     } | 
			
		
	
		
		
			
				
					|  |  |                     elseif($key == "ValidSchemas") |  |  |                     elseif($key == "ValidSchemas") | 
			
		
	
		
		
			
				
					|  |  |                     { |  |  |                     { | 
			
		
	
		
		
			
				
					|  |  |                         $propertySchema["@valid_schemas"] = []; |  |  |                         $propertySchema["@valid_schemas"] = []; | 
			
		
	
		
		
			
				
					|  |  |                         $classNameRegex = '/^(\\\\?[A-Z][a-zA-Z0-9_]*)((\\\\[A-Z][a-zA-Z0-9_]*)*)$/'; |  |  |  | 
			
		
	
		
		
			
				
					|  |  |                         $urlRegex = '/^https?:\/\/[^\s$.?#].[^\s]*$/i'; |  |  |  | 
			
		
	
		
		
			
				
					|  |  |                         foreach($value as $validSchema) |  |  |                         foreach($value as $validSchema) | 
			
		
	
		
		
			
				
					|  |  |                         { |  |  |                         { | 
			
		
	
		
		
			
				
					|  |  |                             if (preg_match($classNameRegex, $validSchema)) |  |  |                             if (preg_match($classNameRegex, $validSchema)) | 
			
		
	
		
		
			
				
					|  |  |                                 $propertySchema["@valid_schemas"][] = URLHandling::GetURLForSchema($validSchema); |  |  |                                 $propertySchema["@valid_schemas"][] = URLHandling::GetURLForSchema($validSchema); | 
			
		
	
		
		
			
				
					|  |  |                             elseif (preg_match($urlRegex, $validSchema)) |  |  |                             elseif (preg_match($urlRegex, $validSchema)) | 
			
		
	
		
		
			
				
					|  |  |                                 $propertySchema["@valid_schemas"][] = $validSchema; |  |  |                                 $propertySchema["@valid_schemas"][] = $validSchema; | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                             else | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                                 $propertySchema["@valid_schemas"][] = "test123"; | 
			
		
	
		
		
			
				
					|  |  |                         } |  |  |                         } | 
			
		
	
		
		
			
				
					|  |  |                     } |  |  |                     } | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                     elseif(self::VerifyField($key, $value, $validKeys[1])) | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                     { | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                         $propertySchema["@" . self::PascalCaseToSnakeCase(input: $key)] = $value; | 
			
		
	
		
		
			
				
					|  |  |  |  |  |                     } | 
			
		
	
		
		
			
				
					|  |  |                 } |  |  |                 } | 
			
		
	
		
		
			
				
					|  |  |             } |  |  |             } | 
			
		
	
		
		
			
				
					|  |  |             if($propertyName == "") |  |  |             if($propertyName == "") | 
			
		
	
	
		
		
			
				
					|  | 
 |