示例 XSD 失败并显示“错误:未找到元素 X 的声明”

2024-01-05

尽管我是 xml 解析领域的新手,但我能够xsd创建有效的c++并成功编译和链接,但编译器优化(?)了实例化。所以,从第一步开始,我尝试你好世界CodeSynthesis 中的 xml 示例 http://www.codesynthesis.com/projects/xsd/documentation/cxx/tree/guide/#2。但这失败了:

[wally@lenovotower xml]$ make hello
xsdcxx cxx-tree hello.xsd
g++ -c -o helloschema.o hello.cxx
g++ -g -o hello -lxerces-c helloschema.o hello.c++
[wally@lenovotower xml]$ ./hello
hello.xml:2:8 error: no declaration found for element 'hello'
hello.xml:4:13 error: no declaration found for element 'greeting'
hello.xml:6:9 error: no declaration found for element 'name'
hello.xml:7:9 error: no declaration found for element 'name'
hello.xml:8:9 error: no declaration found for element 'name'

你好.c++:

#include <iostream>
#include <stdio.h>
#include "hello.hxx"
using namespace std;
int main (void)
{
        try {
                auto_ptr<hello_t> h (hello ("hello.xml"));

                for (hello_t::name_const_iterator i (h->name ().begin()); 
                        i != h->name().end();
                        ++i)
                        cout << h->greeting () << ", " << *i << "!" << endl;    
        }
        catch (const xml_schema::exception& e)
        {
                cerr << e << endl;
                return 1;
        }
        return 0;
}

你好.xml:

<?xml version="1.0"?>
<hello>

  <greeting>Hello</greeting>

  <name>sun</name>
  <name>moon</name>
  <name>world</name>

</hello>

你好.xsd:

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">

 <xs:complexType name="hello_t">
  <xs:sequence> 
   <xs:element name="greeting" type="xs:string"/>
   <xs:element name="name" type="xs:string" maxOccurs="unbounded"/>
  </xs:sequence>
 </xs:complexType>

 <xs:element name="hello" type="hello_t"/> 

</xs:schema> 

