หากฉันมีประเภทที่ซับซ้อนจำนวนมากใน xsd ซึ่งยกตัวอย่างมีฟิลด์ทั่วไปอยู่จำนวนหนึ่ง เช่น 'id' หรือ 'ชื่อ' หรือ 'วันที่' หรือ 'any specificId' ซึ่งหมายความว่าประเภทเหล่านั้นค่อนข้างคล้ายกับแต่ละประเภท อื่น ๆ และมันจะเป็นฝันร้ายที่จะเพิ่มฟิลด์ทั่วไปหนึ่งฟิลด์ให้กับแต่ละฟิลด์อีกครั้ง เป็นไปได้ไหมที่จะกำหนดประเภทพื้นฐานสำหรับประเภทที่ซับซ้อน เพื่อให้ประเภทที่ซับซ้อนนี้จะขยายฟิลด์/รายการประเภทพาเรนต์ฐาน ในกรณีนั้น ฉันแค่เพิ่มฟิลด์ใหม่นี้ลงในประเภทพื้นฐาน ไม่ใช่เพิ่มให้กับฟิลด์ย่อยแต่ละรายการ เป็นไปได้ไหม?
องค์ประกอบหลายอย่างมีหลายอย่างเหมือนกันใน xsd schema
comment
ส่วนขยายไม่ใช่สิ่งที่ดีที่สุดเสมอไป หากคุณพบปัญหาที่เกี่ยวข้องกับข้อจำกัด การแปลสิ่งเหล่านั้นเป็นอ็อบเจ็กต์นั้นไม่สะอาด ดังนั้นการใช้โมเดลกลุ่ม (สำหรับองค์ประกอบ xsd:group และแอตทริบิวต์attributeGroup) จึงเป็นอีกทางเลือกหนึ่งที่คุณอาจต้องการพิจารณาเพื่อให้สามารถนำกลับมาใช้ใหม่ได้
- person Petru Gardea   schedule 16.03.2012
คำตอบ (2)
แน่นอนคุณควรใช้ส่วนขยายประเภท:
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="employee" type="fullpersoninfo"/>
<xs:complexType name="personinfo">
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="fullpersoninfo">
<xs:complexContent>
<xs:extension base="personinfo">
<xs:sequence>
<xs:element name="address" type="xs:string"/>
<xs:element name="city" type="xs:string"/>
<xs:element name="country" type="xs:string"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>
http://www.w3schools.com/schema/el_extension.asp
person
andbi
schedule
16.03.2012
การหาประเภทตามส่วนขยายเป็นวิธีหนึ่งในการแก้ไขปัญหานี้อย่างแน่นอน อีกแนวทางหนึ่งซึ่งบางครั้งอาจทำงานได้ดีกว่าคือการใช้กลุ่มแบบจำลองที่มีชื่อ วิธีนี้มีความยืดหยุ่นมากกว่า เช่น ไม่ได้กำหนดข้อจำกัดว่าองค์ประกอบทั่วไปต้องมาก่อนองค์ประกอบที่กำหนดเอง
person
Michael Kay
schedule
16.03.2012