MS SSIS Probleem met XSD reverse engineeren vanuit XML

Pagina: 1
Acties:

Vraag


Acties:
  • 0 Henk 'm!

  • Maddog McHare
  • Registratie: Maart 2005
  • Laatst online: 19-01 00:38

Maddog McHare

ROCK AND STONE!

Topicstarter
Hallo,

Voor het querien van een remote database dient middels XML een uitvraag gedaan te worden om records op te halen. Nu heb ik in VBA een script gebouwd wat dit perfect uitvoert waarin onderstaand XML schema als response wordt gegeven. Volgende stap is om dit script onder te brengen in SSIS oackage zodat het script in een scheduled task kan runnen. Het probleem is dat SSIS naast het XML schema ook een XSD eist. Nu heb ik vanuit de XML de XSD opgebouwd maar ik blijf een foutmelding krijgen als ik het de XML tegen de XSD afzet.

Ik heb gebruik gemaakt van de volgende site om dit te testen.

Zowel de XML als de XSD zijn volgens deze site vormtechnisch correct.

De fout lijkt te zitten in het stukje bij regel 86 - 96 in de XSD resp. regel 70-77 in de XML.

Foutmelding uit de check van bovenstaande site :
Not valid.
Error - Line 71, 21: org.xml.sax.SAXParseException; lineNumber: 71; columnNumber: 21; cvc-complex-type.2.4.a: Invalid content was found starting with element 'activeposition'. One of '{activePosition, position}' is expected.
Wie-o-wie kan mij hiermee helpen en de fout aanwijzen?


Hieronder de XML en XSD


XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<response> 
<valid></valid>
 <resource>
   <email></email>
   <code></code>
   <lastName></lastName>
   <firstNames></firstNames>
   <fullName></fullName>
   <initials></initials>
   <infix></infix>
   <forename></forename>
   <titleBefore></titleBefore>
   <titleAfter></titleAfter>
   <isMaterial></isMaterial>
   <gender></gender>
   <language></language>
   <contactPerson></contactPerson>
   <privateAddress></privateAddress>
   <privatePostcode></privatePostcode>
   <privateCity></privateCity>
   <privateCountry></privateCountry>
   <privateTelephone></privateTelephone>
   <privateFax></privateFax>
   <privateMobile></privateMobile>
   <privateEmail></privateEmail>
   <birthDate></birthDate>
   <businessTelephone></businessTelephone>
   <businessFax></businessFax>
   <businessMobile></businessMobile>
   <isActive></isActive>
   <mailing></mailing>
   <freefield1></freefield1>
   <freefield2></freefield2>
   <freefield3></freefield3>
   <startDate></startDate>
   <endDate></endDate>
   <employeeNumber></employeeNumber>
   <bankAccountNumber></bankAccountNumber>
   <backupTime></backupTime>
   <backupExpenses></backupExpenses>
   <productivity></productivity>
   <numberOfHolidays></numberOfHolidays>
   <balanceHolidaysLastYear></balanceHolidaysLastYear>
   <regionCalendar></regionCalendar>
   <isExternalResource></isExternalResource>
   <sendEmailNotificationDueTimesheets></sendEmailNotificationDueTimesheets>
   <workingHoursMonday></workingHoursMonday>
   <workingHoursTuesday></workingHoursTuesday>
   <workingHoursWednesday></workingHoursWednesday>
   <workingHoursThursday></workingHoursThursday>
   <workingHoursFriday></workingHoursFriday>
   <workingHoursSaturday></workingHoursSaturday>
   <workingHoursSunday></workingHoursSunday>
   <startTimeMonday></startTimeMonday>
   <startTimeTuesday></startTimeTuesday>
   <startTimeWednesday></startTimeWednesday>
   <startTimeThursday></startTimeThursday>
   <startTimeFriday></startTimeFriday>
   <startTimeSaturday></startTimeSaturday>
   <startTimeSunday></startTimeSunday>
   <color></color>
   <organisationalUnits>
    <activeOrganisationalUnit></activeOrganisationalUnit>
    <organisationalUnit>
     <code></code>     
     <name></name>
     <date></date>
    </organisationalUnit>
   </organisationalUnits>
   <positions>
    <activeposition></activeposition>
    <position>
     <code></code>
     <name></name>
     <date></date>
    </position>
   </positions>
   <skills>
    <skill>
     <skill></skill>
     <level></level>
     <date></date>
    </skill>
   </skills>
   <rates>
    <rate>
     <rate></rate>
     <type></type>
     <date></date>
     <currency></currency>
    </rate>
   </rates>
 </resource> 
</response>


