1
내 데이터의 하위 요소가 스키마의 상위 요소 인 요소가 아닌 루트 요소에서 직접 쓰여지고 있습니다.xsd.exe에 의해 생성 된 DataSet이 루트 요소에 특성을 쓰지 않습니다.
내 XSD :
<xs:schema xmlns="MyNameSpace" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="MyNameSpace" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.0">
<xs:import/>
<xs:element name="DataFile">
<xs:complexType>
<xs:sequence>
<xs:element name="LastUpdatedBy" type="xs:string"/>
<xs:element name="DateTimeLastUpdate" type="xs:dateTime"/>
<xs:element name="DataValues" maxOccurs="unbounded">
<xs:complexType>
<xs:all>
<xs:element name="Num1" type="xs:int"/>
<xs:element name="Num2" type="xs:int"/>
</xs:all>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
내 입력 파일 :
저장됩니다 무엇<DataFile xmlns="MyNameSpace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="MyNameSpace MySchema.xsd">
<LastUpdatedBy>Dan</LastUpdatedBy>
<DateTimeLastUpdate>2009-12-07T16:40:30.0Z</DateTimeLastUpdate>
<DataValues>
<Num1>0</Num1>
<Num2>0</Num2>
</DataValues>
<DataValues>
<Num1>2</Num1>
<Num2>0</Num2>
</DataValues>
</DataFile>
의 xmlns
<DataFile xmlns="MyNameSpace">
<LastUpdatedBy>Dan</LastUpdatedBy>
<DateTimeLastUpdate>2009-12-07T16:40:30.0Z</DateTimeLastUpdate>
<DataValues>
<Num1>0</Num1>
<Num2>0</Num2>
</DataValues>
<DataValues>
<Num1>2</Num1>
<Num2>0</Num2>
</DataValues>
</DataFile>
MyDataSet.WriteXml(filename)
의 : XSI와 XSI :의 schemaLocation 속성은 기록되지 않습니다. 그들을 보존하기 위해 내가해야 할 일은 무엇입니까? MyDataSet.WriteXml(filename, XmlWriteMode.WriteSchema);
에 대해 그 전체 스키마를 포함하지만 무엇
그저 잘못된 것이 있습니다. 스키마에서 대부분의 요소 값에 대한 제한을 잃습니다 (길이로 인해 위에 표시되지 않음). 그런 다음 데이터와 변환 된 스키마가 모두 포함 된 MyDataSet.DataSetName이라는 이름의 새 최상위 요소를 만듭니다. 그런 다음 버전을 제외한 xsd의 모든 특성을 가진 요소와 xs : schema ID = "MyDataSet.DataSetName"xmlns : mstns = "MyNameSpace"xmlns : msdata = "urn : schemas-microsoft-com : xml-msdata " –
나는 청소하는 것을 좋아합니다. –
적어도 기본적으로 DataSet.WriteXml()과 똑같은 일을합니다. –