genxs - Online sa Cloud

Ito ang command genxs na maaaring patakbuhin sa OnWorks free hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator

PROGRAMA:

NAME


genxs - Xml Serializer Generator ng Mono

SINOPSIS


mga genx configurationFile [destinationFolder]

DESCRIPTION


mga genx ay isang tool para sa pagbuo ng mga custom na XML serialization na manunulat at mambabasa para sa mga klase.

configurationFile ay configuration file na tumutukoy sa ilang impormasyon, tulad ng
klase kung saan bubuo ng mambabasa at manunulat, ang pangalan at namespace ng mga klase
upang makabuo, at isang koleksyon ng mga kawit na ilalapat. Sa pamamagitan ng paggamit ng mga kawit posible na
i-customize ang pag-uugali ng serializer nang hindi kailangang baguhin ang nabuong file, kaya
maaari mong ligtas na muling buuin ito kung binago ang source class.

destinationFolder tumutukoy sa folder kung saan bubuo ang mga file.

TANDAAN: Gumagana lang ang tool na ito sa Mono runtime, dahil gumagamit ito ng ilang panloob na klase hindi
magagamit sa iba pang mga runtime.

Configuration FILE FORMAT


Ang configuration file ay isang xml na dokumento batay sa sumusunod na grammar ("?" ibig sabihin
opsyonal, "*" 0 o higit pa):


*
pangalan ?
pangalan ?
pangalan ?
pangalan ?
?
*

?
*




Ang isang configuration file ay maaaring magkaroon ng maraming elemento ng "serializer", na ang bawat isa ay tumutukoy sa
klase kung saan bubuo ng serializer kasama ang ilang mga pagpipilian sa henerasyon. Ang
ang source class ay tinukoy sa mga sumusunod na katangian:

* klase : pangalan ng klase (kabilang ang namespace).

* pagpupulong : pangalan ng pagpupulong. Maaari itong isama ang kumpletong landas.

Ang mga opsyon sa pagbuo ay tinukoy sa mga elemento ng bata:

* mambabasa : pangalan ng klase ng mambabasa.

* walangReader : kung "totoo", hindi ito bumubuo ng klase ng mambabasa.

* manunulat : pangalan ng klase ng manunulat.

* baseSerializer : pangalan ng base xml serializer class. Ang item na ito ay 2.0 lamang.

* pagsasakatuparan : pangalan ng klase ng pagpapatupad ng serializer. Ang item na ito ay 2.0 lamang.

* noWriter : kung "totoo", hindi ito bumubuo ng klase ng manunulat.

* namespace : namespace ng mga klase ng mambabasa at manunulat.

* generateAsInternal : kung "totoo", ito ay bumubuo ng mga klase bilang panloob.

* outFileName : pangalan ng nabuong file.

* readerHooks : isang listahan ng mga kawit na ilalapat sa mambabasa.

* writerHooks : isang listahan ng mga kawit na ilalapat sa manunulat.

PAGTUKOY PAKIKITA


Gamit ang mga kawit maaari mong i-customize ang pag-uugali ng mga mambabasa at manunulat. Isang detalye ng hook
sumusunod sa gramatika na ito:


?
pangalan ?
pangalan *
pangalan ?

source code ?
source code ?
source code ?


Tinutukoy ng attribute na "type" ang konteksto kung saan inilapat ang hook. Maaari itong isa sa
ang mga sumusunod:

* mga katangian : hook ay inilapat kung saan ang mga katangian ay serialized/deserialized.

* mga elemento : hook ay inilapat kung saan ang mga elemento ay serialized/deserialized.

* hindi kilalang katangian : inilapat ang hook kung saan pinoproseso ang mga hindi kilalang katangian.

* unknownElement : inilapat ang hook kung saan pinoproseso ang mga hindi kilalang elemento.

* miyembro : hook ay inilapat kung saan ang isang miyembro ay serialized/deserialized.

* uri : hook ay inilapat para sa buong uri.

Tinutukoy ng elementong "piliin" ang mga klase at miyembro kung saan kailangang idagdag ang hook.
Maaari itong maglaman ng mga sumusunod na elemento:

