좋습니다. 스키마 추론을 사용하여 XSD 파일을 생성 한 다음 xsd.exe를 실행하여 찾고있는 DataSet을 생성해야합니다.
먼저 루트 노드가 없기 때문에 제공 한 XML은 박쥐에서 작동하지 않습니다. 여기 야생 추측을 데려 갈거야,하지만 <products>
가 루트 노드 인 경우, 우리는 다음과 같이 당신의 XML 포맷 수 : 우리는 다음이 XML을하고 XmlSchemaInference
클래스를 통해 그것의 XSD를 추론 할 수
<products>
<product id="1">
<photos>
<photo addr="1.jpg" />
</photos>
<parameters>
<parameter name="name1" />
</parameters>
</product>
<product id="2">
<photos>
<photo addr="2.jpg" />
</photos>
<parameters>
<parameter name="name2" />
</parameters>
</product>
</products>
을 . 나는 위의 XML의 스키마를 유추 할 때, 나는이있어 :
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="products">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" name="product">
<xs:complexType>
<xs:sequence>
<xs:element name="photos">
<xs:complexType>
<xs:sequence>
<xs:element name="photo">
<xs:complexType>
<xs:attribute name="addr" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="parameters">
<xs:complexType>
<xs:sequence>
<xs:element name="parameter">
<xs:complexType>
<xs:attribute name="name" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
나는 다음 원래 XML을 나타내는 나에게 DataSet
완전한 기능을 준/데이터 세트 옵션으로 xsd.exe
을 달렸다. 데이터 집합을 채우고 DataSet.GetXml()
을 사용하면 예상되는 XML 결과가 반환됩니다.
최종 참고 사항 : 도메인 개체 등을 통해 DataSets를 사용하는 것을지지하지 않습니다. 귀하의 명시된 목표를 달성하기위한 단계가 무엇인지 보여 드리고 싶습니다.
이 부분은 "DataSet에서 값을 가져 오려고하면 모든 네임 스페이스에 새 테이블을 제공합니다."라는 질문을 던집니다. 별로 의미가 없습니다. 그거 정리 해줄 수 있니? –
어쩌면 이제는 더 명확 해졌습니다 – Ignas
데이터 셋의 xml을로드/저장하면 실제로 데이터 세트에있는 데이터를 저장 한 다음 해당 XML 파일에서 데이터를 다시로드하는 방식으로 끝까지 수행하기를 원합니다. 데이터 집합 개체에 의해. –