Giả sử tôi có một số sơ đồ:Sử dụng XML Schema để mở rộng một yếu tố chứ không phải là một complexType
<xsd:schema ...>
<xsd:element name="foo">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="fooElement" type="xs:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
này quy định một số yếu tố trong đó có foo
bên trong nó một số yếu tố fooElement
với kiểu chuỗi. Bây giờ tôi muốn mở rộng phần tử foo
cũng có một phần tử barElement
và gọi phần mở rộng này bar
.
Để làm phức tạp mọi thứ, hãy giả sử người khác đã xác định foo
và không thể thay đổi giản đồ. Trong khi ví dụ ở đây là tầm thường, chúng ta cũng giả sử rằng nội dung của foo
có thể phức tạp hơn và việc xác định lược đồ mới không đơn giản như việc sao chép phần tử fooElement
.
có hiệu quả, tôi muốn định nghĩa một schema mới:
<xsd:schema xmlns:fns="otherschema" ...>
<xsd:import namespace="otherschema" />
<xsd:element name="bar">
<xsd:complexContent>
<xsd:extension base="fns:foo">
<xsd:sequence>
<xsd:element name="barElement" type="xs:string" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:element>
</xsd:schema>
Thật không may <xsd:extension>
's base
thuộc tính chỉ chấp nhận lập luận kiểu XSD, không yếu tố. Làm cách nào để mở rộng một phần tử? (Tôi có thể mở rộng một phần tử không?)
Câu hỏi hay, tôi muốn làm điều tương tự - và tôi hoài nghi rằng dường như không thể. Khùng! –