* typeName : pipiliin ang klase na may ganoong pangalan (dapat may kasamang namespace)

* uriKatangian : pipiliin ang lahat ng klase na mayroong katangiang iyon
(tukuyin ang buong pangalan ng klase ng katangian, kabilang ang namespace). Ilang mga pangalan ng katangian
maaaring tukuyin.

* typeMiyembro : pangalan ng miyembro ng klase kung saan dapat idagdag ang hook.

Maaaring tukuyin ang hook source code gamit ang alinman sa mga sumusunod na elemento:

* palitan : ang ibinigay na source code ay papalitan ang lahat ng serialization/deserialization
mga operasyon sa konteksto ng kawit.

* ipasokBago : idadagdag ang source code bago ang konteksto ng hook.

* insertAfter : ang source code ay idaragdag pagkatapos ng konteksto ng hook.

Kapag nagsusulat ng code para sa isang kawit maaari kang gumamit ng ilang mga espesyal na variable na tinukoy
sa panahon ng proseso ng pagbuo ng code. Ang mga variable ay ang mga sumusunod:

* $TYPE: pangalan ng klase na nabuo, nang walang namespace.

* $FULLTYPE: buong pangalan ng klase na nabuo, kasama ang namespace.

* $OBJECT: ang bagay na ginagawang serial o deserialized. Kapag gumagamit ng replace reader
hook ng uri ng "uri", ang hook code ay dapat magtalaga ng deserialized object dito
variable

* -I $ELEMENT: pangalan ng elemento ng object na sine-serye/deserialized.

* $NAMESPACE: namespace ng elemento ng object na ini-serialize/deserialized.

* $MEMBER: pangalan ng miyembrong ini-serialize/deseryalize. May bisa lamang sa "miyembro"
konteksto.

Kawitan HALIMBAWA


Ang sumusunod na halimbawa ay nagdaragdag ng isang tawag sa isang paraan ng Pag-validate pagkatapos ng deserialization ng anuman
bagay:



System.Xml.Schema.XmlSchema.Validate$TYPE ($OBJECT);



Tinutukoy ng halimbawang ito ang code na gagamitin upang i-deserialize ang klase ng XmlSchema:



System.Xml.Schema.XmlSchema


$OBJECT = System.Xml.Schema.XmlSchema.Read (Reader, null);



Tinutukoy ng isang iyon ang code na gagamitin upang basahin ang mga instance ng XmlSchema:



System.Xml.Schema.XmlSchema

$OBJECT.Write (Writer);


Gamit ang dalawang hook na ito, ang serializer ay magpi-print ng ilang impormasyon kapag nagse-serialize sa klase
"MyClass":



MyNamespace.MyClass

Console.WriteLine ("Serializing MyClass");
Console.WriteLine ("MyClass serialized");



MyNamespace.MyClass


Console.WriteLine ("Serialized member $MEMBER");



Nagsusulat ang hook na ito ng karagdagang elemento para sa lahat ng uri na may custom na attribute
"MyAttribute":



MyNamespace.MyAttribute


Writer.WriteStartElement ("privateData");
Writer.WriteString ($OBJECT.PrivateData);
Writer.WriteEndElement ();



Configuration FILE Halimbawa


Ito ang configuration file na ginamit upang bumuo ng serializer para sa ServiceDescription:



ServiceDescriptionReaderBase
ServiceDescriptionWriterBase
System.Web.Services.Description
ServiceDescriptionSerializerBase.cs



System.Web.Services.Configuration.XmlFormatExtensionPointAttribute

ServiceDescription.ReadExtension (Reader, $OBJECT);



System.Xml.Schema.XmlSchema

$OBJECT = System.Xml.Schema.XmlSchema.Read (Reader, null);





System.Web.Services.Configuration.XmlFormatExtensionPointAttribute

ServiceDescription.WriteExtensions (Writer, $OBJECT);



System.Xml.Schema.XmlSchema

$OBJECT.Write (Writer);





MGA AUTHORS


Lluis Sanchez Gual (lluis@ximian.com)

Gumamit ng mga genx online gamit ang mga serbisyo ng onworks.net



Pinakabagong Linux at Windows online na mga programa