我正在学习使用XML模式。 我想基于“address.xsd”模式文件创建XML文件:
“address.xsd”
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema
elementFormDefault="qualified"
targetNamespace="com.namespace.address"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="AddressDetails">
<xs:sequence>
<xs:element name="building" type="xs:string" />
<xs:element name="street" type="xs:string" />
<xs:element name="city" type="xs:string" />
<xs:element name="country" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:schema>
address.xml
<?xml version="1.0" encoding="utf-8"?>
<a:AddressDetails
xmlns:a="com.namespace.address"
xsi:schemaLocation="D:/Prac/XML/address.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >
<a:building>Crosswords</a:building>
<a:street>MainStreet</a:street>
<a:city>LA</a:city>
<a:country>USA</a:country>
</a:AddressDetails>
我不知道为什么这不起作用。
答案 0 :(得分:0)
实际上,XSD用于验证xml不用于XML生成
答案 1 :(得分:0)
好的,我已经找到了问题所在。名称空间存在一些问题。在这里,我发布了&#34; address.xsd&#34;模式文件以及有效的&#34; address.xml&#34;。
<强> address.xsd 强>
<?xml version="1.0" encoding="utf-8" ?>
<xs:schema elementFormDefault="qualified" targetNamespace="com.namespace.address" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="AddressDetails">
<xs:sequence>
<xs:element name="building" type="xs:string" />
<xs:element name="street" type="xs:string" />
<xs:element name="city" type="xs:string" />
<xs:element name="country" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="address" xmlns:q1="com.namespace.address" type="q1:AddressDetails" />
</xs:schema>
<强> address.xml 强>
<?xml version="1.0" encoding="utf-8"?>
<a:address xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="com.namespace.address address.xsd" xmlns:a="com.namespace.address">
<a:building>Crosswords</a:building>
<a:street>Main Street</a:street>
<a:city>LA</a:city>
<a:country>USA</a:country>
</a:address>