ฉันใช้XML Data Binding Wizard
ในDelphi XE2
. สคีมาต้องใช้แท็กประเภทนี้:
<xs:element name="MyReport" type="MyReportType" />
<xs:complexType name="MyReportType">
<xs:all>
<xs:element name="Header" type="HeaderType" />
<xs:element name="Values" type="ValuesType" />
<xs:element name="Events" type="EventsType" />
</xs:all>
</xs:complexType>
ปัญหาคือถ้าฉันไม่เพิ่มองค์ประกอบใด ๆ ในเช่นValues
-group จะไม่มี<Values>
-tag และไฟล์ XML จะล้มเหลวในการตรวจสอบกับไฟล์XSD
. นี่อาจจะไม่เป็นปัญหาหากอินเทอร์เฟซมีวิธีการ "เพิ่ม" Values
-tag
มีวิธีการมาตรฐานในการจัดการสิ่งนี้หรือฉันใช้รหัสที่สร้างขึ้นอย่างถูกต้อง?
ใส่เพียงจะมีใด ๆวิธีการทำงานรอบหรือมิฉะนั้นใช้รหัสจากที่Data Binding Wizard
ในการผลิตต่อไปนี้XML
(ซึ่งเป็นสิ่งที่จำเป็นในการตรวจสอบโดยใช้สคีมาข้างต้นเมื่อไม่มีโหนดลูก) ให้HeaderType
, ValuesType
และEventsType
มี complexType :
<MyReport>
<Header />
<Values />
<Events />
</MyReport>
(ฉันรู้ว่ามีปัญหาอื่น ๆ ที่คล้ายกันเช่นรหัสที่สร้างขึ้นโดย<xs:sequence>
ไม่บังคับใช้คำสั่งที่ถูกต้องในXML
ไฟล์สุดท้ายแต่อย่างน้อยสำหรับปัญหานั้นก็มีวิธีแก้ไขโดยเพียงแค่ใส่ลูกตามลำดับที่ถูกต้องฉันยังคิดว่า คงจะดีไม่น้อยหากEmbarcadero
มีอินเทอร์เฟซที่สมบูรณ์ซึ่งต้องคำนึงถึงคุณสมบัติเหล่านี้มากกว่า)