Ik ben bezig met het maken van een simpele database server (o.a., er zitten nog wat app. specifieke functies in) die gebruik gaat maken van requests/queries en een database formaat in XML.
Dingen als XQuery wil ik iig _niet_ (zoiezo een overkill), het moet gewoon met plain xml kunnen.
Ik zit nog in de ontwerp-fase van het protocol/formaat dus suggesties zijn van harte welkom.
Het database formaat, bv.
Das een optie, maar het kan natuurlijk ook wat ongedwongener:
Oftwel, met inline waardes. Verder kan dit zelfs ook nog:
Dit is uiteraard niet helemaal netjes XML
Dan de query's:
De select's moeten iig per query gedaan worden, m.a.w. dus niet van tevoren.
Een ideetje:
Het data element heeft dus een argument "location" die of "embed" is (als text of CDATA) of "extern" en dus ná het eigenlijke stuk XML komt (en dus niet wordt gehinderd door escapes).
Waarvoor gaat het gebruikt worden dan
?
Primair is het database gedeelte van de server voor een leerling-volg systeem van een educatief appje. Dit zijn dus mainly uitgebreide stats/scores en nog wat user-settings.
Verder kàn ik natuurlijk ook gewoon geen database/SQL achtig systeem gebruiken maar het gewoon houden bij XML DOM, maar dan server-side. De query mogelijkheden zijn dan echter wel wat beperkter.
Iemand zin om mee te denken?
Dingen als XQuery wil ik iig _niet_ (zoiezo een overkill), het moet gewoon met plain xml kunnen.
Ik zit nog in de ontwerp-fase van het protocol/formaat dus suggesties zijn van harte welkom.
Het database formaat, bv.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| <dbroot name="databeestje">
<tableobj cname="een tabel">
<field name="id" type="int" option="auto_increment"/>
<field name="bla"/>
<field name="een ander veld/">
</tableobj>
<table class="een tabel">
<id/>
<bla>Een waarde</bla>
<een ander veld>Een andere waarde</bla>
</table>
</dbroot> |
Das een optie, maar het kan natuurlijk ook wat ongedwongener:
code:
1
2
3
4
5
6
7
| <dbroot name="een databeestje">
<table name="een tabel>
<field name="id' option="auto_increment"></field>
<field name="bla">een waarde</field>
<field name="een ander veld>Een andere waarde</field>
</table>
</dbroot> |
Oftwel, met inline waardes. Verder kan dit zelfs ook nog:
code:
1
2
3
4
5
6
7
| <een databeestje>
<een table>
<id option=auto_increment/>
<bla>een waarde</bla>
<een ander veld>een andere waarde</een ander veld>
</een table>
</een databeestje> |
Dit is uiteraard niet helemaal netjes XML
Dan de query's:
De select's moeten iig per query gedaan worden, m.a.w. dus niet van tevoren.
Een ideetje:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| <c command="login">
<login user="barry" pass="123" />
</c>
<c command="setpw">
<data location="embed">myNewPass</data>
</c>
<c command="fetch">
<select ="een tabel" />
<order type="ASC" sort="alpha" />
<where field="id" value="8"/>
<option option="limit" value="1"/>
</c>
<c command="insert">
<into node="myElement" />
<data location="extern" length="412" type="text/xml" />
<option option="update" value="false" />
</c> |
Het data element heeft dus een argument "location" die of "embed" is (als text of CDATA) of "extern" en dus ná het eigenlijke stuk XML komt (en dus niet wordt gehinderd door escapes).
Waarvoor gaat het gebruikt worden dan
Primair is het database gedeelte van de server voor een leerling-volg systeem van een educatief appje. Dit zijn dus mainly uitgebreide stats/scores en nog wat user-settings.
Verder kàn ik natuurlijk ook gewoon geen database/SQL achtig systeem gebruiken maar het gewoon houden bij XML DOM, maar dan server-side. De query mogelijkheden zijn dan echter wel wat beperkter.
Iemand zin om mee te denken?
[ Voor 18% gewijzigd door phaas op 13-12-2004 20:22 ]