草庐IT

XML 模式设计决策

我正在设计一个XML模式来保存我的程序的输出。但是,我对设计决定犹豫不决,我希望更有经验的程序员提供意见。如果我有一个复杂的元素12但是,中的嵌套元素是可选的。我的问题是当没有时文件应该是什么样子?存在?选项1:要么选项2:选项3:删除元素完全。我知道这3个选项可能没有任何区别,但是有人出于某种原因有任何偏好(我更关心更快地读取XML文件和更容易编程而不是大小)? 最佳答案 绝对不是选项2。作为程序员,我更喜欢选项1(架构越不灵活,解析它就越容易),而选项3作为人类编写或阅读XML(输入的字符更少,更简洁)。这取决于谁对您更重要。

xml - 使用 'choice' 和 'extension' 元素验证 XSD 时出现问题

我将发布两个示例,一个可以验证,一个没有。我有兴趣了解为什么第二个不起作用,因为它们非常相似。示例1(验证)xsd:xml:11示例2(未验证)xsd:xml:(同例1)11为了节省您对xsd运行差异的时间,唯一的区别是在第二个示例中复杂类型BBB有一个xmllint对示例2的说明如下:$xmllint--noout--schemaexample2.xsdexample2.xmlexample2.xml:3:elementy:Schemasvalidityerror:Element'y':Thiselementisnotexpected.Expectedis(z).example2.x

xml - 我如何创建一个需要某些元素、允许其他元素并且与顺序无关的模式?

我想创建一个包含以下内容的XML模式:从评论中可以看出,我希望前三个元素是必需的,其余的是可选的。该架构应允许元素以任何顺序出现。现在,如果我使用指标,命令被强制执行,这是我不想要的。如果我使用指示器,则架构要求所有元素出现,即使minOccurs值设置为0.是否有一些其他指标可以用来完成我的任务?谢谢! 最佳答案 为了说明,我们假设下面的XSD;除了语法正确(通过引入xs:all合成器)之外,它与帖子中提供的没有什么不同,并且为了轻松创建示例XML,我还添加了一个虚拟Record元素。拥有这个示例XML:RecordId1Reco

java - XML 编码 : How to add an attribute from another namespace to an element

我想生成这个XML:我有这个XSD:我如何才能在我的XSD中完成此操作(仅供引用:我使用它使用JiBX将对象编码为Java中的XML)。 最佳答案 假设当您说xsi:type时,您指的是来自“http://www.w3.org/2001/XMLSchema-instance”命名空间的“type”属性。它不是您添加到XML架构中的东西,它是一种保留的限定元素的方法(类似于Java中的强制转换)。为了使以下内容有效:您需要有一个XML架构,例如:...然后,当您的XML绑定(bind)解决方案编码对应于类型“hardPart”的对象时

xml - 有没有办法从 XML 模式中删除魔数(Magic Number)?

我有一个定义了某些类型的WSDL。有些元素接受元素列表,在服务返回时我也有带有值列表的元素(或其他元素)。因此,我在XSD中有一些神奇的数字(例如minOccurs="10"、maxOccurs="250"等)。这些值10、250等在整个XSD类型中重复出现。有没有办法将它们声明为某种常量?然后按minOccurs和maxOccurs属性的名称重用它们? 最佳答案 不,没有。您唯一可以做的就是在加载之前使用某种模板处理器对模式进行预处理。 关于xml-有没有办法从XML模式中删除魔数(M

c# - 创建 XmlSerializer 对象时如何解决此异常?

我在http://www.w3.org/2001/XMLSchema.xsd下载了用于XML模式的XML模式.然后我使用XSD.EXE从下载的文件创建一个类。我将类命名为schema.cs。然后我执行了这行代码:XmlSerializerserializer=newXmlSerializer(typeof(schema));得到这个错误:TheXMLelement'annotation'fromnamespace'http://www.w3.org/2001/XMLSchema'isalreadypresentinthecurrentscope.如何在不破坏模式的情况下找到重复元素并修

python - dateTime 提示 XSD 验证中的空白 (lxml)

我正在尝试使用XSD验证文档,而lxml提示dateTime值中的空白(尽管它应该折叠它)。我不确定这是否是一个错误的行为,或者我是否只是在XSD中指定了错误的地方。花了一个小时尝试对此进行调试,希望其他人之前经历过类似的行为。======================================================================ERROR[0.076s]:test_exports(disqus.importer.tests.tests.SchemaValidation)----------------------------------------

xml - 不同 XSD 文档中的 Key、KeyRef

这可能吗?比如说我有客户.xml12订单.xml13InvalidasCustomer3doesn'texistXSD(使用key和keyref)如何寻找这个(customer.xsd和orders.xsd也将是具有不同命名空间的两个不同文件),甚至可能吗?我见过的所有示例都处理单个文件。CanKeysandKeyrefsbespreadacrossmultipleXSDfiles? 最佳答案 这是不可能的。没有XML架构构造或约束适用于多个文件。 关于xml-不同XSD文档中的Key、

xml - 在 XML 模式 (XSD) 中引用多个 ID

我想知道是否可以区分XML架构中的ID字段。我有以下架构:但是,引用文献并不是唯一地链接到各自的定义。我仍然可以编写以下废话但有效的XML:有没有办法使用ID和IDREF正确链接字段,例如使用命名空间?我知道我可以只使用key和keyref,但ID对我来说更有吸引力。 最佳答案 不,我不认为这是可能的。http://www.w3.org/TR/xmlschema-2/#ID和http://www.w3.org/TR/xmlschema-2/#IDREF假设ID和IDREF属性类型来自XML标准,并且http://www.w3.org

java - XML 架构 : Setting fixed value for an attribute defined in a base-type

是否可以在覆盖基类型时将xml属性的值设置为固定值?例如,我的基本类型如下所示:...stuffthatallparametershaveincommon...parameterType类型是具有两个可能值的枚举:不应使用Parameter类型,而应仅用作扩展它的两个复杂类型的基础:...stuffspecificforthisimplementationofparameter......stuffspecificforthisimplementationofparameter...在那些子类型中,我想将parameterType属性设置为固定值。有没有可能做到这一点?此外,我想解释一