zu duplizieren Ich arbeite in C#, Visual Studio 2015, Targeting .NET 4.5. Wir haben bestehende Systeme (einige in Java geschrieben, einige Legacy-Code in C++, etc.), die bereits XML in bestimmten Formaten austauschen. Ich habe XMLSerializer, DataContractSerializer untersucht und kurz die ISerializable-Schnittstelle betrachtet. Obwohl ich denke, dass ich die Antwort bereits kenne (ISerializable), dachte ich, ich würde sehen, ob jemand clevere Ideen oder Lösungen für das Duplizieren des XML-Formats hat, das wir brauchen, ohne alles selbst zu programmieren. Wir haben vier verschiedene XML-Nachrichten zu duplizieren, hier ist nur einer von ihnen:Einfachste Möglichkeit, ein bereits bestehendes XML-Format in C#
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE message SYSTEM "work_request_20.dtd">
<message message_id="1005" message_dt="01/21/2008 09:50:23.221 AM" message_type="Work_Request" message_sub_type="New" message_dtd_version_number="2.0">
<header>
<from_application_id>3367e115-c873-4ac9-a1dd-7e45231dc3d5</from_application_id>
<to_application_id>35e0cca2-e423-4ffe-ba07-7d056775c228</to_application_id>
</header>
<body>
<work_request requisition_number="REQ44">
<client client_id="44">
<first_name>Barak</first_name>
<last_name>Obama</last_name>
</client>
<patient patient_id="4444" patient_species="CANINE" patient_gender="MALE_INTACT">
<patient_name>Bo</patient_name>
<patient_breed>Portuguese Water Dog</patient_breed>
<patient_birth_dt>04/04/2004</patient_birth_dt>
<patient_weight patient_weight_uom="lbs">
<weight>44.4</weight>
</patient_weight>
</patient>
<doctor>
<first_name>Surgeon</first_name>
<last_name>General</last_name>
</doctor>
<service_add>
<service_cd>ALB</service_cd>
<service_cd>GLU</service_cd>
<service_cd>BUN</service_cd>
</service_add>
</work_request>
</body>
</message>
Wenn jemand eine brillanten Verknüpfungen auf die offensichtliche Lösung im Vergleich vorschlagen kann, würden wir immer dankbar sein.
Vielen Dank im Voraus.
Wenn work_request_20.dtd real ist und nicht nur Cargo-Kultivierung, können Sie ein xsd aus dem dtd und dann Klassen aus dem xsd generieren. – Will
'ISerializable' ist nicht die Antwort. 'IXmlSerializable' könnte eine Antwort sein, wenn auch eine, die maximale Arbeit erfordert. Haben Sie versucht, C# -Klassen mit [xsd.exe] (https://msdn.microsoft.com/en-us/library/x6c1kb0s.aspx) oder durch Hochladen auf http://xmltocsharp.azurewebsites.net/ und anschließendes Serialisieren zu erstellen mit 'XmlSerializer'? Das wäre viel einfacher. – dbc
Übrigens fehlt in Ihrem XML ein schließendes Tag ''. Darf ich annehmen, dass das ein Tippfehler ist? – dbc