关于表关系的SQLXMLBulkLoad查询
我创建了以下模式:关于表关系的SQLXMLBulkLoad查询,sql,sqlxml,bulk-load,Sql,Sqlxml,Bulk Load,我创建了以下模式: <?xml version="1.0" encoding="utf-8"?> <xsd:schema id="InventorAssembly" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sql="urn:schemas-microsoft-com:mapping-schema" > <xsd:annotation> &l
<?xml version="1.0" encoding="utf-8"?>
<xsd:schema id="InventorAssembly"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sql="urn:schemas-microsoft-com:mapping-schema"
>
<xsd:annotation>
<xsd:appinfo>
<sql:relationship name="InventorDocuments"
parent="Customer.Projects"
parent-key="Customer.ProjectID"
child="Projects.Documents"
child-key="DocumentID"
/>
<sql:relationship name="Properties"
parent="InventorDocuments"
parent-key="DocumentID"
child="InventorDocuments.Properties"
child-key="DocumentID"
/>
</xsd:appinfo>
</xsd:annotation>
<xsd:element name="root" type="InventorDocumentType" sql:relationship="InventorDocuments" />
<xsd:complexType name="ReferencedDocumentsList">
<xsd:sequence>
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element name="document" type="InventorDocumentType" minOccurs="0" maxOccurs="unbounded"/>
<!--<xsd:element name="assembly" type="InventorAssemblyType" minOccurs="0" maxOccurs="unbounded"/>-->
</xsd:choice>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="InventorDocumentType">
<xsd:sequence>
<!-- added the following to see if we can nest the resultant XML under the properties and components headings. -->
<xsd:element name="Properties" sql:is-constant="1">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="property"
type="InventorPropertyType"
minOccurs="0"
maxOccurs="unbounded"
sql:relationship="Properties"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="ReferencedDocuments" type="ReferencedDocumentsList" sql:is-constant="1" />
</xsd:sequence>
<xsd:attribute type="xsd:string" name="ID" use="required" sql:field="DocumentID"/>
<xsd:attribute type="xsd:string" name="DocumentType" use="required" sql:field="DocumentType"/>
<xsd:attribute type="xsd:string" name="Filename" use="required" sql:field="FileName"/>
<xsd:attribute type="xsd:string" name="ReferencingDocument" use="optional" sql:field="ReferencingDocument"/>
<xsd:attribute type="xsd:string" name="ParameterCount" use="optional" sql:field="ParameterCount"/>
<xsd:attribute type="xsd:string" name="FeatureCount" use="optional" sql:field="FeatureCount"/>
<xsd:attribute type="xsd:string" name="ConstraintCount" use="optional" sql:field="ConstraintCount"/>
<xsd:attribute type="xsd:string" name="OccurrenceCount" use="optional" sql:field="OccurrenceCount"/>
</xsd:complexType>
<xsd:complexType name="InventorPropertyType">
<xsd:attribute type="xsd:string" name="ParentDocumentID" sql:field="DocumentID"/>
<xsd:attribute type="xsd:string" name="Name" sql:field="PropertyName"/>
<xsd:attribute type="xsd:string" name="Value" sql:field="PropertyValue"/>
<xsd:attribute type="xsd:string" name="Type" sql:field="PropertyType"/>
<xsd:attribute type="xsd:integer" name="PropertyID" sql:field="PropertyID"/>
</xsd:complexType>
</xsd:schema>
这使我能够创建这种结构化XML文件:
<?xml version="1.0" encoding="utf-8"?>
<root xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ID="1" DocumentType="kAssemblyDocumentObject" Filename="C:\GDR518.iam" ReferencingDocument="Top Level Assembly" ParameterCount="63" FeatureCount="0" ConstraintCount="38" OccurrenceCount="276">
<Properties>
<property ParentDocumentID="1" Name="Description" Value="" PropertyID="ac262fc9-edaf-4570-9b98-42fcb8e1cee9" />
<property ParentDocumentID="1" Name="Part Number" Value="GDR518" Type="String" PropertyID="7b0a8ec2-0b69-40bc-8ae5-d63304ca9378" />
</Properties>
<ReferencedDocuments>
<document ID="4" DocumentType="kAssemblyDocumentObject" Filename="C:\WLD-HF-004.iam" ReferencingDocument="C:\GDR518.iam" ParameterCount="0" FeatureCount="0" ConstraintCount="0" OccurrenceCount="0">
<Properties>
<property ParentDocumentID="4" Name="Description" Value="" PropertyID="846183dd-cc3f-4e24-8e86-dc785fbbab28" />
</Properties>
<ReferencedDocuments />
</document>
<document ID="12" DocumentType="kAssemblyDocumentObject" Filename="C:\GDR520.iam" ReferencingDocument="C:\GDR518.iam" ParameterCount="59" FeatureCount="0" ConstraintCount="42" OccurrenceCount="146">
<Properties>
<property ParentDocumentID="12" Name="Description" Value="" PropertyID="7f6c2de8-dcb6-471c-aa90-8d69b02e61f1" />
</Properties>
<ReferencedDocuments>
<document ID="13" DocumentType="kAssemblyDocumentObject" Filename="C:\WLD-HF-009.iam" ReferencingDocument="C:\GDR520.iam" ParameterCount="0" FeatureCount="0" ConstraintCount="0" OccurrenceCount="0">
<Properties>
<property ParentDocumentID="13" Name="Description" Value="" PropertyID="436ba462-6d54-433c-a435-197bdd4089d8" />
</Properties>
<ReferencedDocuments />
</document>
<Properties>
<property ParentDocumentID="18" Name="Description" Value="" PropertyID="5ced04aa-ec51-4060-a8eb-d23905e694ed" />
</Properties>
</document>
</ReferencedDocuments>
</document>
</ReferencedDocuments>
</root>
这一切都很好,但当我尝试使用SQLXMLBulkLoad.Execute将上面的XML数据拉入空数据库时,出现以下错误:
架构:“属性”上关系的父/子表不存在
不匹配
我已经尝试了我能想到的每一种方法来让它工作,但是没有用
有人能提供一些建议吗
提前感谢,
亚历克斯