XSD:
XML:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
<?xml version="1.0"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="response">
      <xs:complexType>
        <xs:sequence>
            <xs:element minOccurs="0" name="valid" type="xs:string" />
            <xs:element minOccurs="0" name="resource">
              <xs:complexType>
                <xs:sequence>
                    <xs:element minOccurs="0" name="email" type="xs:string" />
                    <xs:element minOccurs="0" name="code" type="xs:string" />
                    <xs:element minOccurs="0" name="lastName" type="xs:string" />
                    <xs:element minOccurs="0" name="firstNames" type="xs:string" />
                    <xs:element minOccurs="0" name="fullName" type="xs:string" />
                    <xs:element minOccurs="0" name="initials" type="xs:string" />
                    <xs:element minOccurs="0" name="infix" type="xs:string" />
                    <xs:element minOccurs="0" name="forename" type="xs:string" />
                    <xs:element minOccurs="0" name="titleBefore" type="xs:string" />
                    <xs:element minOccurs="0" name="titleAfter" type="xs:string" />
                    <xs:element minOccurs="0" name="isMaterial" type="xs:string" />
                    <xs:element minOccurs="0" name="gender" type="xs:string"/>
                    <xs:element minOccurs="0" name="language" type="xs:string"/>
                    <xs:element minOccurs="0" name="contactPerson" type="xs:string"/>
                    <xs:element minOccurs="0" name="privateAddress" type="xs:string"/>
                    <xs:element minOccurs="0" name="privatePostcode" type="xs:string"/>
                    <xs:element minOccurs="0" name="privateCity" type="xs:string" />
                    <xs:element minOccurs="0" name="privateCountry" type="xs:string" />
                    <xs:element minOccurs="0" name="privateTelephone" type="xs:string" />
                    <xs:element minOccurs="0" name="privateFax" type="xs:string" />
                    <xs:element minOccurs="0" name="privateMobile" type="xs:string" />
                    <xs:element minOccurs="0" name="privateEmail" type="xs:string" />
                    <xs:element minOccurs="0" name="birthDate" type="xs:string" />
                    <xs:element minOccurs="0" name="businessTelephone" type="xs:string" />
                    <xs:element minOccurs="0" name="businessFax" type="xs:string" />
                    <xs:element minOccurs="0" name="businessMobile" type="xs:string" />
                    <xs:element minOccurs="0" name="isActive" type="xs:string" />
                    <xs:element minOccurs="0" name="mailing" type="xs:string" />
                    <xs:element minOccurs="0" name="freefield1" type="xs:string" />
                    <xs:element minOccurs="0" name="freefield2" type="xs:string" />
                    <xs:element minOccurs="0" name="freefield3" type="xs:string" />
                    <xs:element minOccurs="0" name="startDate" type="xs:string" />
                    <xs:element minOccurs="0" name="endDate" type="xs:string" />
                    <xs:element minOccurs="0" name="employeeNumber" type="xs:string" />
                    <xs:element minOccurs="0" name="socialSecurityNumber" type="xs:string" />
                    <xs:element minOccurs="0" name="bankAccountNumber" type="xs:string" />
                    <xs:element minOccurs="0" name="backupTime" type="xs:string" />
                    <xs:element minOccurs="0" name="backupExpenses" type="xs:string" />
                    <xs:element minOccurs="0" name="productivity" type="xs:string" />
                    <xs:element minOccurs="0" name="numberOfHolidays" type="xs:string" />
                    <xs:element minOccurs="0" name="balanceHolidaysLastYear" type="xs:string" />
                    <xs:element minOccurs="0" name="balanceTimeForTime" type="xs:string" />
                    <xs:element minOccurs="0" name="regionCalendar" type="xs:string" />
                    <xs:element minOccurs="0" name="isExternalResource" type="xs:string" />
                    <xs:element minOccurs="0" name="sendEmailNotificationDueTimesheets" type="xs:string"/>
                    <xs:element minOccurs="0" name="workingHoursMonday" type="xs:string" />
                    <xs:element minOccurs="0" name="workingHoursTuesday" type="xs:string" />
                    <xs:element minOccurs="0" name="workingHoursWednesday" type="xs:string"  />
                    <xs:element minOccurs="0" name="workingHoursThursday" type="xs:string"  />
                    <xs:element minOccurs="0" name="workingHoursFriday" type="xs:string" />
                    <xs:element minOccurs="0" name="workingHoursSaturday" type="xs:string" />
                    <xs:element minOccurs="0" name="workingHoursSunday" type="xs:string" />
                    <xs:element minOccurs="0" name="startTimeMonday" type="xs:string"/>
                    <xs:element minOccurs="0" name="startTimeTuesday" type="xs:string"/>
                    <xs:element minOccurs="0" name="startTimeWednesday" type="xs:string"/>
                    <xs:element minOccurs="0" name="startTimeThursday" type="xs:string" />
                    <xs:element minOccurs="0" name="startTimeFriday" type="xs:string" />
                    <xs:element minOccurs="0" name="startTimeSaturday" type="xs:string" />
                    <xs:element minOccurs="0" name="startTimeSunday" type="xs:string" />
                    <xs:element minOccurs="0" name="color" type="xs:string"/>
                    <xs:element name="organisationalUnits" >
                      <xs:complexType>
                        <xs:sequence>
                            <xs:element minOccurs="0" name="activeOrganisationalUnit" type="xs:string"/>
                            <xs:element minOccurs="0" maxOccurs="unbounded" name="organisationalUnit" >
                              <xs:complexType>
                                <xs:sequence>
                                    <xs:element minOccurs="0" name="code" type="xs:string" />
                                    <xs:element minOccurs="0" name="name" type="xs:string" />
                                    <xs:element minOccurs="0" name="date" type="xs:string" />
                                </xs:sequence>
                              </xs:complexType>                     
                            </xs:element>
                        </xs:sequence>
                      </xs:complexType>     
                    </xs:element>
                    <xs:element name="positions" >
                      <xs:complexType>
                        <xs:sequence>
                            <xs:element minOccurs="0" name="activePosition" type="xs:string" />
                            <xs:element minOccurs="0" maxOccurs="unbounded" name="position" >   
                              <xs:complexType>
                                <xs:sequence>
                                    <xs:element minOccurs="0" name="code" type="xs:string" />   
                                    <xs:element minOccurs="0" name="name" type="xs:string" />
                                    <xs:element minOccurs="0" name="date" type="xs:string" />   
                                </xs:sequence>  
                              </xs:complexType>
                            </xs:element>
                        </xs:sequence>      
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="skills" > 
                      <xs:complexType>
                        <xs:sequence>
                            <xs:element minOccurs="0" maxOccurs="unbounded" name="skill" >  
                              <xs:complexType>
                                <xs:sequence>           
                                    <xs:element minOccurs="0" name="skill" type="xs:string" />  
                                    <xs:element minOccurs="0" name="level" type="xs:string" />  
                                    <xs:element minOccurs="0" name="date" type="xs:string" />   
                                </xs:sequence>  
                              </xs:complexType>
                            </xs:element>
                         </xs:sequence>                             
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="rates" >  
                      <xs:complexType>
                        <xs:sequence>
                            <xs:element minOccurs="0" maxOccurs="unbounded" name="rate" >   
                              <xs:complexType>
                                <xs:sequence>   
                                    <xs:element minOccurs="0" name="rate" type="xs:string"  />                                  
                                    <xs:element minOccurs="0" name="type" type="xs:string" />   
                                    <xs:element minOccurs="0" name="date" type="xs:string" />   
                                    <xs:element minOccurs="0" name="currency" type="xs:string" />
                                </xs:sequence>                                  
                              </xs:complexType>
                            </xs:element>   
                        </xs:sequence>                      
                      </xs:complexType>
                    </xs:element>   
                </xs:sequence>
              </xs:complexType>
            </xs:element>   
        </xs:sequence>
      </xs:complexType>
    </xs:element>
</xs:schema>

M@Dd09

Beste antwoord (via Maddog McHare op 11-01-2016 16:29)


  • eek
  • Registratie: Februari 2001
  • Laatst online: 06-04-2020

eek

@MagickNET

activePosition activeposition

Zoek de verschillen :)

Skill is when luck becomes a habit.

Alle reacties


Acties:
  • Beste antwoord
  • +3 Henk 'm!

  • eek
  • Registratie: Februari 2001
  • Laatst online: 06-04-2020

eek

@MagickNET

activePosition activeposition

Zoek de verschillen :)

Skill is when luck becomes a habit.


Acties:
  • 0 Henk 'm!

  • Maddog McHare
  • Registratie: Maart 2005
  • Laatst online: 19-01 00:38

Maddog McHare

ROCK AND STONE!

Topicstarter
@eek

_/-\o_ pfffffff.....me feel n00b...... :o

Hartelijk dank, heb er met een tweetal andere collegas naar gekeken maar dit niet gezien. Ik had geen idee dat hier case sensitive in meespeelde. Vreemde ogen zien dan toch vaak net iets anders.

Nogmaals hartelijk dank.

M@Dd09