I have tried to generate a wsdl, but when importing it into soap UI the request template is empty - there is no warning or anything else that indicates a problem.
this is the result
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Body/>
</soapenv:Envelope>
The wsdl i have made looks like this (removed some for clarity)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tns="http://localhost/powershell/" targetNamespace="http://localhost/powershell/" name="powershell">
<wsdl:types>
<xs:schema targetNamespace="http://localhost/powershell/" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="GetProcessRequest">
<xs:complexType name="GetProcessRequestType">
<xs:sequence>
<xs:element name="field1" minOccurs="0" type="xs:string" nillable="false" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="GetProcessResponse">
<xs:complexType name="GetProcessResponseType">
<xs:sequence>
<xs:element name="o1" minOccurs="0" type="xs:string" nillable="false" />
<xs:element name="o2" minOccurs="0" type="xs:string" nillable="false" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ListGetProcessResponse">
<xs:complexType name="ListGetProcessResponseType">
<xs:complexContent mixed="false">
<xs:restriction base="soapenc:Array">
<xs:attribute ref="soapenc:arrayType" wsdl:arrayType="GetProcessResponseType[]" />
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="GetItemsRequest">
<xs:complexType name="GetItemsRequestType">
<xs:sequence>
<xs:element name="field1" minOccurs="0" type="xs:string" nillable="false" />
<xs:element name="field2" minOccurs="0" type="xs:string" nillable="false" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="GetItemsResponse">
<xs:complexType name="GetItemsResponseType">
<xs:sequence>
<xs:element name="o1" minOccurs="0" type="xs:string" nillable="false" />
<xs:element name="o2" minOccurs="0" type="xs:string" nillable="false" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ListGetItemsResponse">
<xs:complexType name="ListGetItemsResponseType">
<xs:complexContent mixed="false">
<xs:restriction base="soapenc:Array">
<xs:attribute ref="soapenc:arrayType" wsdl:arrayType="GetItemsResponseType[]" />
</xs:restriction>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:schema>
</wsdl:types>
<wsdl:portType name="powershell">
<wsdl:operation name="GetProcess">
<wsdl:input message="tns:GetProcessRequestMessage" />
<wsdl:output message="tns:GetProcessResponseMessage" />
</wsdl:operation>
<wsdl:operation name="GetItems">
<wsdl:input message="tns:GetItemsRequestMessage" />
<wsdl:output message="tns:GetItemsResponseMessage" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="powershellBinding" type="tns:powershell">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="GetProcess">
<soap:operation soapAction="http://localhost/powershell.svc/GetProcess" style="document">
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</soap:operation>
</wsdl:operation>
<wsdl:operation name="GetItems">
<soap:operation soapAction="http://localhost/powershell.svc/GetItems" style="document">
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</soap:operation>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="powershell">
<wsdl:port binding="tns:powershellBinding" name="powershellBinding">
<soap:address location="http://localhost/powershell.svc" />
</wsdl:port>
</wsdl:service>
<wsdl:message name="GetProcessRequestMessage">
<wsdl:part name="parameters" element="tns:GetProcessRequest" />
</wsdl:message>
<wsdl:message name="GetProcessResponseMessage">
<wsdl:part name="parameters" element="tns:ListGetProcessResponse" />
</wsdl:message>
<wsdl:message name="GetItemsRequestMessage">
<wsdl:part name="parameters" element="tns:GetItemsRequest" />
</wsdl:message>
<wsdl:message name="GetItemsResponseMessage">
<wsdl:part name="parameters" element="tns:GetItemsResponse" />
</wsdl:message>
</wsdl:definitions>
As far as i can tell, everything should be linked correctly, but obviously im missing something somewhere, i just cannot find it.
Your WSDL is not valid. The definition of soap:operation element does not allow any content. You need to close the element soap:operation straight away, without any subelements:
<soap:operation soapAction="http://localhost/powershell.svc/GetItems" style="document" />
You need to do the following change:
<wsdl:operation name="GetItems">
<soap:operation soapAction="http://localhost/powershell.svc/GetItems" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
Similarly for other operations.
Related
I am trying to learn how to load an XML (XML source) into SSIS 2010 , the data will then go to an SQL Server 2012 Table.
The issue I am having, Is I am trying to follow a tutorial, and I am getting the same error:
The XML Source was unable to read the XML data. Data at the root level is invalid. Line 1, position 1.
This when downloading any of the tables - the one I have chosen is region.
Here is the script - this is in an XSD file
<?xml version="1.0" encoding="UTF-8" ?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="countries">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="country">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="iso2Code" type="xs:string" />
<xs:element minOccurs="0" name="name" type="xs:string" />
<xs:element minOccurs="0" name="region">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="adminregion">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="incomeLevel">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="lendingType">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id" type="xs:string" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="capitalCity" type="xs:string" />
<xs:element minOccurs="0" name="longitude" type="xs:string" />
<xs:element minOccurs="0" name="latitude" type="xs:string" />
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="page" type="xs:unsignedByte" use="optional" />
<xs:attribute name="pages" type="xs:unsignedByte" use="optional" />
<xs:attribute name="per_page" type="xs:unsignedByte" use="optional" />
<xs:attribute name="total" type="xs:unsignedByte" use="optional" />
</xs:complexType>
</xs:element>
</xs:schema>
The trail site is http://api.worldbank.org/countries
I have tried changing the top line
<?xml version="1.0" encoding="UTF-8" ?>
with no success. Please help
I am trying to generate Apex class from WSDL file but I am getting below error:
Apex Generation Failed
Unable to find schema for element; {http://www.w3.org/2001/XMLSchema}string
Any help on this is much appreciated.
Thanks in advance
See below WSDL file:
<?xml version="1.0" encoding="UTF-8"?>
<!--Created by TIBCO WSDL-->
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:tns="http://xmlns.example.com/1393912810519" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:ns0="http://www.tibco.com/schemas/vendorInterface/SharedResource/Schema/Schema.xsd2" xmlns:ns1="http://www.tibco.com/schemas/vendorInterface/SharedResource/Schema/Schema.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" name="Untitled" targetNamespace="http://xmlns.example.com/1393912810519">
<wsdl:types>
<xs:schema xmlns="http://www.tibco.com/schemas/vendorInterface/SharedResource/Schema/Schema.xsd" targetNamespace="http://www.tibco.com/schemas/vendorInterface/SharedResource/Schema/Schema.xsd" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="VendorInterface">
<xs:complexType>
<xs:sequence>
<xs:element name="Vendor_main">
<xs:complexType>
<xs:sequence>
<xs:element name="LIFNR" type="xs:string"/>
<xs:element name="NAME1" type="xs:string"/>
<xs:element name="SORTL" type="xs:string"/>
<xs:element name="BUS_TYPE" type="xs:string"/>
<xs:element name="ROUTE_CODE" type="xs:string"/>
<xs:element name="VESTYR" type="xs:string" minOccurs="0"/>
<xs:element name="VESTYB" type="xs:string"/>
<xs:element name="ZTERM" type="xs:string"/>
<xs:element name="ZWELS" type="xs:string"/>
<xs:element name="SPERM" type="xs:string"/>
<xs:element name="REPRF" type="xs:string"/>
<xs:element name="WAERS" type="xs:string"/>
<xs:element name="ZAHLS" type="xs:string"/>
<xs:element name="SPRAS" type="xs:string"/>
<xs:element name="ZZ_ACTION" type="xs:string"/>
<xs:element name="STATUS" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Vendor_User">
<xs:complexType>
<xs:sequence>
<xs:element name="LIFNR" type="xs:string"/>
<xs:element name="NAME1" type="xs:string"/>
<xs:element name="NAME2" type="xs:string" minOccurs="0"/>
<xs:element name="ZZ_ACTION" type="xs:string"/>
<xs:element name="STATUS" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Vendor_Tax">
<xs:complexType>
<xs:sequence>
<xs:element name="LIFNR" type="xs:string"/>
<xs:element name="LAND1" type="xs:string"/>
<xs:element name="STCEG" type="xs:string" minOccurs="0"/>
<xs:element name="ITTXAC" type="xs:string"/>
<xs:element name="STENR" type="xs:string"/>
<xs:element name="ITRCVR" type="xs:string"/>
<xs:element name="ZZ_ACTION" type="xs:string"/>
<xs:element name="STATUS" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Vendor_Address">
<xs:complexType>
<xs:sequence>
<xs:element name="LIFNR" type="xs:string"/>
<xs:element name="VASTYP" type="xs:string"/>
<xs:element name="VABFRT" type="xs:string"/>
<xs:element name="STREET1" type="xs:string"/>
<xs:element name="STREET2" type="xs:string"/>
<xs:element name="STREET3" type="xs:string"/>
<xs:element name="STREET4" type="xs:string"/>
<xs:element name="ORT01" type="xs:string"/>
<xs:element name="LAND1" type="xs:string"/>
<xs:element name="WAERS" type="xs:string"/>
<xs:element name="SPRAS" type="xs:string"/>
<xs:element name="PSTLZ" type="xs:string"/>
<xs:element name="SMTP_ADDR" type="xs:string"/>
<xs:element name="KOINH" type="xs:string"/>
<xs:element name="INTAD" type="xs:string"/>
<xs:element name="ZZ_ACTION" type="xs:string"/>
<xs:element name="STATUS" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Vendor_Paymen_Methods">
<xs:complexType>
<xs:sequence>
<xs:element name="LIFNR" type="xs:string"/>
<xs:element name="ZWELS" type="xs:string"/>
<xs:element name="KOINH" type="xs:string"/>
<xs:element name="REMARK" type="xs:string"/>
<xs:element name="BANKA" type="xs:string"/>
<xs:element name="ZZ_ACTION" type="xs:string"/>
<xs:element name="STATUS" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Vendor_ContactPerson">
<xs:complexType>
<xs:sequence>
<xs:element name="LIFNR" type="xs:string"/>
<xs:element name="CNTTYP" type="xs:string"/>
<xs:element name="NAMEV" type="xs:string"/>
<xs:element name="NAME1" type="xs:string"/>
<xs:element name="CNSTYP" type="xs:string"/>
<xs:element name="TEL_NUMBER" type="xs:string"/>
<xs:element name="TEL_EXTENS" type="xs:string"/>
<xs:element name="FAX_NUMBER" type="xs:string"/>
<xs:element name="TEL_NUMBER2" type="xs:string"/>
<xs:element name="TEL_EXTENS2" type="xs:string"/>
<xs:element name="FAX_NUMBER2" type="xs:string"/>
<xs:element name="ZZ_ACTION" type="xs:string"/>
<xs:element name="STATUS" type="xs:string" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
<xs:schema xmlns="http://www.tibco.com/schemas/vendorInterface/SharedResource/Schema/Schema.xsd2" targetNamespace="http://www.tibco.com/schemas/vendorInterface/SharedResource/Schema/Schema.xsd2" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="VendorDetails" type="xs:string"/>
</xs:schema>
</wsdl:types>
<wsdl:service name="VendorInterface">
<wsdl:port name="VendorInfoEndpoint" binding="tns:VendorInfoEndpointBinding">
<soap:address location="http://localhost:8050/BusinessProcess/InterfaceImplementation/VendorInterface.serviceagent/VendorInfoEndpoint"/>
</wsdl:port>
</wsdl:service>
<wsdl:portType name="PortType">
<wsdl:operation name="GetVendorInfo">
<wsdl:input message="tns:GetVendorInfo_Request"/>
<wsdl:output message="tns:GetVendorInfo_Respone"/>
<wsdl:fault name="fault1" message="tns:GetVendorInfo_Fault"/>
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="VendorInfoEndpointBinding" type="tns:PortType">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsdl:operation name="GetVendorInfo">
<soap:operation style="document" soapAction="/BusinessProcess/InterfaceImplementation/VendorInterface.serviceagent/VendorInfoEndpoint/GetVendorInfo"/>
<wsdl:input>
<soap:body use="literal" parts="Request"/>
</wsdl:input>
<wsdl:output>
<soap:body use="literal" parts="Response"/>
</wsdl:output>
<wsdl:fault name="fault1">
<soap:fault use="literal" name="fault1"/>
</wsdl:fault>
</wsdl:operation>
</wsdl:binding>
<wsdl:message name="GetVendorInfo_Request">
<wsdl:part name="Request" element="ns0:VendorDetails"/>
</wsdl:message>
<wsdl:message name="GetVendorInfo_Respone">
<wsdl:part name="Response" element="ns1:VendorInterface"/>
</wsdl:message>
<wsdl:message name="GetVendorInfo_Fault">
<wsdl:part name="fault" type="xs:string"/>
</wsdl:message>
</wsdl:definitions>
The type for GetVendorInfo_Request. This has:
<xs:element name="VendorDetails" type="xs:string"/>
Wsdl2Apex doesn't support direct single-standard type requests or responses. Instead it would need to be nested in a complex type within a sequence. E.g.
<xs:schema xmlns="http://www.tibco.com/schemas/vendorInterface/SharedResource/Schema/Schema.xsd2" targetNamespace="http://www.tibco.com/schemas/vendorInterface/SharedResource/Schema/Schema.xsd2" elementFormDefault="qualified" attributeFormDefault="unqualified">
<!--
This isn't supported by wsdl2Apex
<xs:element name="VendorDetails" type="xs:string"/>
-->
<xs:element name="VendorDetails">
<xs:complexType>
<xs:sequence>
<xs:element name="inputParam" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
If you are unable to modify the WSDL then you can make the request directly using an HttpRequest by building up the required Soap XML payload yourself. I've been working with an intern on a tool to automate this. Unfortunately it doesn't directly support single standard type requests/responses yet either. If you are interested, see WSDL Parser and Apex Generator (Disclaimer: I work for the company that creates this tool. It is free).
See also: WSDL2APEX Parse error - Unable to find schema for element; {http://www.w3.org/2001/XMLSchema}string
I have 2 Xml files. 1st file we can call master as its having all nodes and in 2nd files only few information is there.
How can i creat a single xsd supporting both files.
File1:
<Information ID="08" >
<description>office information</description>
<officeName>SBV</officeName>
<A id="234">
<name>xyz</name>
< age>23</age>
<dept>SE</dept>
</A>
<B id="244">
<name>lkj</name>
< age>27</age>
<dept>Sales</dept>
</B>
<C id="264">
<name>opi</name>
< age>34</age>
<dept>Manufacture</dept>
</C>
<D id="774">
<name>yui</name>
< age>25</age>
<dept>Production</dept>
</D>
</Information>
File2:
<Information >
<description>Worker information</description>
<A id="234">
<name>xyz</name>
< age>23</age>
<dept>WP</dept>
</A>
<B id="244">
<name>lkj</name>
< age>27</age>
<dept>WP</dept>
</B>
</Information>
This is a possible schema - which should be considered as a starting point.
<?xml version="1.0" encoding="utf-8"?>
<!--XML Schema generated by QTAssistant/XML Schema Refactoring (XSR) Module (http://www.paschidev.com)-->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Information">
<xs:complexType>
<xs:sequence>
<xs:element name="description" type="xs:string" />
<xs:element minOccurs="0" name="officeName" type="xs:string" />
<xs:element name="A">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="age" type="xs:unsignedByte" />
<xs:element name="dept" type="xs:string" />
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="B">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="age" type="xs:unsignedByte" />
<xs:element name="dept" type="xs:string" />
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="C">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="age" type="xs:unsignedByte" />
<xs:element name="dept" type="xs:string" />
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedShort" use="required" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="D">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string" />
<xs:element name="age" type="xs:unsignedByte" />
<xs:element name="dept" type="xs:string" />
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedShort" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="ID" type="xs:unsignedByte" use="optional" />
</xs:complexType>
</xs:element>
</xs:schema>
In my case, I've used QTAssistant (I am associated with it) to create the XSD automatically, by pointing it to the two XML documents you've posted.
This is what I've got (it validates both):
The next steps should then be to "rationalize" the generated XSD. For example, if you look at the content models of elements A, B, C and D, all share the same; if indeed this is the case, then you could have a global type declaration, basically reused. Or, it could be that C and D must appear in a "both or none" combination, in which case additional tweaking may achieve exactly that. Below is a manually amended schema, based on the above comments, to give you an idea on what it would look like. Keep in mind that both XSDs validate your XMLs.
<?xml version="1.0" encoding="utf-8"?>
<!--XML Schema generated by QTAssistant/XML Schema Refactoring (XSR) Module (http://www.paschidev.com)-->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Information">
<xs:complexType>
<xs:sequence>
<xs:element name="description" type="xs:string"/>
<xs:element minOccurs="0" name="officeName" type="xs:string"/>
<xs:element name="A" type="atype"/>
<xs:element name="B" type="atype"/>
<xs:sequence minOccurs="0">
<xs:element name="C" type="atype"/>
<xs:element name="D" type="atype"/>
</xs:sequence>
</xs:sequence>
<xs:attribute name="ID" type="xs:unsignedByte" use="optional"/>
</xs:complexType>
</xs:element>
<xs:complexType name="atype">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="age" type="xs:unsignedByte"/>
<xs:element name="dept" type="xs:string"/>
</xs:sequence>
<xs:attribute name="id" type="xs:int" use="required"/>
</xs:complexType>
</xs:schema>
By now, one can see that the latter is more compact in terms of "source". The content models though are quite similar.
I'm trying to use SQL Server 2008 SSIS to read an XML file and put it into a database, but I'm having problems. Everything is green when I run debugging, but no data is actually transferred. Even when a make a simple XML Source -> Flat File output, the flat file is blank after being created.
I'm using the inline schema, but even if I remove the schema SSIS can't generate an XSD file.
Here's the XML:
<?xml version="1.0" encoding="utf-16"?>
<DataSet>
<xs:schema id="Schedule_x0020_Set" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="Schedule_x0020_Set" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Schedule_x0020_Table">
<xs:complexType>
<xs:sequence>
<xs:element name="ScheduleDate" type="xs:string" minOccurs="0" />
<xs:element name="StaffLName" type="xs:string" minOccurs="0" />
<xs:element name="StaffFName" type="xs:string" minOccurs="0" />
<xs:element name="TaskName" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>
<diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
<Schedule_x0020_Set>
<Schedule_x0020_Table diffgr:id="Schedule Table1" msdata:rowOrder="0" diffgr:hasChanges="inserted">
<ScheduleDate>1/24/2011</ScheduleDate>
<StaffLName>Smith</StaffLName>
<StaffFName>Josh</StaffFName>
<TaskName>Day Shift</TaskName>
</Schedule_x0020_Table>
<Schedule_x0020_Table diffgr:id="Schedule Table2" msdata:rowOrder="1" diffgr:hasChanges="inserted">
<ScheduleDate>1/24/2011</ScheduleDate>
<StaffLName>Doe</StaffLName>
<StaffFName>Jane</StaffFName>
<TaskName>Night Shift</TaskName>
</Schedule_x0020_Table>
<Schedule_x0020_Table diffgr:id="Schedule Table3" msdata:rowOrder="2" diffgr:hasChanges="inserted">
<ScheduleDate>1/24/2011</ScheduleDate>
<StaffLName>Johnson</StaffLName>
<StaffFName>Barbara</StaffFName>
<TaskName>Off</TaskName>
</Schedule_x0020_Table>
</Schedule_x0020_Set>
</diffgr:diffgram>
</DataSet>
I had to use the following file to get it to work. It only began to work when I changed the schema AND removed the diffgr stuff. Hope this helps.
<DataSet>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="DataSet">
<xs:complexType>
<xs:sequence>
<xs:element ref="Schedule_x0020_Set"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Schedule_x0020_Set">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" ref="Schedule_x0020_Table"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Schedule_x0020_Table">
<xs:complexType>
<xs:sequence>
<xs:element ref="ScheduleDate"/>
<xs:element ref="StaffLName"/>
<xs:element ref="StaffFName"/>
<xs:element ref="TaskName"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ScheduleDate" type="xs:string"/>
<xs:element name="StaffLName" type="xs:NCName"/>
<xs:element name="StaffFName" type="xs:NCName"/>
<xs:element name="TaskName" type="xs:string"/>
</xs:schema>
<Schedule_x0020_Set>
<Schedule_x0020_Table>
<ScheduleDate>1/24/2011</ScheduleDate>
<StaffLName>Smith</StaffLName>
<StaffFName>Josh</StaffFName>
<TaskName>Day Shift</TaskName>
</Schedule_x0020_Table>
<Schedule_x0020_Table>
<ScheduleDate>1/24/2011</ScheduleDate>
<StaffLName>Doe</StaffLName>
<StaffFName>Jane</StaffFName>
<TaskName>Night Shift</TaskName>
</Schedule_x0020_Table>
<Schedule_x0020_Table>
<ScheduleDate>1/24/2011</ScheduleDate>
<StaffLName>Johnson</StaffLName>
<StaffFName>Barbara</StaffFName>
<TaskName>Off</TaskName>
</Schedule_x0020_Table>
</Schedule_x0020_Set>
</DataSet>
"Error: Schema: relationship expected on 'headerRecord'."
I get the above error while load xml file to SQL Server 2008 using SQLXMLBulkLoad4 Component , the xml file contains Call Detail records, I have generated schema file from xml file using both , Dataset and XSD.exe tool, but the error remains same., if there is another way to imports xml file with multiple tables that have relationship in each file into SQL Server 2008? .
Here the xml file:
<CallEventDataFile>
<headerRecord>
<productionDateTime>0912021247482B0300</productionDateTime>
<recordingEntity>00</recordingEntity>
<extensions/>
</headerRecord>
<callEventRecords>
<mtSMSRecord>
<recordType>7</recordType>
<serviceCentre>91521230</serviceCentre>
<servedIMSI>36570000031728F2</servedIMSI>
<servedIMEI>53886000707896F0</servedIMEI>
<servedMSISDN>915212454503F2</servedMSISDN>
<msClassmark>3319A1</msClassmark>
<recordingEntity>915212110100</recordingEntity>
<location>
<locationAreaCode>0006</locationAreaCode>
<cellIdentifier>0C6E</cellIdentifier>
</location>
<deliveryTime>0912021535412B0300</deliveryTime>
<systemType>
<gERAN/>
</systemType>
<basicService>
<teleservice>21</teleservice>
</basicService>
<additionalChgInfo>
<chargeIndicator>2</chargeIndicator>
</additionalChgInfo>
<chargedParty>
<calledParty/>
</chargedParty>
<orgRNCorBSCId>8E1A</orgRNCorBSCId>
<orgMSCId>921A</orgMSCId>
<globalAreaID>36F70500060C6E</globalAreaID>
<subscriberCategory>0A</subscriberCategory>
<firstmccmnc>36F705</firstmccmnc>
<smsUserDataType>FF</smsUserDataType>
<origination>8191F2</origination>
<callReference>1605EB2FE1</callReference>
</mtSMSRecord>
<moSMSRecord>
<recordType>6</recordType>
<servedIMSI>36570000238707F9</servedIMSI>
<servedIMEI>53928320195925F0</servedIMEI>
<servedMSISDN>915212159430F2</servedMSISDN>
<msClassmark>3319A2</msClassmark>
<serviceCentre>91521230</serviceCentre>
<recordingEntity>915212110100</recordingEntity>
<location>
<locationAreaCode>001B</locationAreaCode>
<cellIdentifier>6983</cellIdentifier>
</location>
<messageReference>01</messageReference>
<originationTime>0912021535412B0300</originationTime>
<destinationNumber>8111F1</destinationNumber>
<systemType>
<gERAN/>
</systemType>
<basicService>
<teleservice>22</teleservice>
</basicService>
<additionalChgInfo>
<chargeIndicator>2</chargeIndicator>
</additionalChgInfo>
<chargedParty>
<callingParty/>
</chargedParty>
<orgRNCorBSCId>8F1A</orgRNCorBSCId>
<orgMSCId>921A</orgMSCId>
<globalAreaID>36F705001B6983</globalAreaID>
<subscriberCategory>0A</subscriberCategory>
<firstmccmnc>36F705</firstmccmnc>
<smsUserDataType>FF</smsUserDataType>
<callReference>1701BED4FF</callReference>
</moSMSRecord>
<ssActionRecord>
<recordType>10</recordType>
<servedIMSI>36570000636448F8</servedIMSI>
<servedIMEI>53246030714961F0</servedIMEI>
<servedMSISDN>915212056928F8</servedMSISDN>
<msClassmark>3018A1</msClassmark>
<recordingEntity>915212110100</recordingEntity>
<location>
<locationAreaCode>000C</locationAreaCode>
<cellIdentifier>05A5</cellIdentifier>
</location>
<supplService>FF</supplService>
<ssAction>
<ussdInvocation/>
</ssAction>
<ssActionTime>0912021535412B0300</ssActionTime>
<ssParameters>
<unstructuredData>AA5C2E3702</unstructuredData>
</ssParameters>
<callReference>1701BED500</callReference>
<systemType>
<gERAN/>
</systemType>
<ussdCodingScheme>0F</ussdCodingScheme>
<ussdString>
<UssdString>AA5C2E3702</UssdString>
</ussdString>
<ussdRequestCounter>1</ussdRequestCounter>
<additionalChgInfo>
<chargeIndicator>1</chargeIndicator>
</additionalChgInfo>
<orgRNCorBSCId>8E1A</orgRNCorBSCId>
<orgMSCId>921A</orgMSCId>
<globalAreaID>36F705000C05A5</globalAreaID>
<subscriberCategory>0A</subscriberCategory>
<firstmccmnc>36F705</firstmccmnc>
</ssActionRecord>
<moCallRecord>
<recordType>0</recordType>
<servedIMSI>36570000807501F5</servedIMSI>
<servedIMEI>53246030713955F0</servedIMEI>
<servedMSISDN>915212157901F0</servedMSISDN>
<callingNumber>A151911700</callingNumber>
<calledNumber>8151677589</calledNumber>
<roamingNumber>A111113850</roamingNumber>
<recordingEntity>915212110100</recordingEntity>
<mscIncomingROUTE>
<rOUTEName>HWBSC2</rOUTEName>
</mscIncomingROUTE>
<mscOutgoingROUTE>
<rOUTEName>HWBSC2</rOUTEName>
</mscOutgoingROUTE>
<location>
<locationAreaCode>0006</locationAreaCode>
<cellIdentifier>0C2F</cellIdentifier>
</location>
<basicService>
<teleservice>11</teleservice>
</basicService>
<msClassmark>3319A1</msClassmark>
<answerTime>0912021535382B0300</answerTime>
<releaseTime>0912021535422B0300</releaseTime>
<callDuration>4</callDuration>
<radioChanRequested>
<dualFullRatePreferred/>
</radioChanRequested>
<radioChanUsed>
<halfRate/>
</radioChanUsed>
<causeForTerm>0</causeForTerm>
<diagnostics>
<gsm0408Cause>144</gsm0408Cause>
</diagnostics>
<callReference>1701BED501</callReference>
<additionalChgInfo>
<chargeIndicator>2</chargeIndicator>
</additionalChgInfo>
<gsm-SCFAddress>915212110130</gsm-SCFAddress>
<serviceKey>1</serviceKey>
<networkCallReference>171D555132</networkCallReference>
<mSCAddress>915212110100</mSCAddress>
<speechVersionSupported>25</speechVersionSupported>
<speechVersionUsed>21</speechVersionUsed>
<numberOfDPEncountered>3</numberOfDPEncountered>
<levelOfCAMELService>01</levelOfCAMELService>
<freeFormatData>800130</freeFormatData>
<systemType>
<gERAN/>
</systemType>
<classmark3>C000</classmark3>
<chargedParty>
<callingParty/>
</chargedParty>
<mscOutgoingCircuit>1051</mscOutgoingCircuit>
<orgRNCorBSCId>8E1A</orgRNCorBSCId>
<orgMSCId>921A</orgMSCId>
<calledIMSI>36570000635618F8</calledIMSI>
<globalAreaID>36F70500060C2F</globalAreaID>
<subscriberCategory>0A</subscriberCategory>
<firstmccmnc>36F705</firstmccmnc>
<lastmccmnc>36F705</lastmccmnc>
</moCallRecord>
<mtCallRecord>
<recordType>1</recordType>
<servedIMSI>36570000635618F8</servedIMSI>
<servedIMEI>53464010474309F0</servedIMEI>
<servedMSISDN>915212755697F8</servedMSISDN>
<callingNumber>A151911700</callingNumber>
<recordingEntity>915212110100</recordingEntity>
<mscIncomingROUTE>
<rOUTEName>HWBSC2</rOUTEName>
</mscIncomingROUTE>
<mscOutgoingROUTE>
<rOUTEName>HWBSC2</rOUTEName>
</mscOutgoingROUTE>
<location>
<locationAreaCode>0006</locationAreaCode>
<cellIdentifier>0C2D</cellIdentifier>
</location>
<basicService>
<teleservice>11</teleservice>
</basicService>
<supplServicesUsed>
<SuppServiceUsedid>
<ssCode>11</ssCode>
<ssTime>0912021535382B0300</ssTime>
</SuppServiceUsedid>
</supplServicesUsed>
<msClassmark>331981</msClassmark>
<answerTime>0912021535382B0300</answerTime>
<releaseTime>0912021535422B0300</releaseTime>
<callDuration>4</callDuration>
<radioChanRequested>
<dualFullRatePreferred/>
</radioChanRequested>
<radioChanUsed>
<halfRate/>
</radioChanUsed>
<causeForTerm>0</causeForTerm>
<diagnostics>
<gsm0408Cause>144</gsm0408Cause>
</diagnostics>
<callReference>1701BED502</callReference>
<additionalChgInfo>
<chargeIndicator>2</chargeIndicator>
</additionalChgInfo>
<networkCallReference>171D555132</networkCallReference>
<mSCAddress>915212110100</mSCAddress>
<speechVersionSupported>25</speechVersionSupported>
<speechVersionUsed>21</speechVersionUsed>
<systemType>
<gERAN/>
</systemType>
<classmark3>C000</classmark3>
<chargedParty>
<calledParty/>
</chargedParty>
<roamingNumber>A111113850</roamingNumber>
<mscIncomingCircuit>9119</mscIncomingCircuit>
<orgRNCorBSCId>8E1A</orgRNCorBSCId>
<orgMSCId>921A</orgMSCId>
<globalAreaID>36F70500060C2D</globalAreaID>
<subscriberCategory>0A</subscriberCategory>
<firstmccmnc>36F705</firstmccmnc>
<lastmccmnc>36F705</lastmccmnc>
</mtCallRecord>
<incGatewayRecord>
<recordType>3</recordType>
<callingNumber>A17005991565</callingNumber>
<calledNumber>A1853643F7</calledNumber>
<recordingEntity>915212110100</recordingEntity>
<mscIncomingROUTE>
<rOUTEName>ZPSTN</rOUTEName>
</mscIncomingROUTE>
<mscOutgoingROUTE>
<rOUTEName>ZTEBSC3</rOUTEName>
</mscOutgoingROUTE>
<answerTime>0912021535302B0300</answerTime>
<releaseTime>0912021535422B0300</releaseTime>
<callDuration>12</callDuration>
<causeForTerm>0</causeForTerm>
<diagnostics>
<gsm0408Cause>144</gsm0408Cause>
</diagnostics>
<callReference>2203AFBF84</callReference>
<basicService>
<teleservice>11</teleservice>
</basicService>
<additionalChgInfo>
<chargeIndicator>2</chargeIndicator>
</additionalChgInfo>
<roamingNumber>A111111980</roamingNumber>
<mscIncomingCircuit>934</mscIncomingCircuit>
<orgMSCId>921A</orgMSCId>
<mscIncomingRouteAttribute>
<isup/>
</mscIncomingRouteAttribute>
<networkCallReference>22432B5132</networkCallReference>
</incGatewayRecord>
<outGatewayRecord>
<recordType>4</recordType>
<callingNumber>A151012431</callingNumber>
<calledNumber>817026936873</calledNumber>
<recordingEntity>915212110100</recordingEntity>
<mscIncomingROUTE>
<rOUTEName>HWBSC</rOUTEName>
</mscIncomingROUTE>
<mscOutgoingROUTE>
<rOUTEName>ZPSTN</rOUTEName>
</mscOutgoingROUTE>
<answerTime>0912021535192B0300</answerTime>
<releaseTime>0912021535432B0300</releaseTime>
<callDuration>24</callDuration>
<causeForTerm>0</causeForTerm>
<diagnostics>
<gsm0408Cause>144</gsm0408Cause>
</diagnostics>
<callReference>2303B19880</callReference>
<basicService>
<teleservice>11</teleservice>
</basicService>
<additionalChgInfo>
<chargeIndicator>2</chargeIndicator>
</additionalChgInfo>
<mscOutgoingCircuit>398</mscOutgoingCircuit>
<orgMSCId>921A</orgMSCId>
<mscOutgoingRouteAttribute>
<isup/>
</mscOutgoingRouteAttribute>
<networkCallReference>238BE55132</networkCallReference>
</outGatewayRecord>
</callEventRecords>
<trailerRecord>
<productionDateTime>0912021247512B0300</productionDateTime>
<recordingEntity>00</recordingEntity>
<firstCallDateTime>000000000000000000</firstCallDateTime>
<lastCallDateTime>000000000000000000</lastCallDateTime>
<noOfRecords>521</noOfRecords>
<extensions/>
</trailerRecord>
<extensions/>
</CallEventDataFile>
Schema File generated by Dataset:
<?xml version="1.0" standalone="yes"?>
<xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xs:element name="location">
<xs:complexType>
<xs:sequence>
<xs:element name="locationAreaCode" type="xs:string" minOccurs="0" />
<xs:element name="cellIdentifier" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="systemType">
<xs:complexType>
<xs:sequence>
<xs:element name="gERAN" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="basicService">
<xs:complexType>
<xs:sequence>
<xs:element name="teleservice" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="additionalChgInfo">
<xs:complexType>
<xs:sequence>
<xs:element name="chargeIndicator" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="chargedParty">
<xs:complexType>
<xs:sequence>
<xs:element name="calledParty" type="xs:string" minOccurs="0" />
<xs:element name="callingParty" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="mscIncomingROUTE">
<xs:complexType>
<xs:sequence>
<xs:element name="rOUTEName" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="mscOutgoingROUTE">
<xs:complexType>
<xs:sequence>
<xs:element name="rOUTEName" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="radioChanRequested">
<xs:complexType>
<xs:sequence>
<xs:element name="dualFullRatePreferred" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="radioChanUsed">
<xs:complexType>
<xs:sequence>
<xs:element name="halfRate" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="diagnostics">
<xs:complexType>
<xs:sequence>
<xs:element name="gsm0408Cause" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CallEventDataFile">
<xs:complexType>
<xs:sequence>
<xs:element name="extensions" type="xs:string" minOccurs="0" />
<xs:element name="headerRecord" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="productionDateTime" type="xs:string" minOccurs="0" />
<xs:element name="recordingEntity" type="xs:string" minOccurs="0" />
<xs:element name="extensions" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="callEventRecords" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="mtSMSRecord" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="recordType" type="xs:string" minOccurs="0" />
<xs:element name="serviceCentre" type="xs:string" minOccurs="0" />
<xs:element name="servedIMSI" type="xs:string" minOccurs="0" />
<xs:element name="servedIMEI" type="xs:string" minOccurs="0" />
<xs:element name="servedMSISDN" type="xs:string" minOccurs="0" />
<xs:element name="msClassmark" type="xs:string" minOccurs="0" />
<xs:element name="recordingEntity" type="xs:string" minOccurs="0" />
<xs:element name="deliveryTime" type="xs:string" minOccurs="0" />
<xs:element name="orgRNCorBSCId" type="xs:string" minOccurs="0" />
<xs:element name="orgMSCId" type="xs:string" minOccurs="0" />
<xs:element name="globalAreaID" type="xs:string" minOccurs="0" />
<xs:element name="subscriberCategory" type="xs:string" minOccurs="0" />
<xs:element name="firstmccmnc" type="xs:string" minOccurs="0" />
<xs:element name="smsUserDataType" type="xs:string" minOccurs="0" />
<xs:element name="origination" type="xs:string" minOccurs="0" />
<xs:element name="callReference" type="xs:string" minOccurs="0" />
<xs:element ref="location" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="systemType" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="basicService" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="additionalChgInfo" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="chargedParty" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="moSMSRecord" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="recordType" type="xs:string" minOccurs="0" />
<xs:element name="servedIMSI" type="xs:string" minOccurs="0" />
<xs:element name="servedIMEI" type="xs:string" minOccurs="0" />
<xs:element name="servedMSISDN" type="xs:string" minOccurs="0" />
<xs:element name="msClassmark" type="xs:string" minOccurs="0" />
<xs:element name="serviceCentre" type="xs:string" minOccurs="0" />
<xs:element name="recordingEntity" type="xs:string" minOccurs="0" />
<xs:element name="messageReference" type="xs:string" minOccurs="0" />
<xs:element name="originationTime" type="xs:string" minOccurs="0" />
<xs:element name="destinationNumber" type="xs:string" minOccurs="0" />
<xs:element name="orgRNCorBSCId" type="xs:string" minOccurs="0" />
<xs:element name="orgMSCId" type="xs:string" minOccurs="0" />
<xs:element name="globalAreaID" type="xs:string" minOccurs="0" />
<xs:element name="subscriberCategory" type="xs:string" minOccurs="0" />
<xs:element name="firstmccmnc" type="xs:string" minOccurs="0" />
<xs:element name="smsUserDataType" type="xs:string" minOccurs="0" />
<xs:element name="callReference" type="xs:string" minOccurs="0" />
<xs:element ref="location" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="systemType" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="basicService" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="additionalChgInfo" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="chargedParty" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ssActionRecord" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="recordType" type="xs:string" minOccurs="0" />
<xs:element name="servedIMSI" type="xs:string" minOccurs="0" />
<xs:element name="servedIMEI" type="xs:string" minOccurs="0" />
<xs:element name="servedMSISDN" type="xs:string" minOccurs="0" />
<xs:element name="msClassmark" type="xs:string" minOccurs="0" />
<xs:element name="recordingEntity" type="xs:string" minOccurs="0" />
<xs:element name="supplService" type="xs:string" minOccurs="0" />
<xs:element name="ssActionTime" type="xs:string" minOccurs="0" />
<xs:element name="callReference" type="xs:string" minOccurs="0" />
<xs:element name="ussdCodingScheme" type="xs:string" minOccurs="0" />
<xs:element name="ussdRequestCounter" type="xs:string" minOccurs="0" />
<xs:element name="orgRNCorBSCId" type="xs:string" minOccurs="0" />
<xs:element name="orgMSCId" type="xs:string" minOccurs="0" />
<xs:element name="globalAreaID" type="xs:string" minOccurs="0" />
<xs:element name="subscriberCategory" type="xs:string" minOccurs="0" />
<xs:element name="firstmccmnc" type="xs:string" minOccurs="0" />
<xs:element ref="location" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="ssAction" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="ussdInvocation" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ssParameters" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="unstructuredData" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="systemType" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="ussdString" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="UssdString" type="xs:string" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element ref="additionalChgInfo" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="moCallRecord" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="recordType" type="xs:string" minOccurs="0" />
<xs:element name="servedIMSI" type="xs:string" minOccurs="0" />
<xs:element name="servedIMEI" type="xs:string" minOccurs="0" />
<xs:element name="servedMSISDN" type="xs:string" minOccurs="0" />
<xs:element name="callingNumber" type="xs:string" minOccurs="0" />
<xs:element name="calledNumber" type="xs:string" minOccurs="0" />
<xs:element name="roamingNumber" type="xs:string" minOccurs="0" />
<xs:element name="recordingEntity" type="xs:string" minOccurs="0" />
<xs:element name="msClassmark" type="xs:string" minOccurs="0" />
<xs:element name="answerTime" type="xs:string" minOccurs="0" />
<xs:element name="releaseTime" type="xs:string" minOccurs="0" />
<xs:element name="callDuration" type="xs:string" minOccurs="0" />
<xs:element name="causeForTerm" type="xs:string" minOccurs="0" />
<xs:element name="callReference" type="xs:string" minOccurs="0" />
<xs:element name="gsm-SCFAddress" type="xs:string" minOccurs="0" />
<xs:element name="serviceKey" type="xs:string" minOccurs="0" />
<xs:element name="networkCallReference" type="xs:string" minOccurs="0" />
<xs:element name="mSCAddress" type="xs:string" minOccurs="0" />
<xs:element name="speechVersionSupported" type="xs:string" minOccurs="0" />
<xs:element name="speechVersionUsed" type="xs:string" minOccurs="0" />
<xs:element name="numberOfDPEncountered" type="xs:string" minOccurs="0" />
<xs:element name="levelOfCAMELService" type="xs:string" minOccurs="0" />
<xs:element name="freeFormatData" type="xs:string" minOccurs="0" />
<xs:element name="classmark3" type="xs:string" minOccurs="0" />
<xs:element name="mscOutgoingCircuit" type="xs:string" minOccurs="0" />
<xs:element name="orgRNCorBSCId" type="xs:string" minOccurs="0" />
<xs:element name="orgMSCId" type="xs:string" minOccurs="0" />
<xs:element name="calledIMSI" type="xs:string" minOccurs="0" />
<xs:element name="globalAreaID" type="xs:string" minOccurs="0" />
<xs:element name="subscriberCategory" type="xs:string" minOccurs="0" />
<xs:element name="firstmccmnc" type="xs:string" minOccurs="0" />
<xs:element name="lastmccmnc" type="xs:string" minOccurs="0" />
<xs:element ref="mscIncomingROUTE" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="mscOutgoingROUTE" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="location" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="basicService" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="radioChanRequested" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="radioChanUsed" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="diagnostics" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="additionalChgInfo" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="systemType" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="chargedParty" minOccurs="0" maxOccurs="unbounded" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="mtCallRecord" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="recordType" type="xs:string" minOccurs="0" />
<xs:element name="servedIMSI" type="xs:string" minOccurs="0" />
<xs:element name="servedIMEI" type="xs:string" minOccurs="0" />
<xs:element name="servedMSISDN" type="xs:string" minOccurs="0" />
<xs:element name="callingNumber" type="xs:string" minOccurs="0" />
<xs:element name="recordingEntity" type="xs:string" minOccurs="0" />
<xs:element name="msClassmark" type="xs:string" minOccurs="0" />
<xs:element name="answerTime" type="xs:string" minOccurs="0" />
<xs:element name="releaseTime" type="xs:string" minOccurs="0" />
<xs:element name="callDuration" type="xs:string" minOccurs="0" />
<xs:element name="causeForTerm" type="xs:string" minOccurs="0" />
<xs:element name="callReference" type="xs:string" minOccurs="0" />
<xs:element name="networkCallReference" type="xs:string" minOccurs="0" />
<xs:element name="mSCAddress" type="xs:string" minOccurs="0" />
<xs:element name="speechVersionSupported" type="xs:string" minOccurs="0" />
<xs:element name="speechVersionUsed" type="xs:string" minOccurs="0" />
<xs:element name="classmark3" type="xs:string" minOccurs="0" />
<xs:element name="roamingNumber" type="xs:string" minOccurs="0" />
<xs:element name="mscIncomingCircuit" type="xs:string" minOccurs="0" />
<xs:element name="orgRNCorBSCId" type="xs:string" minOccurs="0" />
<xs:element name="orgMSCId" type="xs:string" minOccurs="0" />
<xs:element name="globalAreaID" type="xs:string" minOccurs="0" />
<xs:element name="subscriberCategory" type="xs:string" minOccurs="0" />
<xs:element name="firstmccmnc" type="xs:string" minOccurs="0" />
<xs:element name="lastmccmnc" type="xs:string" minOccurs="0" />
<xs:element ref="mscIncomingROUTE" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="mscOutgoingROUTE" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="location" minOccurs="0" maxOccurs="unbounded" />
<xs:element ref="basicService" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="supplServicesUsed" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="SuppServiceUsedid" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="ssCode" type="xs:string" minOccurs="0" />
<xs:element name="ssTime" type="xs:string" minOccurs="0" />
</xs:sequence>
Where and how do you want to import this XML file??
SQL Server 2005 and up has pretty extensive support for XQuery, which means you can extract bits of information from your XML using XPath.
Not knowing what you're trying to do, here's just a quick sample_
DECLARE #XmlContent XML
SET #XmlContent = '(put your XML here)'
SELECT
#XmlContent.value('(/CallEventDataFile/headerRecord/productionDateTime)[1]', 'varchar(50)') as 'Production DateTime',
#XmlContent.value('(/CallEventDataFile/headerRecord/recordingEntity)[1]', 'int') as 'Recording Entity'
With this XQuery syntax, you can extract pretty much everything from your XML and easily store it into a table column.
Also, if you need to enumerate a list of XML nodes that are inside a XML tag, you can use the .nodes() function on XML:
SELECT
mtsms.record.value('(recordType)[1]', 'int') as 'Record Type',
mtsms.record.value('(serviceCentre)[1]', 'varchar(100)') as 'Service Centre'
FROM
#XmlContents.nodes('//mtSMSRecord') AS mtsms(record)
With this statement, you could get a "virtual table" of all <mtSMSRecord> nodes in your XML as a table "mtsms" and column "record", and you could then extract detail information for each mtSMSRecord tag and store that into your relational tables, as needed.
A really good introduction to XML support in SQL Server 2005 and up is the An Overview of XML Support in SQL Server 2005 article on 15seconds. It shows you what XML functions are available and how to use them.