我是XML的新手,我需要将一个XML文件导入Access或Excel 2010。
文件需要引用多个模式。这是我到目前为止所做的,但它没有用。有人能指出我正确的方向,还是我完全错了?
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns="http://www.dcsf.gov.uk/schemas/cbds"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xsi:SchemaLocation="File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Schemas\SC13-CBDS-Standard-Header.XSD
File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Schemas\SC13-Spring-PupilModule.XSD
File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Schemas\SC13-Spring-SchoolModule.XSD
File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Schemas\SchoolCensus13-Spring.XSD
File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Includes\bs7666.XSD
File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Includes\EstabNoType.XSD
File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Includes\LEAtype.XSD
File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Includes\PeopleTypes.XSD
File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Includes\PupilTypes.XSD
File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Includes\SC_Address_Structure.XSD
File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Includes\UPNtype.XSD
File:\\ecsdcen2\Vol1\Groups\PIMD\Projects\ICYP%Projects\ICYP%-%School%Census\2013\January%2013\Source\School%Census\Includes\YearTypes.XSD">
<Message>
<Name>School Census</Name>
<Header>
答案 0 :(得分:0)
这里有几个问题。
您的XML格式不正确,因此无法确定您希望文档的元素结构是什么。您没有xs:schema
的结束标记,并且您有header
的结束标记但没有开始标记。
此外,您使用但不绑定名称空间前缀xsi
;该前缀通常绑定到XSD“实例”命名空间。如果这是您想要的绑定(几乎可以肯定),您希望将以下命名空间声明添加到文档的根元素中。
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xs:schema
元素用于定义模式的组件 - 而不是将模式信息附加到普通的XML实例。它由XSD规范定义,Message
和header
都不是任何有效xs:schema元素的子代。
XML实例和架构之间的链接可以使用xsi:schemaLocation
属性表示(注意拼写!)。用于为给定的XML元素指定可以为该元素中使用的命名空间找到模式的位置。
xsi:schemaLocation
的值是(namespace-name,schema-document-URI)对的序列;您当前的值似乎只是模式文档的文件系统路径列表,它们实际上都不是URI。
此外,通常的做法是将命名空间的一个顶级模式文档(驱动程序文件)(直接或间接)引用到该命名空间的所有其他模式文档。您的xsi:schemaLocation
属性应指向该驱动程序文件,而不是指向命名空间的其他模式文档。所以我希望你的XML输入中有这样的东西:
<header xmlns="http://www.dcsf.gov.uk/schemas/cbds"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:SchemaLocation="http://www.dcsf.gov.uk/schemas/cbds
file:///ecsdcen2/Vol1/Groups/PIMD/Projects/ICYP%20Projects/ICYP%20-%20School%20Census/2013/January%202013/Source/School%20Census/Schemas/cbds-driver.xsd">
...
</header>
如果您的目标是尽可能快地获取XML数据和其他形式的数据,那么获取XML和XSD的所有这些详细信息(仅为了获取XML的数据)可能是有点单调乏味;我找到了一位当地的XML / XSD专家,并为他们提供免费饮料,直到他们同意为您提供帮助。