【问题标题】:Need help creating XML file from XSD schema需要帮助从 XSD 架构创建 XML 文件
【发布时间】:2012-04-05 16:21:59
【问题描述】:

我正在学习使用 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>

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

【问题讨论】:

  • 你怎么知道它不起作用?换句话说,您收到了哪些错误消息?
  • 我正在使用 XML 编辑器“Liquid XML Studio”来创建 XSD 和 XML 文件。在 XML 文件中,编辑器给出以下错误消息:“未声明 'com.namespace.address:AddressDetails' 元素。”

标签: xsd schema


【解决方案1】:

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

【讨论】:

  • 是的,这就是我想要做的。我想针对“address.xsd”验证“address.xml”。换句话说,我想编写一个遵循“address.xsd”定义的 XML 文件。
  • @AshAsh 你放了 我想创建一个 XML 文件?? 这就是为什么我很困惑希望它能帮助stackoverflow.com/questions/15732/…
  • 对不起,如果我没有正确地提出问题。我是这个 XML 模式主题的新手。我想问的是,我得到了一个 XML 模式,并希望根据该模式编写一个 XML 文件。
  • @AshAsh 没问题链接对你有用
【解决方案2】:

好的,我已经找到了问题所在。命名空间存在一些问题。在这里,我发布了“address.xsd”架构文件以及有效的“address.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: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>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-15
    • 2013-02-24
    • 1970-01-01
    • 2018-05-10
    • 2019-12-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多