Jump to content
php.lv forumi

neatļautās kombinācijas - atrisinājums - parseris?


jam

Recommended Posts

Mana problēma bija - kā aizliegt dažādu elementu kombinācijas ar citu elementu konkrētām vērtībām, t.i. kā to aprakstīt ar scheme.

 

Vieglāk to iedomāties, ja iztēlojas Excel tabulu, kurai ir kolonnas un rindas. A1, A2....An ir rindas un kolonna_1 un kolonna_2 uttt ir kolonnas.

 

Ja to pārnes uz xml instances failu, tad izskatītos šādi:

 

<report>
<rinda>
 <rinda_id>A1</rinda_id>
 <kolonna_1>12345</kolonna_1>
 <kolonna_2>12345</kolonna_2>
 <kolonna_3>12345</kolonna_3>
</rinda>
<rinda>
 <rinda_id>A2</rinda_id>
 <kolonna_1>12345</kolonna_1>
 <kolonna_2>12345</kolonna_2>
 <kolonna_3>12345</kolonna_3>
</rinda>
<rinda>
 <rinda_id>A3</rinda_id>
 <kolonna_1>12345</kolonna_1>
 <kolonna_2>12345</kolonna_2>
 <kolonna_3>12345</kolonna_3>
</rinda>
<report>

 

Ja vajag aizliegt vērtību ierakstīt elementam <kolonna_1> ja elementa <rinda_id> vērtība ir A1.

Tam uzrakstīju kaut ko šādu:

 

<?xml version="1.0" encoding="UTF-8"?>
<xs:denycombinations>

   <xs:deny name="kolonna_1">
		   <xs:element name="rinda_id">
				   <xs:element value="A1"/>
		   </xs:element>
   </xs:deny>

   <xs:deny name="kolonna_2">
		   <xs:element name="rinda_id">
				   <xs:element value="A1"/>
				   <xs:element value="A3"/>
				   <xs:element value="A5"/>
		   </xs:element>
   </xs:deny>
</xs:denycombinations>
</xs:schema>

 

Protams, xml validatori to nesaprot.

 

Filosofisks dabas jautājums: Vai šādai pārbaudei rakstīt jaunu parseri tieši priekš denycombinations?

Ieteikt w3 konsorcijam uzlabot funkcionalitāti? Esmu mazliet izlaidis XML pamatus par šādiem jautājumiem.

Edited by jam
Link to comment
Share on other sites

Nemāk, bet es viņu gribu ekstendēt/paplašināt

 

Gribu "klientam" iedot schema, lai varētu viņs pie sevis nočekot to xml instances failu uz:

datu tipu pareizību, vērtību setus + lai neatļauti kombinējis elemntus/vērtības.

Link to comment
Share on other sites

Nemāk, bet es viņu gribu ekstendēt/paplašināt

 

Gribu "klientam" iedot schema, lai varētu viņs pie sevis nočekot to xml instances failu uz:

datu tipu pareizību, vērtību setus + lai neatļauti kombinējis elemntus/vērtības.

 

ņu man liekas, ka tieši tam - validēt datus (cik sapratu, to gribi panākt) - schema nemaz nav paredzēta :)

Link to comment
Share on other sites

Es pat īsti nezinu vai tas būtu datu validēšanas jautājums. Datu validēšana ir nosacīti bāzēta uz business rules.

 

tipa a+b jābūt c vai lielākam var x . Tā ir validēšana.

 

Ko darīt šādā gadījumā viedie prāti, ja:

1) Es nodrošinu ar online xml faila pārbaudi.

2) Šīs neatļautās kombinācijas taisītu neIT cilvēki, kuriem būtu aplikācija, kura veidotu manis n orādīto aizliegto kombināciju schemu.

3) Mums ir ļoti daudz pārskatu excelī, kurus vajag uz xml pārnest.

 

Ir jābūt kādam universālam risinājumam/vai arī man tas ir jātaisa pašam.

 

Priekš tiem, kuri datus ievadītu onlainā webiskā interfeisā, es varētu ar XSLT definēt, kuras nav aizpildāmas kombinācijas.

 

Vai latvijā ir kāda spēcīga kompānija, kas var konsultēt šādos, ar xml jautājumos? Nevis vienkārši pateikt, ka protam ar php nopārsēt xml failu, bet reāli analizēt un saprast drēbi. Protams, ne jau par velti.

 

j

Link to comment
Share on other sites

tur jau tā lieta, cilvēks atkal grib kombainu, jeb "zeltu no s***" izspiest.

Datu validēšanu pret struktūru validē tavs_kods, nevis kaut kāda shēma/etc.

Šaubos, ka kāds veiks kādas izmaiņas tehnolģijās. Tas nevienam nav vajadzīgs (vismaz tik bieži)

Link to comment
Share on other sites

Tad jau arī visu var validēt pret mans_kods un shema vispar nav vajadzīga, vai ne?

 

mans_kods taču var būt arī uz āru padodams, lai visiem ir skaidrs un redzams, ko ar ko nedrīgst reportēt.

 

Atveriet no šejienes excel failu. http://yy.lv/download.php?f=13193

 

To tabulu var noreportēt ar xml, bet aizliegt vajag pelēkās šūnas/kombinācijas.

 

Tādas un vēl lielākas tabulas ir ap 150-200.

Link to comment
Share on other sites

×
×
  • Create New...