![]() |
Datenbank: Firebird • Version: 2.0 RC4 • Zugriff über: Firebird Net Provider 2.0 RC1
XSD-Schema für typisierte Datasets ergänzen
Hallo,
mangels nutzbarer Wizards in #D oder VC#E (siehe meine Frage unter [dp]#D und VC#E Fehlende Provider registrieren[/dp]) erzeuge ich mir meine typ.Datasets halbautomatisch:
Datentyp String: VARCHAR von Firebird, xsd:string und String von Net sind kompatibel. Wie kann ich in der xsd-Schemadatei festlegen, dass ein String bei einem Feld eine maximale Feldlänge hat? Wird dies vom typisierten Dataset und den DataAdaptern berücksichtigt, oder muss ich es - z.B. durch Delegates - selbst steuern? Datentyp Zeitdauer: TIME von Firebird kann dafür verwendet werden, aber DateTime von Net entspricht dem nicht, weil immer ein Datum hinzugefügt wird; xsd:duration kann mangels Kompatibilität nicht umgesetzt werden. Wie kann ich das lösen? (Bisher nutze ich dafür Strings der Form "12'34" oder "1h 23", was konkret genügt; aber als Dauerlösung ist das unbefriedigend.) Typisierter DataAdapter: Irgendwo habe ich gelesen, dass dies ebenfalls benötigt wird, um den Datenaustausch zwischen Programm und Datenbank sauber und 'automatisch' zu steuern. In der NET-Doku finde ich aber das Stichwort 'typisiert' nur für DataSets, aber nicht für DataAdapter. Kann mir jemand das Vorgehen erläutern? (Bei meinem bisherigen Vorgehen habe ich keine Probleme mit typ. Dataset und einem 'normal erzeugten' DataAdapter.) Danke für Erläuterungen und Tipps! Jürgen PS. Alles läuft unter NET 2.0. |
Re: XSD-Schema für typisierte Datasets ergänzen
Hallo Jürgen,
zu deiner ersten Frage: eine notwendige Vorraussetzung für eine spätere Auswertung ist die Bereitstellung der ![]() Grüße vom marabu |
Re: XSD-Schema für typisierte Datasets ergänzen
Zitat:
Kannst Du mir dazu etwas sagen? Jürgen PS. Wie ich schon an anderen Stellen mehrfach betont habe, habe ich wenig Ahnung von HTML und möchte mich wegen anderer Schwerpunkte damit auch nicht näher befassen; aber kurze und dennoch vollständige Erläuterungen helfen mir natürlich trotzdem. |
Re: XSD-Schema für typisierte Datasets ergänzen
Ich sehe da eine Analogie zum SQL Domain-Konzept. Du hast ja in der Regel auch für jedes VARCHAR(nn) eine Domain DOM_VCnn. In XSD kannst du das analog handhaben.
Zitat:
Freundliche Grüße |
Re: XSD-Schema für typisierte Datasets ergänzen
Hallo Achim,
Zitat:
Zitat:
![]() Zitat:
Diese xsd-Datei habe ich fertig. Ich möchte lediglich die genannten Ergänzungen vorsehen und z.B. im Feld Kategorie.Name eine max. Stringlänge von 30 Zeichen festlegen:
XML-Code:
Im Übrigen gibt es für mich keinerlei Notwendigkeit, mich mit HTML/XML/XSD zu befassen.
<xsd:schema id="dsDGW"
elementFormDefault="qualified" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xsd:element name="dsDGW" msdata:IsDataSet="true" msdata:EnforceConstraints="False"> <xsd:complexType> <xsd:choice maxOccurs="unbounded"> <xsd:element name="Kategorie"> <xsd:complexType> <xsd:sequence> <xsd:element name="ID" msdata:AutoIncrement="true" type="xsd:int" /> <xsd:element name="Name" type="xsd:string" minOccurs="0" /> </xsd:sequence> </xsd:complexType> </xsd:element> Kannst Du mich wirklich nicht verstehen, dass ich nicht erst lang und breit dies lernen will, wenn - wie ich gehofft hatte - mir jemand dies sagen könnte? Gruß Jürgen Nachtrag: HTML = Hypertext Markup Language XML = Extensible Markup Language XSD = XML-Schemadatei also hat das wohl schon irgendetwas miteinander zu tun |
Re: XSD-Schema für typisierte Datasets ergänzen
Hat die C# Express Edition nicht den visuellen XSD Designer oder gar den DataSet designer vom VS?
Ich kann mich noch daran Erinnern, dass zumindest der DataSet designer in der Express edition enthalten war.. |
Re: XSD-Schema für typisierte Datasets ergänzen
Hallo Jürgen,
dotNet ist nicht meine Welt - und ohne einen Sponsor wird sie es so schnell auch nicht werden. Wenn du ein Tool besitzt, wie es Robert anklingen lässt, dann solltest du es benutzen. Hast du keines, so bezweifle ich, dass meine Änderungen an deinem XSD file von den dotNet Programmen akzeptiert werden. Da scheint eine formale Beschreibung dahinter zu stecken. Um maxLength in Ansatz zu bringen müsste das Element "Name" sich auf einen simpleType beziehen - und nicht auf den builtin type "xsd:string". Wenn die Datei von einem Tool erstellt wurde, dann solltest du prüfen, ob überhaupt ein einziges Element "xsd:simpleType" vorkommt - oder du müssest mir einen Link auf eine Referenz geben, wo ich den Aufbau der von des benötigten XSD file nachlesen kann. Auf jeden Fall ist es nicht das einfache Hinzufügen von maxLength="20" an irgendeiner Stelle. Und verzeih mir meine Frage nach deiner Haltung zu XSD. Manchmal schreibe ich, was ich besser nur denken sollte. Gute Nacht |
Re: XSD-Schema für typisierte Datasets ergänzen
Zitat:
|
Re: XSD-Schema für typisierte Datasets ergänzen
@Marabu
Und es geht doch: MaxLength kann in der XSD-Datei direkt beim Feld festgelegt werden:
XML-Code:
So einfach geht es; und ähnlich einfach hätte ich (und jeder andere) darauf kommen können: ein Dataset erstellen, als XML-Schema abspeichern und das Ergebnis ansehen.
<xs:element name="Nachname" minOccurs="0" msdata:Ordinal="5">
<xs:simpleType> <xs:restriction base="xs:string"> <xs:maxLength value="30" /> </xs:restriction> </xs:simpleType> </xs:element> Bis zur nächsten Frage, die ich mir selbst beantworten muss. Jürgen |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:01 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz