XML
<copyright>&company; &department; &student_number; &developer;</copyright>XSD
<xsd:element name="copyright" type="xsd:ENTITY">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="©right" />
<xsd:element ref="&department" />
<xsd:element ref="&student_number" />
<xsd:element ref="&developer" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="©right">
..... ENTITY description ......
</xsd:element>我试试看。但是不要工作..。
如何在XSD中使用实体??我在找谷歌,XML图书等等。但我找不到..。
发布于 2013-11-23 14:07:11
在我看来,您似乎试图在模式中声明某些实体--这是不可能的,实体必须在DTD中声明,而不是模式。
xsd:ENTITY类型的目的是声明特定属性是指在文档的DTD中声明的未解析实体:
<!DOCTYPE example [
<!NOTATION png SYSTEM "PNG">
<!ENTITY photoOfIan SYSTEM "ian-photo.png" NDATA png>
]>
<example>
<person name="Ian Roberts" picture="photoOfIan" />
</example>我认为在XML中不可能说特定属性值必须是对普通解析实体的引用,因为模式验证了在扩展了&xxxxx;实体引用之后获得的内容。
发布于 2013-11-23 09:52:18
1)保留字符"&“、"<”、">“,禁止使用元素及其值的名称。您必须从名称声明中删除字符"&“。
2)您错误地声明了类型。您应该使用属性"type“或”俄罗斯娃娃“声明。只选择一个:
<xsd:element name="copyright" type="xsd:ENTITY"/>
或
<xsd:element name="copyright">
<xsd:complexType>
<xsd:sequence>
...element declaration...
</xsd:sequence>
</xsd:complexType>
我认为你所做的并不是你所需要的。XSD方案
<xsd:element name="copyright"> <xsd:complexType> <xsd:sequence> <xsd:element name="copyright" type="xsd:string" /> <xsd:element name="department" type="xsd:string" /> <xsd:element name="student_number" type="xsd:string" /> <xsd:element name="developer" type="xsd:string" /> </xsd:sequence> </xsd:complexType> </xsd:element>
翻译成本文件:
<copyright>
<copyright>string</copyright>
<department>string</department>
<student_number>string</student_number>
<developer>string</developer>
</copyright>4)如果您希望获得一个连接字符串,则需要定义一个具有简单字符串类型的元素,并在应用程序端定义一个元素来组合insert值。XML不允许做您想做的事情。
https://stackoverflow.com/questions/20157113
复制相似问题