我认为这正是它所说的,但这些命令并不完全按照文档的方式工作。我发现xsdcxx似乎做了正确的事(不像xsd它生成 C# 或 vb.net 输出)。

[wally@lenovotower xml]$ xsdcxx --version
CodeSynthesis XSD XML Schema to C++ compiler 3.3.0
Copyright (C) 2005-2010 Code Synthesis Tools CC

另外,我不包括-I(dir) 并且它编译愉快。是否可能以某种方式使用了错误的包含文件?

我究竟做错了什么?或许xsd是不是合适的工具?


有一些选择。可以在文件中提供架构位置你好.xml:

<?xml version="1.0"?>
<hello xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:noNamespaceSchemaLocation="hello.xsd">

  <greeting>Hello</greeting>

  <name>sun</name>
  <name>moon</name>
  <name>world</name>

</hello>

另一种选择是提供文件中的架构位置你好.c++

如果我们假设架构文件位于文件路径/一些/文件/路径/hello.xsd

我们应该而不是写

auto_ptr<hello_t> h (hello ("hello.xml"));

write

xml_schema::properties properties;
properties.no_namespace_schema_location("file:///some/file/path/hello.xsd");
auto_ptr<hello_t> h (hello ("hello.xml", 0, properties));

您可以在 Codesynthesis 常见问题解答中了解更多相关信息:

当我尝试解析有效​​的 XML 文档时,为什么会收到“错误:未找到元素‘根元素’的声明”? http://wiki.codesynthesis.com/Tree/FAQ#Why_do_I_get_.22error%3a_no_declaration_found_for_element_.27root-element.27.22_when_I_try_to_parse_a_valid_XML_document.3F

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

示例 XSD 失败并显示“错误:未找到元素 X 的声明” 的相关文章

  • 使用 CLion 进行 OpenCV Windows 设置

    我想在 Windows 上为 CLion IDE 设置 OpenCV 我尝试使用 OpenCV 3 1 和 2 4 得到相同的结果 我有 Windows 10 64 位 CLion 使用 cygwin 环境 到目前为止我做了什么 1 从Op
  • 多个源的 makefile

    在学习 make 文件时 我试图为多个源目录编写一个 make 文件 似乎我在某个地方错了 这是我的代码结构 directory common fun2 c inc fun h src fun1 c main c 这是我的生成文件 CC c
  • 添加 Nullable int 时保持 null?

    我想添加可为空的int 并保留null当所有值都是null 我想要这个结果 1 2 3 1 null 1 null null null O null 0 问题是 如果我将一个值与 null 相加 结果为 null int i1 1 int
  • json.net自定义jobject反序列化

    我正在尝试使用 JsonConvert DeserializeObject string 将字符串反序列化为可与动态一起使用的 jobject 来动态访问 json 文档 但是我想避免知道文档的大小写 以便我可以输入 dynamic doc
  • C++ 长 switch 语句还是用地图查找?

    在我的 C 应用程序中 我有一些值充当代表其他值的代码 为了翻译代码 我一直在争论使用 switch 语句还是 stl 映射 开关看起来像这样 int code int value switch code case 1 value 10 b
  • 从代码中,如何创建对存储在附加属性中的对象的属性的绑定?

    我们有一个继承的附加属性来存储一个对象 在可视化树的更下方 我们希望从代码绑定到该对象的属性 通常我们像这样构建绑定的路径部分 var someBinding new Binding Path new PropertyPath Attach
  • 是否存在指向不同类型的指针具有不同大小的平台?

    C 标准允许指向不同类型的指针具有不同的大小 例如sizeof char sizeof int 是允许的 但是 它确实要求如果将指针转换为void 然后转换回其原始类型 它必须与其原始值进行比较 因此 从逻辑上来说 sizeof void
  • C# 开源 NMEA 解析器 [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 C 开源 NMEA 解析器 嗯 我自己也不熟悉 但是一些快速搜索显示了一个代码项目 htt
  • 使用 LINQ 更新 IEnumerable 对象的简单方法

    假设我有一个这样的业务对象 class Employee public string name public int id public string desgination public int grade List
  • 获取 boost Spirit 语法中的当前行

    我正在尝试使用 boostspirit 获取正在解析的文件的当前行 我创建了一个语法类和结构来解析我的命令 我还想跟踪在哪一行找到命令并将其解析到我的结构中 我将 istream 文件迭代器包装在 multi pass 迭代器中 然后将其包
  • 访问 ascx 文件中的母版页控件

    我有一个母版页文件 其中包含 2 个面板控件中的 2 个菜单 我还使用控件来检查用户是否登录并获取用户类型 根据我想要显示 隐藏面板的类型 控件本身不在母版页中引用 而是通过 CMS 系统动态引用 我想在用户控件中使用findcontrol
  • 使用查询表达式对 List 进行排序

    我在使用 Linq 订购这样的结构时遇到问题 public class Person public int ID get set public List
  • 使用 C# 和 wpf 创建类似 Dock 的应用程序

    我需要创建一个与我们购买笔记本电脑时获得的应用程序类似的应用程序 仅当鼠标指针到达窗口顶部时它才可见 那么我怎样才能使用 C 4 0 来做到这一点呢 http www notebookcheck net uploads pics win2
  • 如何在三个 IEnumerable 上使用 Zip [重复]

    这个问题在这里已经有答案了 可能的重复 使用 Linq 从 3 个集合创建项目 https stackoverflow com questions 5284315 create items from 3 collections using
  • 在 asp.net MVC 中使用活动目录进行身份验证

    我想使用活动目录对我的 asp net mvc 项目中的用户进行身份验证 在网上冲浪了几个小时后 我没有找到任何对我有用的东西 我已经看到了所有结果 但什么也没有 我尝试按照许多帖子的建议编辑我的 web config 如果有人可以帮助我提
  • 从浏览器访问本地文件?

    您好 我想从浏览器访问系统的本地文件 由于涉及大量安全检查 是否可以通过某种方式实现这一目标 或使用 ActiveX 或 Java Applet 的任何其他工作环境 请帮帮我 要通过浏览器访问本地文件 您可以使用签名的 Java Apple
  • CUDA 8 编译错误 -std=gnu++11

    我正在尝试转换一些代码以使用 CUDA 并且我认为我遇到了兼容性问题 我们使用CMake 这些是我使用的 gcc 和 CUDA 版本 gcc version gcc Ubuntu 5 4 0 6ubuntu1 16 04 5 5 4 0 2
  • 为什么以下 C 程序会出现总线错误?

    我认为这是第一个失败的 strtok 调用 好久没写C了 有点不知所措 非常感谢 include
  • DataContractSerializer 事件/委托字段问题

    在我的 WPF 应用程序中 我正在使用DataContractSerializer序列化对象 我发现它无法序列化具有事件或委托声明的类型 考虑以下失败的代码 Serializable public abstract class BaseCl
  • 结构化绑定的用例有哪些?

    C 17 标准引入了新的结构化绑定 http en cppreference com w cpp language structured binding功能 最初是proposed http www open std org jtc1 sc

随机推荐

  • 迭代“std::multiset”的独特元素

    我所需要的只是知道某物是否存在以及它存在了多少次 我将迭代现有的事物并查询其中存在多少 到目前为止我的实现使用multiset 我这样做 std multiset
  • 附加到正在运行的进程的探查器?

    我需要一个适用于 Windows 和 Linux 的良好分析器 它们不必是同一个 针对每个操作系统的单独建议都可以 它可以附加到未以任何 特殊 方式编译的已运行进程 并给出我对进程花费大部分时间的函数进行统计 我有一些长时间运行的科学代码
  • 如何通过引用获取对象的大小?

    假设我有一堂课 class Foo 我还有另一个功能 void getf Foo f std cout lt
  • Facebook 点赞按钮 - 隐藏计数?

    In the 设置对话框 http developers facebook com docs reference plugins like对于 Like Button 布局只有两种选择 替代方案1 https web archive org
  • redux框架wordpress调用变量

    我已经通过 wordpress 安装了 redux 插件 非常棒 我一直在使用demo内容来熟悉框架 但我不知道如何调用模板中的数据 我已经使用选项树很长时间了 并发现了这一点 这是我认为正确的呼唤 但我想不是 这是我认为可以上传徽标的代码
  • 策略模式的功能类比是什么?

    免责声明 我不使用函数式语言 只是试图理解 FP 的某些部分 Google 建议使用 lambda 的一阶函数可以提供与策略模式提供的类似功能的文章 然而我们需要以某种方式匹配数据和相应的 lambda 通过 OO 设计 这是自动完成的虚拟
  • Chef服务器密码重置

    我在我的 Linux 机器上安装并运行了我自己的 Chef 服务器 当我访问厨师服务器用户界面时 它询问我用户名和密码 不幸的是我忘记了密码 我知道我的用户名是admin 我怎样才能恢复我的密码 用户界面中也没有忘记密码选项 我更改了默认密
  • 仅针对此过程登录 Windows 网络共享 (SMB)

    在整个用户会话中 例如 登录 Windows 网络共享 SMB 很容易 net use WNetAddConnection2 etc 有没有类似的方法只会影响我当前的流程 也许是某种令牌系统 如果确实没有其他选择 整个会话身份验证是可以的
  • 如何使用 Facebook(或其他 ID)登录我的 ASP.NET 应用程序?

    像 SO 这样的网站如何允许您通过 Facebook OpenID Google Blogger Twitter 等验证自己的身份 我正在编写一个 ASP NET C 站点 除了提供任何其他站点具有的常规普通用户名 密码之外 我希望能够接受
  • 如何禁用“ActiveX 控件可能不安全”弹出窗口

    在 我的电脑 上的 HTML 文件中 我尝试在脚本中使用 Scripting FileSystemObject 如何禁用弹出窗口 此页面上的任何 ActiveX 控件对于脚本编写可能不安全 Internet 选项 安全窗格允许将 初始化并编
  • 是否可以缩短自定义视图名称?

    假设我创建了一个名为的自定义视图MyView并想在 xml 中使用它 视图位于com example包裹 我需要做这样的事情
  • 用逗号分割以及如何从分割中的引号中排除逗号

    蟒蛇2 7代码 cStr aaaa bbbb ccc ddd newStr cStr split print newStr gt aaaa bbbb ccc ddd 但是 我想要这个结果 result aaa bbb ccc ddd 解决方
  • Angular 9 生产构建错误 - 需要伪类或伪元素

    Angular 9 项目 ng 服务工作正常 但是当我进行生产构建时出现以下错误 块 runtime 5d6d7c5bcca533f7263c js 运行时 1 46 kB 条目 渲染 块 1 main d2b72f349c71c888a6
  • Hsqldb 存储过程

    我正在尝试在内存 Hsqldb 数据库中设置一个存储过程以进行测试 我正在使用的存储过程是在 MySql 中开发的 因此我想使用 HSqlDb 设置它以适应我的测试套件 我正在尝试创建该过程的简化版本 但目前还没有任何乐趣 程序是 CREA
  • Tensorflow Metal 插件已注册错误

    我已经使用安装了 Tensorflow 和 Metal 插件pip在 Mac Mini 2020 M1 上 pip3 install tensorflow macos tensorflow metal pip3 uninstall nump
  • 如何限制 while 循环中的项目

    这是我的项目中的 while 循环 div class index a href img width 200 height 171 alt src a div
  • jQuery 多次点击事件

    我被迫使用从外部服务器加载的脚本 该脚本基本上添加了一个元素 div class myClass 并绑定一个click的方法 事情是 在click与元素关联的函数 它们有一个return false声明在最后 我也有自己的脚本 我正在尝试添
  • 如何在 OSX 上卸载 pip?

    我运行了以下命令 easy install pip sudo pip install setuptools no use wheel upgrade 如何反转这两个命令以使我的 python 在 OSX 中恢复到其原始状态 删除 pip 作
  • R Shiny:数据表行的鼠标悬停文本

    有没有办法在将鼠标悬停在数据表显示中的行 记录 上时显示鼠标悬停文本 在 StackOverflow 上解决了一些类似的问题后 我发现了 2 个示例代码 一个显示列单元格的悬停文本 另一个在鼠标悬停时突出显示整行 显示列单元格悬停文本的示例
  • 示例 XSD 失败并显示“错误:未找到元素 X 的声明”

    尽管我是 xml 解析领域的新手 但我能够xsd创建有效的c 并成功编译和链接 但编译器优化 了实例化 所以 从第一步开始 我尝试你好世界CodeSynthesis 中的 xml 示例 http www codesynthesis com