- Possibility to transform the ER Diagram into an image, to save it or print using canvas
- FIxed bugs with the ER Diagram Zoom - Added messages when running the project - Inteligence to ask for new verbs and property tipes, to add them to the language and learn with the developer
Esse commit está contido em:
@@ -213,7 +213,7 @@
|
||||
}else{
|
||||
if(trim($this->currentLine) != '')
|
||||
{
|
||||
$this->messages[]= Array(3, "Expression with no known verb:<br/><i> \"" . $this->currentLine."\"</i>");
|
||||
$this->messages[]= Array(3, "Expression with no known verb:<img src='images/engine.gif' align='right' style='cursor:poniter;' alt='Specify the verb manually' title='Specify the verb manually' onclick='Mind.Project.AddVerb(event, this);'/><br/><i> \"" . $this->currentLine."\"</i>");
|
||||
$this->warnings++;
|
||||
}
|
||||
}
|
||||
@@ -273,7 +273,7 @@
|
||||
{
|
||||
$sharp= $this->quantifiers['max']['max'];
|
||||
}else{
|
||||
$this->messages[]= Array(2, "No quantifier found in <i>\"".$originalSentences[$i]."\"</i><br/>Multiple relation(N) was assumed");
|
||||
$this->messages[]= Array(2, "No quantifier found in <i>\"".$originalSentences[$i]."\"</i><br/>I will assume a multiple relation(N) here");
|
||||
|
||||
$curExpression[1]= str_replace($this->quantifierId, $this->quantifierId.$this->quantifiers['max']['max'], $curExpression[1]);
|
||||
$sharp= $this->quantifiers['max']['max'];
|
||||
@@ -297,6 +297,7 @@
|
||||
|
||||
$rels= Array(); // final array of valid relations
|
||||
$tables= Array();
|
||||
|
||||
while($rel= current($this->relations))
|
||||
{
|
||||
if(isset($this->relations[$rel->rightTable.'|'.$rel->leftTable]) && $rel->max== 'n')
|
||||
@@ -326,7 +327,7 @@
|
||||
else{
|
||||
}
|
||||
|
||||
$this->messages[]= Array(2, "Relation n/n between \"".$rel->leftTable."\" and \"".$rel->rightTable."\". A new table, \"".$tmpTable."\", was created to link them.");
|
||||
$this->messages[]= Array(2, "Relation n/n between \"".$rel->leftTable."\" and \"".$rel->rightTable."\". I have to create a new table, \"".$tmpTable."\", to link them.");
|
||||
|
||||
$tables[$tmpTable]->addForeignKey($rel->leftTable);
|
||||
$tables[$tmpTable]->addForeignKey($rel->rightTable);
|
||||
@@ -353,7 +354,7 @@
|
||||
if(sizeof($tables) == 0)
|
||||
{
|
||||
$this->messages[]= Array(0, "There are no entities in your project!");
|
||||
$this->messages[]= Array(2, "Is the project running on the correct idiom?");
|
||||
$this->messages[]= Array(2, "Is the project running with the correct idiom?");
|
||||
$this->messages[]= Array(2, "You can check if you haven't forgoten any \".\" or \";\" in the end of any line.");
|
||||
$this->errors++;
|
||||
}else{
|
||||
@@ -364,7 +365,7 @@
|
||||
{
|
||||
if(!isset($tables[$table->name]) && $table->name != $this->theWebMindLanguageTempTable)
|
||||
{
|
||||
$this->messages[]= Array(3, '"'.$table->name.'" has no relation with any other entity. It\'s going to be ignored and will NOT create any output');
|
||||
$this->messages[]= Array(3, '"'.$table->name.'" has no relation with any other entity. I will ignore it and will not create any "floating" table for it, or any output.');
|
||||
$this->warnings++;
|
||||
}
|
||||
next($this->tables);
|
||||
@@ -485,8 +486,7 @@
|
||||
$this->processedWML= '';
|
||||
$this->tmpSentences= '';
|
||||
$this->debug['status']= 1;
|
||||
/* $this->messages[]= Array(4, "Finished at ".(date('m/d/Y H:i:s')).' - User: '.$_SESSION['user']['login'].'<br/>'.
|
||||
" ".$project->lang.' '. sizeof($this->tables)." tables ".sizeof($this->sentences).' sentences').' in '; */
|
||||
// messaging the end of the action, with its status
|
||||
if($this->warnings == 0 && $this->errors == 0)
|
||||
$this->messages[]= Array(1, "Final Status: Finished with no errors");
|
||||
elseif($this->errors == 0)
|
||||
@@ -551,6 +551,17 @@
|
||||
$leftTable= $this->filter(trim($mindExp[0]));
|
||||
$rightTable= $this->filter(trim($mindExp[sizeof($mindExp)-1]));
|
||||
|
||||
if($pos = strpos($rightTable,':'))
|
||||
{
|
||||
$newTmpName= substr($rightTable, 0, $pos);
|
||||
$tmpType= substr($rightTable, $pos+1, strpos($rightTable, '(') - ($pos+1));
|
||||
$this->messages[]= Array(3, "Entity \"".$rightTable."\" renamed to \"".$newTmpName."\".".
|
||||
"<img src='images/engine.gif' align='right' style='cursor:poniter;' alt='Add \"".$tmpType."\" as a type' title='Add \"".$tmpType."\" as a type'".
|
||||
" onclick='Mind.Project.AddType(event, \"".$tmpType."\", ".JSON_encode($this->types).");'/>".
|
||||
"<br/>I believe it should be a property, right? But I couldn't identify the type \"".$tmpType."\"!");
|
||||
$rightTable= $newTmpName;
|
||||
$this->warnings++;
|
||||
}
|
||||
if($leftTable == $rightTable) // entity that points to itself
|
||||
{
|
||||
if(in_array(trim($this->quantifiers['max']['min']), $mindExp))
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
include('../../config/mind.php');
|
||||
include('../../'.$_MIND['framework']);
|
||||
include('../../'.$_MIND['header']);
|
||||
?><?php
|
||||
$file= $_MIND['rootDir'].$_MIND['languageDir'].'/'.$_SESSION['current']['lang'].'/'.$_SESSION['current']['lang'].'.xml';
|
||||
if(!$xmlLang= simplexml_load_file($file))
|
||||
{
|
||||
trigger_error(E_USER_ERROR, "Failed trying to access the dictionary!");
|
||||
exit;
|
||||
}
|
||||
if(isset($_POST['newVerb']) && isset($_POST['verbType']))
|
||||
{
|
||||
$parent= null;
|
||||
switch($_POST['verbType'])
|
||||
{
|
||||
case 'm':
|
||||
{
|
||||
$parent= $xmlLang->obligation;
|
||||
break;
|
||||
}
|
||||
case 'px':
|
||||
{
|
||||
$parent= $xmlLang->belongs;
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
$parent= $xmlLang->verbs;
|
||||
}
|
||||
}
|
||||
$curVerb= $parent->addChild('verb');
|
||||
$curVerb['value']= strip_tags(addslashes($_POST['newVerb']));
|
||||
file_put_contents($file, $xmlLang->asXML());
|
||||
exit;
|
||||
}
|
||||
if(isset($_POST['newType']) && isset($_POST['type']))
|
||||
{
|
||||
//$child= $xmlLang->types->$_POST['type']->addChild(strip_tags(addslashes($_POST['newType'])));
|
||||
$child= $xmlLang->XPath("types/type[@value='".$_POST['type']."']");
|
||||
if(isset($child[0]))
|
||||
{
|
||||
$substantive= $child[0]->addChild('substantive');
|
||||
$substantive['value']= strip_tags(addslashes($_POST['newType']));
|
||||
file_put_contents($file, $xmlLang->asXML());
|
||||
}
|
||||
exit;
|
||||
}
|
||||
?>
|
||||
@@ -540,6 +540,17 @@
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div id='debugBalloon'
|
||||
style='display:none;'>
|
||||
<img src='images/del.gif'
|
||||
align='right'
|
||||
onclick="Mind.Project.CloseBalloons()"/>
|
||||
<div class='balloon'>
|
||||
<br/>
|
||||
</div>
|
||||
<div class='tip'>
|
||||
</div>
|
||||
</div>
|
||||
<canvas id='oCanvas' width='600' height='400'></canvas>
|
||||
<div id='mindEditorSearch'
|
||||
style='display:none;'>
|
||||
|
||||
@@ -673,7 +673,6 @@ Mind.ERD= {
|
||||
var strDataURI = oCanvas.toDataURL("image/jpeg");
|
||||
var ctx = document.getElementById("oCanvas").getContext("2d");
|
||||
|
||||
var c= 0;
|
||||
var leftEst = -1;
|
||||
var lessLeft= -1;
|
||||
var toppEst = -1;
|
||||
@@ -681,7 +680,6 @@ Mind.ERD= {
|
||||
|
||||
for(i in this.shownTables)
|
||||
{
|
||||
c+= 16;
|
||||
if(leftEst == -1 || leftEst > this.shownTables[i].OO.offsetLeft)
|
||||
leftEst= this.shownTables[i].OO.offsetLeft;
|
||||
if(toppEst == -1 || toppEst > this.shownTables[i].OO.offsetTop)
|
||||
@@ -703,16 +701,11 @@ Mind.ERD= {
|
||||
ctx.clearRect(0, 0, w, h);
|
||||
|
||||
// drawing the tables
|
||||
ctx.font= "16px Tahoma";
|
||||
var l=0, t= 0;
|
||||
var tW=200, tH= 200;
|
||||
for(i in this.shownTables)
|
||||
{
|
||||
l= this.shownTables[i].OO.offsetLeft - leftEst;
|
||||
t= this.shownTables[i].OO.offsetTop - toppEst;
|
||||
tW= this.shownTables[i].OO.offsetWidth;
|
||||
tH= this.shownTables[i].OO.offsetHeight;
|
||||
ctx.fillRect(l,t,tW,tH);
|
||||
}
|
||||
var c= 0;
|
||||
// first, the relations
|
||||
var links= Mind.ERD.mapAreaContainer.getElementsByTagName('DIV');
|
||||
for(var i= 0, j= links.length; i<j; i++)
|
||||
{
|
||||
@@ -722,6 +715,53 @@ Mind.ERD= {
|
||||
tH= links[i].offsetHeight;
|
||||
ctx.fillRect(l,t,tW,tH);
|
||||
}
|
||||
// then, the tables
|
||||
for(i in this.shownTables)
|
||||
{
|
||||
ctx.fillStyle = "black";
|
||||
l= this.shownTables[i].OO.offsetLeft - leftEst;
|
||||
t= this.shownTables[i].OO.offsetTop - toppEst+10;
|
||||
tW= this.shownTables[i].OO.offsetWidth;
|
||||
tH= this.shownTables[i].OO.offsetHeight-10;
|
||||
ctx.fillRect(l,t,tW,tH);
|
||||
ctx.clearRect(l+1,t+1,tW-2,tH-2);
|
||||
ctx.textAlign= 'center';
|
||||
ctx.fillStyle = "red";
|
||||
ctx.font= "16px Tahoma";
|
||||
ctx.fillText(this.shownTables[i].name, l+(tW/2), t+15);
|
||||
ctx.fillStyle = "black";
|
||||
|
||||
obj= Mind.Project.knowledge.tables[this.shownTables[i].name];
|
||||
ctx.textAlign= 'left';
|
||||
|
||||
|
||||
t+= 2;
|
||||
if(obj.attributes)
|
||||
{
|
||||
ctx.moveTo(l,t+18);
|
||||
ctx.lineTo(l+tW,t+18);
|
||||
ctx.stroke();
|
||||
|
||||
t+= 4;
|
||||
c= 0;
|
||||
for(var att in obj.attributes)
|
||||
{
|
||||
c+= 22;
|
||||
ctx.fillText(obj.attributes[att].name, l+3, t+10+c);
|
||||
}
|
||||
}
|
||||
if(obj.foreignKeys.length > 0)
|
||||
{
|
||||
ctx.moveTo(l,t+c+16);
|
||||
ctx.lineTo(l+tW,t+c+16);
|
||||
ctx.stroke();
|
||||
for(fk in obj.foreignKeys)
|
||||
{
|
||||
c+= 22;
|
||||
ctx.fillText(obj.foreignKeys[fk][0], l+3, t+10+c);
|
||||
}
|
||||
}
|
||||
}
|
||||
//alert(links.length);
|
||||
|
||||
//ctx.fillText(leftEst+' : '+toppEst, 10, 10);
|
||||
@@ -747,18 +787,16 @@ Mind.ERD= {
|
||||
ctx.fillText("Sample String", 400, 50);
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
if(document.getElementById('tmpCanvas'))
|
||||
document.getElementById('tmpCanvas').parentNode.removeChild(document.getElementById('tmpCanvas'));
|
||||
if(w > 900)
|
||||
w= 900;
|
||||
if(h > 700)
|
||||
h= 700;
|
||||
Mind.tmpShownData= Mind.Dialog.ShowData("<div id='tmpCanvas' style='border:solid 1px #999;'></div>",
|
||||
Mind.tmpShownData= Mind.Dialog.ShowData("<div id='tmpCanvas'></div>",
|
||||
'ER Diagram', w+40, h+60, true);
|
||||
var image= Canvas2Image.saveAsPNG(document.getElementById('oCanvas'), true);
|
||||
document.getElementById('tmpCanvas').appendChild(image);
|
||||
ctx.clearRect(0, 0, 99999, 99999);
|
||||
}
|
||||
};
|
||||
|
||||
@@ -413,6 +413,7 @@ Mind.Project= {
|
||||
Mind.AjaxHandler.Capture(XMLHttpRequest);
|
||||
}
|
||||
});
|
||||
Mind.Project.CloseBalloons();
|
||||
},
|
||||
/* output methods */
|
||||
MountTree: function(oList){
|
||||
@@ -850,5 +851,67 @@ Mind.Project= {
|
||||
},
|
||||
SeeCurrentProjectFiles: function(){
|
||||
this.SeeCurrentUserFiles(true);
|
||||
},
|
||||
CloseBalloons: function(){
|
||||
document.getElementById('debugBalloon').style.display= 'none';
|
||||
},
|
||||
AddTypeSave: function(newType){
|
||||
var type= document.getElementById('addTypeSel').value;
|
||||
Mind.Utils.SetLoad(true, 'Saving type');
|
||||
Mind.Project.CloseBalloons();
|
||||
$.ajax({
|
||||
url: Mind.Properties.path+'/add_to_dictionary.php',
|
||||
type: 'POST',
|
||||
data: 'newType='+ newType+'&type='+document.getElementById('addTypeSel').value,
|
||||
success: function(ret){
|
||||
Mind.Project.Run();
|
||||
},
|
||||
error : function(XMLHttpRequest, textStatus, errorThrown){
|
||||
Mind.AjaxHandler.Capture(XMLHttpRequest);
|
||||
}
|
||||
});
|
||||
},
|
||||
AddType: function(event, o, options){
|
||||
var balloon= document.getElementById('debugBalloon');
|
||||
var content= balloon.getElementsByTagName('DIV')[0];
|
||||
content.innerHTML = "<nobr>Choose the type this word represents<nobr/><br/>";
|
||||
var opts= "";
|
||||
for(var i=0, j=options.length; i<j; i++)
|
||||
{
|
||||
opts+= "<option value='"+options[i]+"'>"+options[i]+"</option>";
|
||||
}
|
||||
content.innerHTML+= "<div style='text-align:right;'><select id='addTypeSel'>"+opts+"</select> <img src='"+Mind.Properties.imagesPath+"/bt_play_over.gif' onclick='Mind.Project.AddTypeSave(\""+o+"\")' align='right'></div>";
|
||||
balloon.style.display= '';
|
||||
balloon.style.left= event.clientX - balloon.offsetWidth;
|
||||
balloon.style.top= event.clientY - balloon.offsetHeight;
|
||||
},
|
||||
AddVerbOnkeyUp: function (event, o){
|
||||
if(event.keyCode==13 && o.value.replace(/ /g, '') != '')
|
||||
{
|
||||
Mind.Project.CloseBalloons();
|
||||
Mind.Utils.SetLoad(true, 'Adding verb');
|
||||
$.ajax({
|
||||
url: Mind.Properties.path+'/add_to_dictionary.php',
|
||||
type: 'POST',
|
||||
data: 'newVerb='+ o.value+'&verbType='+document.getElementById('addVerbSel').value,
|
||||
success: function(ret){
|
||||
Mind.Project.Run();
|
||||
},
|
||||
error : function(XMLHttpRequest, textStatus, errorThrown){
|
||||
Mind.AjaxHandler.Capture(XMLHttpRequest);
|
||||
}
|
||||
});
|
||||
; }
|
||||
},
|
||||
AddVerb: function(event, o){
|
||||
var balloon= document.getElementById('debugBalloon');
|
||||
var content= balloon.getElementsByTagName('DIV')[0];
|
||||
content.innerHTML = "<nobr>Type the verb and press enter<nobr/><br/>";
|
||||
content.innerHTML+= "<select id='addVerbSel'><option value='p'>Possessive/Action</option><option value='m'>Mandatory</option><option value='px'>Possibility</option></select>";
|
||||
content.innerHTML+= "<input id='addVerbIpt' type='text' class='iptText' style='width:100%; font-size:12px;' onkeyup='Mind.Project.AddVerbOnkeyUp(event, this);'/>";
|
||||
balloon.style.display= '';
|
||||
balloon.style.left= event.clientX - balloon.offsetWidth;
|
||||
balloon.style.top= event.clientY - balloon.offsetHeight;
|
||||
document.getElementById('addVerbIpt').select();
|
||||
}
|
||||
};
|
||||
Arquivo binário não exibido.
|
Depois Largura: | Altura: | Tamanho: 3.6 KiB |
@@ -153,9 +153,8 @@ body{
|
||||
{
|
||||
padding:2px;
|
||||
padding-left:20px;
|
||||
background-color: #e0e0ff;
|
||||
background-color: #e9e9ff;
|
||||
border-bottom: solid 1px #66a;
|
||||
border-top: solid 1px #66a;
|
||||
font-size:11px;
|
||||
background-image:url(css_images/debug-tip.png);
|
||||
background-repeat:no-repeat;
|
||||
@@ -167,7 +166,6 @@ body{
|
||||
padding-left:20px;
|
||||
background-color: #ffffb0;
|
||||
border-bottom: solid 1px #773;
|
||||
border-top: solid 1px #773;
|
||||
font-size:11px;
|
||||
background-image:url(css_images/debug-alert.png);
|
||||
background-repeat:no-repeat;
|
||||
@@ -178,10 +176,42 @@ body{
|
||||
padding:2px;
|
||||
padding-left:20px;
|
||||
background-color: #ffe0e0;
|
||||
border-bottom: solid 1px #f66;
|
||||
border-top: solid 1px #f66;
|
||||
border-bottom: solid 1px #f66;
|
||||
font-size:11px;
|
||||
background-image:url(css_images/debug-fail.png);
|
||||
background-repeat:no-repeat;
|
||||
background-position:3px 2px;
|
||||
}
|
||||
|
||||
#debugBalloon .balloon
|
||||
{
|
||||
-moz-border-radius: 8px;
|
||||
-webkit-border-radius: 8px;
|
||||
border: solid 1px #74bada;
|
||||
padding:4px;
|
||||
background-color: #fff;
|
||||
}
|
||||
#debugBalloon .tip
|
||||
{
|
||||
background-image:url(css_images/tip-arrow.png);
|
||||
background-position:right;
|
||||
background-repeat:no-repeat;
|
||||
height: 20px;
|
||||
position:relative;
|
||||
top: -1px;
|
||||
}
|
||||
#debugBalloon>img
|
||||
{
|
||||
position:relative;
|
||||
top:-7px;
|
||||
left:4px;
|
||||
cursor:pointer;
|
||||
}
|
||||
#debugBalloon
|
||||
{
|
||||
position:absolute;
|
||||
left: 10px;
|
||||
top:500px;
|
||||
z-index:99999;
|
||||
}
|
||||
Arquivo binário não exibido.
|
Depois Largura: | Altura: | Tamanho: 220 B |
@@ -1,268 +1,268 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<mindLanguage>
|
||||
<verbs>
|
||||
<verb value='tem' />
|
||||
<verb value='teem' />
|
||||
<verb value='têm' />
|
||||
<verb value='possuem' />
|
||||
<verb value='terá' />
|
||||
<verb value='terão' />
|
||||
<verb value='terao' />
|
||||
<verb value='possui' />
|
||||
<verb value='possuem' />
|
||||
<verb value='conta com' />
|
||||
<verb value='contam com' />
|
||||
<verb value='faz' />
|
||||
<verb value='fazem' />
|
||||
<verb value='usa' />
|
||||
<verb value='usam' />
|
||||
<verb value='pertence a' />
|
||||
<verb value="tem"/>
|
||||
<verb value="teem"/>
|
||||
<verb value="têm"/>
|
||||
<verb value="possuem"/>
|
||||
<verb value="terá"/>
|
||||
<verb value="terão"/>
|
||||
<verb value="terao"/>
|
||||
<verb value="possui"/>
|
||||
<verb value="possuem"/>
|
||||
<verb value="conta com"/>
|
||||
<verb value="contam com"/>
|
||||
<verb value="faz"/>
|
||||
<verb value="fazem"/>
|
||||
<verb value="usa"/>
|
||||
<verb value="usam"/>
|
||||
<verb value="pertence a"/>
|
||||
</verbs>
|
||||
<belongs>
|
||||
<verb value='pode ser' />
|
||||
<verb value='pode ter' />
|
||||
<verb value='pode possuir' />
|
||||
<verb value='podem ser' />
|
||||
<verb value='podem possuir' />
|
||||
<verb value='podem ter' />
|
||||
<verb value='poderão ser' />
|
||||
<verb value='poderão possuir' />
|
||||
<verb value='poderão ter' />
|
||||
<verb value='poderá ser' />
|
||||
<verb value='poderá possuir' />
|
||||
<verb value='poderá ter' />
|
||||
<verb value='poderao ser' />
|
||||
<verb value='poderao ter' />
|
||||
<verb value='podera ser' />
|
||||
<verb value='podera ter' />
|
||||
<verb value="pode ser"/>
|
||||
<verb value="pode ter"/>
|
||||
<verb value="pode possuir"/>
|
||||
<verb value="podem ser"/>
|
||||
<verb value="podem possuir"/>
|
||||
<verb value="podem ter"/>
|
||||
<verb value="poderão ser"/>
|
||||
<verb value="poderão possuir"/>
|
||||
<verb value="poderão ter"/>
|
||||
<verb value="poderá ser"/>
|
||||
<verb value="poderá possuir"/>
|
||||
<verb value="poderá ter"/>
|
||||
<verb value="poderao ser"/>
|
||||
<verb value="poderao ter"/>
|
||||
<verb value="podera ser"/>
|
||||
<verb value="podera ter"/>
|
||||
</belongs>
|
||||
<obligation>
|
||||
<verb value='é' />
|
||||
<verb value='são' />
|
||||
<verb value='será' />
|
||||
<verb value='serão' />
|
||||
<verb value="é"/>
|
||||
<verb value="são"/>
|
||||
<verb value="será"/>
|
||||
<verb value="serão"/>
|
||||
</obligation>
|
||||
<types>
|
||||
<type value='char'>
|
||||
<substantive value='caractere' />
|
||||
<substantive value='char' />
|
||||
<substantive value='caracteres' />
|
||||
<substantive value='letras' />
|
||||
<substantive value='letra' />
|
||||
<substantive value='booleano' />
|
||||
<substantive value='boolean' />
|
||||
<substantive value='bool' />
|
||||
<substantive value='alpha' />
|
||||
<type value="char">
|
||||
<substantive value="caractere"/>
|
||||
<substantive value="char"/>
|
||||
<substantive value="caracteres"/>
|
||||
<substantive value="letras"/>
|
||||
<substantive value="letra"/>
|
||||
<substantive value="booleano"/>
|
||||
<substantive value="boolean"/>
|
||||
<substantive value="bool"/>
|
||||
<substantive value="alpha"/>
|
||||
</type>
|
||||
<type value='varchar'>
|
||||
<substantive value='varchar' />
|
||||
<substantive value='caractere variante' />
|
||||
<substantive value='caracteres variantes' />
|
||||
<substantive value='campo' />
|
||||
<substantive value='input' />
|
||||
<substantive value='entrada' />
|
||||
<substantive value='string' />
|
||||
<substantive value='descrição' />
|
||||
<substantive value='descricao' />
|
||||
<type value="varchar">
|
||||
<substantive value="varchar"/>
|
||||
<substantive value="caractere variante"/>
|
||||
<substantive value="caracteres variantes"/>
|
||||
<substantive value="campo"/>
|
||||
<substantive value="input"/>
|
||||
<substantive value="entrada"/>
|
||||
<substantive value="string"/>
|
||||
<substantive value="descrição"/>
|
||||
<substantive value="descricao"/>
|
||||
</type>
|
||||
<type value='text'>
|
||||
<substantive value='text' />
|
||||
<substantive value='texto livre' />
|
||||
<substantive value='texto' />
|
||||
<substantive value='conteúdo' />
|
||||
<substantive value='conteudo' />
|
||||
<substantive value='textarea' />
|
||||
<type value="text">
|
||||
<substantive value="text"/>
|
||||
<substantive value="texto livre"/>
|
||||
<substantive value="texto"/>
|
||||
<substantive value="conteúdo"/>
|
||||
<substantive value="conteudo"/>
|
||||
<substantive value="textarea"/>
|
||||
</type>
|
||||
<type value='password'>
|
||||
<substantive value='password' />
|
||||
<substantive value='pwd' />
|
||||
<substantive value='senha' />
|
||||
<substantive value='chave secreta' />
|
||||
<substantive value='chave' />
|
||||
<type value="password">
|
||||
<substantive value="password"/>
|
||||
<substantive value="pwd"/>
|
||||
<substantive value="senha"/>
|
||||
<substantive value="chave secreta"/>
|
||||
<substantive value="chave"/>
|
||||
</type>
|
||||
<type value='file'>
|
||||
<substantive value='file' />
|
||||
<substantive value='arquivo' />
|
||||
<substantive value='blob' />
|
||||
<substantive value='bytea' />
|
||||
<substantive value='binário' />
|
||||
<substantive value='binario' />
|
||||
<substantive value='lo' />
|
||||
<substantive value='imagem' />
|
||||
<substantive value='gráfico' />
|
||||
<substantive value='grafico' />
|
||||
<substantive value='doc' />
|
||||
<substantive value='pdf' />
|
||||
<substantive value='spreedsheet' />
|
||||
<type value="file">
|
||||
<substantive value="file"/>
|
||||
<substantive value="arquivo"/>
|
||||
<substantive value="blob"/>
|
||||
<substantive value="bytea"/>
|
||||
<substantive value="binário"/>
|
||||
<substantive value="binario"/>
|
||||
<substantive value="lo"/>
|
||||
<substantive value="imagem"/>
|
||||
<substantive value="gráfico"/>
|
||||
<substantive value="grafico"/>
|
||||
<substantive value="doc"/>
|
||||
<substantive value="pdf"/>
|
||||
<substantive value="spreedsheet"/>
|
||||
</type>
|
||||
<type value='smallint'>
|
||||
<substantive value='smallint' />
|
||||
<substantive value='tiny int' />
|
||||
<type value="smallint">
|
||||
<substantive value="smallint"/>
|
||||
<substantive value="tiny int"/>
|
||||
</type>
|
||||
<type value='int'>
|
||||
<substantive value='int' />
|
||||
<substantive value='inteiro' />
|
||||
<substantive value='integer' />
|
||||
<substantive value='numérico' />
|
||||
<substantive value='numerico' />
|
||||
<substantive value='numero' />
|
||||
<substantive value='número' />
|
||||
<type value="int">
|
||||
<substantive value="int"/>
|
||||
<substantive value="inteiro"/>
|
||||
<substantive value="integer"/>
|
||||
<substantive value="numérico"/>
|
||||
<substantive value="numerico"/>
|
||||
<substantive value="numero"/>
|
||||
<substantive value="número"/>
|
||||
</type>
|
||||
<type value='bigint'>
|
||||
<substantive value='bigint' />
|
||||
<type value="bigint">
|
||||
<substantive value="bigint"/>
|
||||
</type>
|
||||
<type value='real'>
|
||||
<substantive value='float' />
|
||||
<substantive value='real' />
|
||||
<substantive value='floating' />
|
||||
<substantive value='valor' />
|
||||
<substantive value='dinheiro' />
|
||||
<substantive value='percento' />
|
||||
<substantive value='percentagem' />
|
||||
<substantive value='fração' />
|
||||
<substantive value='fracao' />
|
||||
<type value="real">
|
||||
<substantive value="float"/>
|
||||
<substantive value="real"/>
|
||||
<substantive value="floating"/>
|
||||
<substantive value="valor"/>
|
||||
<substantive value="dinheiro"/>
|
||||
<substantive value="percento"/>
|
||||
<substantive value="percentagem"/>
|
||||
<substantive value="fração"/>
|
||||
<substantive value="fracao"/>
|
||||
</type>
|
||||
<type value='time'>
|
||||
<substantive value='date' />
|
||||
<substantive value='data\/hora' />
|
||||
<substantive value='data e hora' />
|
||||
<substantive value='data hora' />
|
||||
<substantive value='datahora' />
|
||||
<substantive value='data' />
|
||||
<substantive value='tempo' />
|
||||
<substantive value='horário' />
|
||||
<substantive value='horario' />
|
||||
<substantive value='timestamp' />
|
||||
<substantive value='calendário' />
|
||||
<substantive value='calendario' />
|
||||
<type value="time">
|
||||
<substantive value="date"/>
|
||||
<substantive value="data\/hora"/>
|
||||
<substantive value="data e hora"/>
|
||||
<substantive value="data hora"/>
|
||||
<substantive value="datahora"/>
|
||||
<substantive value="data"/>
|
||||
<substantive value="tempo"/>
|
||||
<substantive value="horário"/>
|
||||
<substantive value="horario"/>
|
||||
<substantive value="timestamp"/>
|
||||
<substantive value="calendário"/>
|
||||
<substantive value="calendario"/>
|
||||
</type>
|
||||
</types>
|
||||
<required>
|
||||
<adjective value='obrigatório' />
|
||||
<adjective value='obrigatorio' />
|
||||
<adjective value='não nulo' />
|
||||
<adjective value='nao nulo' />
|
||||
<adjective value='not null' />
|
||||
<adjective value='requerido' />
|
||||
<adjective value='necessário' />
|
||||
<adjective value='necessario' />
|
||||
<adjective value='required' />
|
||||
<adjective value='needed' />
|
||||
<adjective value="obrigatório"/>
|
||||
<adjective value="obrigatorio"/>
|
||||
<adjective value="não nulo"/>
|
||||
<adjective value="nao nulo"/>
|
||||
<adjective value="not null"/>
|
||||
<adjective value="requerido"/>
|
||||
<adjective value="necessário"/>
|
||||
<adjective value="necessario"/>
|
||||
<adjective value="required"/>
|
||||
<adjective value="needed"/>
|
||||
</required>
|
||||
<unique>
|
||||
<adjective value='unique' />
|
||||
<adjective value='único' />
|
||||
<adjective value='unico' />
|
||||
<adjective value="unique"/>
|
||||
<adjective value="único"/>
|
||||
<adjective value="unico"/>
|
||||
</unique>
|
||||
<especialchars>
|
||||
<char value='á' />
|
||||
<char value='é' />
|
||||
<char value='í' />
|
||||
<char value='ó' />
|
||||
<char value='ú' />
|
||||
<char value='à' />
|
||||
<char value='è' />
|
||||
<char value='ì' />
|
||||
<char value='ò' />
|
||||
<char value='ù' />
|
||||
<char value='ã' />
|
||||
<char value='õ' />
|
||||
<char value='ü' />
|
||||
<char value='ä' />
|
||||
<char value='ë' />
|
||||
<char value='ï' />
|
||||
<char value='ö' />
|
||||
<char value='ü' />
|
||||
<char value='â' />
|
||||
<char value='ê' />
|
||||
<char value='î' />
|
||||
<char value='ô' />
|
||||
<char value='û' />
|
||||
<char value='ç' />
|
||||
<char value=' ' />
|
||||
<char value="á"/>
|
||||
<char value="é"/>
|
||||
<char value="í"/>
|
||||
<char value="ó"/>
|
||||
<char value="ú"/>
|
||||
<char value="à"/>
|
||||
<char value="è"/>
|
||||
<char value="ì"/>
|
||||
<char value="ò"/>
|
||||
<char value="ù"/>
|
||||
<char value="ã"/>
|
||||
<char value="õ"/>
|
||||
<char value="ü"/>
|
||||
<char value="ä"/>
|
||||
<char value="ë"/>
|
||||
<char value="ï"/>
|
||||
<char value="ö"/>
|
||||
<char value="ü"/>
|
||||
<char value="â"/>
|
||||
<char value="ê"/>
|
||||
<char value="î"/>
|
||||
<char value="ô"/>
|
||||
<char value="û"/>
|
||||
<char value="ç"/>
|
||||
<char value=" "/>
|
||||
</especialchars>
|
||||
<fixedchars>
|
||||
<char value='a' />
|
||||
<char value='e' />
|
||||
<char value='i' />
|
||||
<char value='o' />
|
||||
<char value='u' />
|
||||
<char value='a' />
|
||||
<char value='e' />
|
||||
<char value='i' />
|
||||
<char value='o' />
|
||||
<char value='u' />
|
||||
<char value='a' />
|
||||
<char value='o' />
|
||||
<char value='u' />
|
||||
<char value='a' />
|
||||
<char value='e' />
|
||||
<char value='i' />
|
||||
<char value='o' />
|
||||
<char value='u' />
|
||||
<char value='a' />
|
||||
<char value='e' />
|
||||
<char value='i' />
|
||||
<char value='o' />
|
||||
<char value='u' />
|
||||
<char value='c' />
|
||||
<char value='_' />
|
||||
<char value="a"/>
|
||||
<char value="e"/>
|
||||
<char value="i"/>
|
||||
<char value="o"/>
|
||||
<char value="u"/>
|
||||
<char value="a"/>
|
||||
<char value="e"/>
|
||||
<char value="i"/>
|
||||
<char value="o"/>
|
||||
<char value="u"/>
|
||||
<char value="a"/>
|
||||
<char value="o"/>
|
||||
<char value="u"/>
|
||||
<char value="a"/>
|
||||
<char value="e"/>
|
||||
<char value="i"/>
|
||||
<char value="o"/>
|
||||
<char value="u"/>
|
||||
<char value="a"/>
|
||||
<char value="e"/>
|
||||
<char value="i"/>
|
||||
<char value="o"/>
|
||||
<char value="u"/>
|
||||
<char value="c"/>
|
||||
<char value="_"/>
|
||||
</fixedchars>
|
||||
<quantifiersId>
|
||||
<world value='ou então' />
|
||||
<world value='ou entao' />
|
||||
<world value='ou' />
|
||||
<world value='até' />
|
||||
<world value='ate' />
|
||||
<world value="ou então"/>
|
||||
<world value="ou entao"/>
|
||||
<world value="ou"/>
|
||||
<world value="até"/>
|
||||
<world value="ate"/>
|
||||
</quantifiersId>
|
||||
<quantifiers>
|
||||
<min>
|
||||
<min>
|
||||
<quantifier value='0' />
|
||||
<quantifier value='zero' />
|
||||
<quantifier value='nenhum' />
|
||||
<quantifier value='nenhuma' />
|
||||
<quantifier value='ou não' />
|
||||
<quantifier value='ou nao' />
|
||||
<quantifier value="0"/>
|
||||
<quantifier value="zero"/>
|
||||
<quantifier value="nenhum"/>
|
||||
<quantifier value="nenhuma"/>
|
||||
<quantifier value="ou não"/>
|
||||
<quantifier value="ou nao"/>
|
||||
</min>
|
||||
<max>
|
||||
<quantifier value='1' />
|
||||
<quantifier value='um' />
|
||||
<quantifier value='uma' />
|
||||
<quantifier value="1"/>
|
||||
<quantifier value="um"/>
|
||||
<quantifier value="uma"/>
|
||||
</max>
|
||||
</min>
|
||||
<max>
|
||||
<min>
|
||||
<quantifier value='uma' />
|
||||
<quantifier value='1' />
|
||||
<quantifier value='um único' />
|
||||
<quantifier value='um unico' />
|
||||
<quantifier value='uma única' />
|
||||
<quantifier value='uma unica' />
|
||||
<quantifier value='um' />
|
||||
<quantifier value="uma"/>
|
||||
<quantifier value="1"/>
|
||||
<quantifier value="um único"/>
|
||||
<quantifier value="um unico"/>
|
||||
<quantifier value="uma única"/>
|
||||
<quantifier value="uma unica"/>
|
||||
<quantifier value="um"/>
|
||||
</min>
|
||||
<max>
|
||||
<quantifier value='n' />
|
||||
<quantifier value='m' />
|
||||
<quantifier value='muitos' />
|
||||
<quantifier value='muitas' />
|
||||
<quantifier value='muito' />
|
||||
<quantifier value='muita' />
|
||||
<quantifier value='vários' />
|
||||
<quantifier value='várias' />
|
||||
<quantifier value='varios' />
|
||||
<quantifier value='varias' />
|
||||
<quantifier value='diversos' />
|
||||
<quantifier value='diversas' />
|
||||
<quantifier value='infinitos' />
|
||||
<quantifier value='infinitas' />
|
||||
<quantifier value='alguns' />
|
||||
<quantifier value='algumas' />
|
||||
<quantifier value='uns' />
|
||||
<quantifier value='umas' />
|
||||
<quantifier value='mais' />
|
||||
<quantifier value='infinitamente' />
|
||||
<quantifier value="n"/>
|
||||
<quantifier value="m"/>
|
||||
<quantifier value="muitos"/>
|
||||
<quantifier value="muitas"/>
|
||||
<quantifier value="muito"/>
|
||||
<quantifier value="muita"/>
|
||||
<quantifier value="vários"/>
|
||||
<quantifier value="várias"/>
|
||||
<quantifier value="varios"/>
|
||||
<quantifier value="varias"/>
|
||||
<quantifier value="diversos"/>
|
||||
<quantifier value="diversas"/>
|
||||
<quantifier value="infinitos"/>
|
||||
<quantifier value="infinitas"/>
|
||||
<quantifier value="alguns"/>
|
||||
<quantifier value="algumas"/>
|
||||
<quantifier value="uns"/>
|
||||
<quantifier value="umas"/>
|
||||
<quantifier value="mais"/>
|
||||
<quantifier value="infinitamente"/>
|
||||
</max>
|
||||
</max>
|
||||
</quantifiers>
|
||||
</mindLanguage>
|
||||
</mindLanguage>
|
||||
|
||||
Referência em uma Nova Issue
Bloquear um usuário