Announcement

Collapse
No announcement yet.

XML Schema und ISO als Bedingung

Collapse
This topic is closed.
X
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • XML Schema und ISO als Bedingung

    Guten Morgen,

    ich habe eine Abfrage auf meinen DB erstellt. Danach muss ich die erstellte Schema in einem Programm einspielen. Dabei bekomme ich Fehler, dass die Daten nicht eingespielt sein können, da es nicht mit Vorgaben stimmt. Es ist tatsächli so, dass 2 Bedingungen sind, aber ich weiss es nicht, wie ich die definieren kann.

    Ich habe eine Abfrage:

    Code:
     USE Test  DECLARE @content AS XML;  ;WITH XMLNAMESPACES ('commons' AS commons, 'v1' AS v1) SELECT @content = ( SELECT name as'@id', 'organ' as '@type', ( SELECT name as 'v1:name', adresse1 as 'v1:adresse1', adress1 as 'v1:contactAdress/commons:adress1', adress2 as 'v1:contactAdress/commons:adress2' FROM Table_1 as i WHERE o.name = i.name FOR XML PATH(''), TYPE ) FROM Table_1 as o FOR XML PATH('v1:externeadresse'), ROOT('externeadressen') );  DECLARE @textContent NVARCHAR(MAX) = (SELECT REPLACE(CAST(@content as NVARCHAR(MAX)), '<v1:name xmlns:v1="v1" xmlns:commons="commons">', '<v1:name>')); SET @textContent = (SELECT REPLACE(CAST(@textContent as NVARCHAR(MAX)), '<v1:adresse1 xmlns:v1="v1" xmlns:commons="commons">', '<v1:adresse1>')); SET @textContent = (SELECT REPLACE(CAST(@textContent as NVARCHAR(MAX)), '<v1:contactAdress xmlns:v1="v1" xmlns:commons="commons">', '<v1:contactAdress>')); SELECT CAST(@textContent AS XML) AS result;
    und hier ist das was ich noch zusätzlcih als info habe:
    Code:
     <xsd:attribute type="tns:adress1" name="adress1">                     <xsd:annotation>                         <xsd:documentation>An ISO 3166-1 code</xsd:documentation>                     </xsd:annotation>                 </xsd:attribute>
    Code:
       <xsd:simpleType name="adress1">         <xsd:restriction base="xsd:string">             <xsd:pattern value="[A-Z]{2}"/>         </xsd:restriction>     </xsd:simpleType>
    Wie kann ich die Bedingung in meine Abfrage einbauen? Vielen Dank im Voraus! Anna
    Zuletzt editiert von Anna85; 21.06.2019, 07:36.

  • #2
    Tja, deine Frage und Deine Angaben lassen wieder viel Spielraum für "weiß ich auch nicht". Was bedeutet überhaupt Deine Frage? Welche Bedingung?
    Eine Bedingung in einer Abfrage, das setzt man mit einer Where Clause um. Auch wenn ich sowas nicht in Deiner Abfrage sehe, befürchte ich, dass Du das auch gar nicht meinst.
    Dann ist noch die Formatierung schlecht. (Wobei ich nicht weiß, ob das Dein Verdienst ist oder der dieser miserabel eingerichteten Forensoftware hier)
    Trotzdem würde mich interessieren, ob Du solche einzeiligen Statements am Ende sogar selbst so schreibst?

    Ich spekuliere mal
    Deine erste "Info": "ISO" ist ein "ISO 3166-1". Sagt Dir das was? Kannst Du googlen, ist ein Ländercode.
    Deine zweite "Info": eine restriction mit dem Pattern [A-Z]{2}, offenbar eine Regular Expression. Kannst Du rausfinden, wann sie zutrifft? Wenn genau 2 Buchstaben von A-Z aufgeführt sind.

    Man könnte annehmen, dass beides zusammengehört und besagt, dass ein gültiger, 2stelliger ISO Buchstabencode gemäß ISO 3166-1 gelliefert werden muss.

    Wie Du das in Deinem Select Statement unterbekommst, ob diese Daten fehlen, ob sie ein Filterkriterium sein sollen oder eine Ergänzung, usw. das kann ich Dir leider nicht sagen.

    Comment

    Working...
    X