0

我正在学习使用 XML 模式。我想基于“address.xsd”模式文件创建一个 XML 文件:

“地址.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>

地址.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>

我不明白为什么这不起作用。

4

2 回答 2

0

好的,我已经找到了问题所在。命名空间存在一些问题。在这里,我发布了“address.xsd”架构文件以及有效的“address.xml”。

地址.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>

地址.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>
于 2012-04-05T08:21:59.170 回答
0

实际上 XSD 用于验证 xml 而不是用于生成 XML

于 2012-04-04T13:10:36.220 回答