我有以下xml:
<?xml version="1.0"?>
<BookStore xmlns="http://www.books.org"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://www.books.org
BookStore.xsd">
<Book category="Life style">
<Status>Available</Status>
<Title lang="en">Hour before dawn</Title>
<Author>
<Name>Paul McCartney</Name>
<Genre>M</Genre>
</Author>
<Date>
<Day>23</Day>
<Month>03</Month>
<Year>1999</Year>
</Date>
<Price type="euro">29.99</Price>
<ISBN>1-56592-245-2</ISBN>
<Publisher>McMilli Publishing</Publisher>
</Book>
<Book category="Philosophy">
<Status>Not available</Status>
<Title lang="de">Thus spoke Zarathustra</Title>
<Author>
<Name>Friedrich Nietzsche</Name>
<Genre>M</Genre>
</Author>
<Date>
<Day>21</Day>
<Month>11</Month>
<Year>1877</Year>
</Date>
<Price type="euro">39.15</Price>
<ISBN>0-440-34319-4</ISBN>
<Publisher>Sell Publishing Co.</Publisher>
</Book>
<Book category="Fiction">
<Status>Available</Status>
<Title lang="en">To kill a mockingbird</Title>
<Author>
<Name>Harper Lee</Name>
<Genre>M</Genre>
</Author>
<Date>
<Day>15</Day>
<Month>03</Month>
<Year>1982</Year>
</Date>
<Price type="euro">35.15</Price>
<ISBN>0-454-25215-8</ISBN>
<Publisher>Harper Row</Publisher>
</Book>
<Book category="Fantasy">
<Status>Available</Status>
<Title lang="en">Hexed</Title>
<Author>
<Name>Ilona Andrews</Name>
<Genre>F</Genre>
</Author>
<Author>
<Name>Yasmine Galenorn</Name>
<Genre>F</Genre>
</Author>
<Author>
<Name>Allyson James</Name>
<Genre>F</Genre>
</Author>
<Author>
<Name>Jeanne Stein</Name>
<Genre>F</Genre>
</Author>
<Date>
<Day>01</Day>
<Month>01</Month>
<Year>2011</Year>
</Date>
<Price type="euro">19.8</Price>
<ISBN>3-521-77423-9</ISBN>
<Publisher>Harper & Row</Publisher>
</Book>
<Book category="Web">
<Status>Not available</Status>
<Title lang="en">SCJP Sun certified programmer for Java 6</Title>
<Author>
<Name>Kathy Sierra</Name>
<Genre>F</Genre>
</Author>
<Author>
<Name>Bert Bates</Name>
<Genre>M</Genre>
</Author>
<Date>
<Day>06</Day>
<Month>09</Month>
<Year>2011</Year>
</Date>
<Price type="euro">55</Price>
<ISBN>2-421-52214-1</ISBN>
<Publisher>Learnkey</Publisher>
</Book>
<Book category="Horror">
<Status>Available</Status>
<Title lang="en">Out of the depths</Title>
<Author>
<Name>Cathy MacPhail</Name>
<Genre>F</Genre>
</Author>
<Date>
<Day>08</Day>
<Month>12</Month>
<Year>2013</Year>
</Date>
<Price type="euro">41</Price>
<ISBN>7-666-21242-7</ISBN>
<Publisher>Greenock</Publisher>
</Book>
<Book category="Art and design">
<Status>Available</Status>
<Title lang="en">The design of everyday things</Title>
<Author>
<Name>Donald Norman</Name>
<Genre>M</Genre>
</Author>
<Date>
<Day>27</Day>
<Month>02</Month>
<Year>2002</Year>
</Date>
<Price type="euro">26</Price>
<ISBN>8-4322-62332-6</ISBN>
<Publisher>Basic books</Publisher>
</Book>
我在网上验证了xml,它的格式很好。接下来我做了架构:
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.books.org"
xmlns="http://www.books.org"
elementFormDefault="qualified">
<xsd:element name="BookStore">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Book" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Status">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="Available|Not available">
</xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Title">
<xsd:complexType>
<xsd:attribute name="en" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Author" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Name">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="[a-zA-Z]+\\s[a-zA-Z]+">
</xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Genre">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="M"/>
<xsd:enumeration value="F"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Date">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Day">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:minInclusive value="1"/>
<xsd:maxInclusive value="31"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Month">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:minInclusive value="1"/>
<xsd:maxInclusive value="12"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Year">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Price" type="xsd:decimal">
</xsd:element>
<xsd:element name="ISBN">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d{1}-\d{5}-\d{3}-\d{1}|\d{1}-\d{3}-\d{5}-\d{1}|\d{1}-\d{2}-\d{6}-\d{1}">
</xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Publisher" type="xsd:string">
</xsd:element>
</xsd:sequence>
<xsd:attribute name="category" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
当我尝试在线验证时,会出现以下错误:http://www.utilities-online.info/xsdvalidation/?save=72595340-b1e9-4061-a655-c6cfb9cdac44-XSD验证#。USIxpqw1pi点击按钮根据xsd验证xml并查看所有错误。有人知道如何毫无差错地解决这个问题吗?
现在对问题的更改似乎已经停止,下面是您的XSD更新,以消除验证给定XML文档实例时收到的验证错误。
固定XSD:
<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.books.org"
xmlns="http://www.books.org"
elementFormDefault="qualified">
<xsd:element name="BookStore">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Book" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Status">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="Available|Not available">
</xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Title">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="lang" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="Author" minOccurs="1" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Name">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="[a-zA-Z]+\s[a-zA-Z]+">
</xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Genre">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="M"/>
<xsd:enumeration value="F"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Date">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Day">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:minInclusive value="1"/>
<xsd:maxInclusive value="31"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Month">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
<xsd:minInclusive value="1"/>
<xsd:maxInclusive value="12"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Year">
<xsd:simpleType>
<xsd:restriction base="xsd:positiveInteger">
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="Price">
<xsd:complexType>
<xsd:simpleContent>
<xsd:extension base="xsd:decimal">
<xsd:attribute name="type" type="xsd:string"/>
</xsd:extension>
</xsd:simpleContent>
</xsd:complexType>
</xsd:element>
<xsd:element name="ISBN">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:pattern value="\d{1}-\d{5}-\d{3}-\d{1}|\d{1}-\d{3}-\d{5}-\d{1}|\d{1}-\d{2}-\d{6}-\d{1}|\d{1}-\d{4}-\d{5}-\d{1}">
</xsd:pattern>
</xsd:restriction>
</xsd:simpleType>
</xsd:element>
<xsd:element name="Publisher" type="xsd:string">
</xsd:element>
</xsd:sequence>
<xsd:attribute name="category" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
小注:我在ISBN模式中添加了另一个表单,以支持上一本书的ISBN:8-4322-62332-6
。如果这不是有效的ISBN格式,那么应该在我添加的模式中删除最后一个|
-子句(\d{1}-\d{4}-\d{5}-\d{1}
),并在XML文档实例中修复ISBN。
我没有编写C++代码,因为我的首要任务是创建有效的xml和XSD。 xml: XSD: 为了验证,我转到:https://www.freeformatter.com/xml-validator-xsd.html 错误:s4s-att-invalid-value:元素“Element”中“type”的属性值无效。记录原因:cvc-datatype-valid.1.2.1:“xs:”不是“QName”
使用krasa-jaxb-tools jaxb-plugin,我生成了以下内容: 来自XSD架构: 我得到了注释元素: 使用JAXB,我成功地生成了有效的XML(它通过了XSD验证--包括上面提到的字符串的格式)。 但是,如果我尝试使用Bean验证验证上面提到的字符串,它会抛出错误--如果它被写为“small123”,它会说它应该大写(失败small.123[a-za-z0-9.]{0,27}re
我是XML验证的新手,我遇到了一个我不明白的问题。我使用Python库根据我使用MS XSD工具生成的XSD文件验证XML文件。在创建了许多工作正常的XSD模式后,我在最新的XSD中遇到了以下问题 原因:位置1处标记为“app1:displayname”的意外子级。需要标记mstns:displayname。 架构: 实例: premiere 路径:/manifest:mediaManifest/
我在验证xml和xsd时遇到问题。我从xsd模式中得到这个错误。 src解决方案。4.2:解析组件“urn:id”时出错。检测到“urn:id”位于命名空间“urn:schemas microsoft com:xml-diffgram-v1”中,但此命名空间中的组件无法从架构文档中引用virtual://server/schema.xsd。如果名称空间不正确,可能需要更改“urn:id”的前缀。如
对于任何熟悉xml模式的人来说,这可能是一个基本错误,它可能只是Eclipse Indigo中的一个小的配置更改,但它耗尽了我的google搜索能力,所有实验都未能解决它。 它是现有项目中的一个xsd文件,运行良好。我将该项目设置为Eclipse中的maven/dynamic web项目,在为dynamic web Project2.4打开Eclipse的project facet之后,Eclip
问题内容: 我需要使用给定的XSD文件验证XML文件。我只需要如果验证正常就返回true,否则返回false的方法。 问题答案: 仅返回true或false(也不需要任何外部库):