Avatar billede kla Nybegynder
26. april 2005 - 18:13 Der er 9 kommentarer og
1 løsning

Novice i xml schema - en if statment?

Jeg skal til at lave et schema baseret på noget XML vi idag benytter for at kunne lave den logik som ligger i xml'en så skal jeg bruge noget alla en IF statment?

altså jeg har et tag <xxx> som kan tage værdien J elller N hvis J er sat skal jeg kunne finde tag y1 & y2 y3 som krævede felter hvis <xxx> er N skal y1..y3 ikke findes i xml-strengen...

hvordan laver man denne problem stilling i xml-schema ???

/Kenneth
Avatar billede Slettet bruger
27. april 2005 - 00:10 #1
Umiddelbart tror jeg det kalder på en <choice> hvor du vælger mellem to groups: Een der bare indeholder <xxx>N</xxx>, eller een der indeholder <xxx>J</xxx><y1 /><y2/><y3/>

/CS
Avatar billede kla Nybegynder
27. april 2005 - 09:15 #2
okay... hvordan ville sådan noget se ud i XML'elsk ?
Avatar billede imago-dei Nybegynder
27. april 2005 - 09:21 #3
Jeg kan varmt anbefale dig at kigge på et program som Altovas XML Spy, som fås i en gratis hjemme udgave. Der får du god hjælp til at lave f.eks. XML skema.
Avatar billede kla Nybegynder
27. april 2005 - 09:28 #4
Har desværre ikke mulighed for at installer ovenstående pgm, men forventer at få noget ... som kan et eller andet i den retning på en tidspunkt.
Avatar billede imago-dei Nybegynder
27. april 2005 - 14:09 #5
Eksempel på choice i XSD:

<xsd:choice id="pg.choice">
  <xsd:element name="fullPrice" type="fullPriceType"/>
  <xsd:element name="salePrice" type="salePriceType"/>
  <xsd:element name="clearancePrice" type="clearancePriceType"/>
  <xsd:element name="freePrice" type="freePriceType"/>
</xsd:choice>
Avatar billede kla Nybegynder
27. april 2005 - 19:24 #6
choice ... det ser sgu ud til at det har løst mit problem... så hvis imago-dei vil have lidt point så giver jeg gerne .-)
Avatar billede imago-dei Nybegynder
27. april 2005 - 19:27 #7
jo tak
Avatar billede kla Nybegynder
28. april 2005 - 08:22 #8
Kunne jeg få en kommentar til nedestående...

Hvis jeg ellers har fatte dette korrekt, så siger nedestående altså hvis <funk>VIS</funk>

så skal tag <xxx> & <yyy> være med ellers ej?????? - eller er jeg bare helt ved siden af?

<xs:element name="FUNK" use="required">
  <xs:complexType>
      <xs:sequence>
          <xs:choice>
              <xs:element name="VIS">
                  <xs:complexType>
                      <xs:sequence>
                          <xs:element name="xxx" type="xs:string" />
                          <xs:element name="yyy" type="xs:string" />
                      </xs:sequence>
                  </xs:complexType>
              </xs:element>
              <xs:element name="OPRET">
                  <xs:complexType>
                      <xs:sequence />
                  </xs:complexType>
              </xs:element>
          </xs:choice>
      </xs:sequence>
  </xs:complexType>
</xs:element>
Avatar billede imago-dei Nybegynder
28. april 2005 - 11:40 #9
Ja det der står i den XML er at _enten_ VIS _eller_ OPRET skal være med, og at _hvis_ VIS er med skal _både_ "xxx" og "yyy" være med.

Siden du har en sequence under OPRET går jeg ud fra at der skal noget mere under det element. Som jeg læser ovenstående XML kan du ikke have elementer under OPRET selv om du har en sequence (men jeg er ikke helt sikker).
Avatar billede kla Nybegynder
28. april 2005 - 12:12 #10
Ja, jeg er ikke kommet så langt...
Det du siger... jeg ved godt jeg er tungnem er at følgende ville være gyldigt (ved godt root ikke fremgår af schema'et)
<root><FUNK>VIS</Funk><xxx>123123</xxx><yyy>abcabc</yyy></root>

Jeg laver det jo i WS2005 men kommer nok først rigtig igang i løbet af weekenden :-)

Så måske jeg vender tilbage ... point kan man jo altid give :-))
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester