草庐IT

模式化

全部标签

c# - 使用 xml 填充对象的设计模式

我有一个要用xml填充的对象。我认为我可能会使用接受此xml的构造函数来构建对象。但是,是否有更好的设计模式来做到这一点?是否由对象来处理所有的xml解析?谢谢! 最佳答案 不,您不应该将xml发送到构造函数,因为您正在将模型与反序列化逻辑耦合。您应该创建一个类来为您处理反序列化并返回一个实例。为什么这很重要可能还不清楚。但是想象一下,将来您可能拥有来自数据库的数据,您不想将数据库连接传递给构造函数,对吗?相反,您可以创建一个不同的类,该类使用数据库来生成您的类的实例。这里有一些不错的读物:http://en.wikipedia.o

xml - 如何为相同类型的嵌套元素创建带有键/键引用的 xml 模式

我定期处理一些XML文件,并希望获得比DTD所能提供的更好的验证。所以我开始阅读模式,看看是否能帮到我。到目前为止,除了一件之外,我已经能够创造出几乎可以像我需要的那样工作的东西。我希望能够将元素的属性限制为具有相同元素类型的兄弟元素或祖先元素的不同属性值。这甚至可以通过XML模式键/keyref限制实现吗?我有一个看起来像这样的文档:在本文档中,节点可以“扩展”其他节点:siblingparent的sibling但是,节点不应该“扩展”:parent父节点的兄弟节点这意味着MyHouse可以“扩展”Table,这没有任何意义,但我同意这一点。同样重要的是,两个房子节点都应该能够拥有自

xml - SyntaxHighlighter 不格式化 xml 文本

引用文件:html代码:@Html.Encode("Okdescriptin.")JavaScript代码:SyntaxHighlighter.all()这里有引用tutorial 最佳答案 如果您查看源代码,您会注意到您对XML进行了两次转义,因为@已经对文本进行了编码,而@Html.Encode(..)再做一次。因此,您没有得到SyntaxHighlighter无法理解为代码的正确输出。只需使用此示例进行测试,一切都会正常工作:@{varxml=@"Okdescriptin.";}@xmlSyntaxHighlighter.au

xml - HR-XML 数据库模式

在为我们的项目设计数据库时,我们希望遵循HR-XML标准。是否有人拥有表示HR-XML实体的现成关系数据库模式? 最佳答案 我在使用gpx(也是一种XML格式)时遇到了同样的问题。这是我当时的处理方式:将XSD导入EntrepriseAchitect.使用漂亮的图表作为数据库设计的基础。我对工具的掌握程度不高,但获得一张好照片对我来说已经足够了。 关于xml-HR-XML数据库模式,我们在StackOverflow上找到一个类似的问题: https://sta

.net - 以编程方式以缩进形式格式化 XML,就像 Visual Studio 的自动格式化一样

我还没有找到使用.NET的XmlWriter和关联的XmlWriterSettings以缩进形式格式化XML字符串的方法,这与VisualStudio使用其自动格式化命令(Ctrl-ECtrl-D,或者,取决于在键盘映射上,Ctrl-KCtrl-D)。我想这样做是因为我习惯性地在VS中自动格式化我的所有文件,包括代码和.config文件。我有一个更新.config文件的安装程序应用程序,我希望看到实际的差异,而不是更改整个文档。我还没有研究自动格式的所有不同格式设置选项,但我喜欢每个XML属性都在单独的一行上,第一个与开始标记在同一行,随后的与第一个对齐,像这样:我已经尝试使用XmlW

c# - 使用 C# 在生成器设计模式中集成序列化和反序列化

我正在实现BuilderPattern为了生成一组对象。然后必须将这些对象序列化为XML并从XML反序列化。我知道如何执行序列化和反序列化,但我不确定如何将其集成到设计模式中。例如,假设我的代码使用构建器来创建产品foo和bar。我的第一个想法是在每个产品上放置一个序列化函数,因为每个产品都知道要序列化什么。我的下一个想法是将反序列化放在Director或ConcreteBuilder中。我不喜欢的是序列化和反序列化函数将位于不同的位置-一个在文件中用于声明foo和bar对象,另一个在文件中用于其他内容。我担心在我处理产品类时它们最终可能会变得不同步。我最后的想法是让Director或

c# - 同步 XML 模式验证? .NET 3.5

我知道我可以使用如下所示的回调方法根据模式验证xml,但有没有一种方法可以让我同步执行此操作而不是事件驱动?我想到的一种方法是设置类成员bool标志IsValidated=false然后调用xml.Validate(ValidationEventHandler)。事件处理程序将在完成后设置IsValidated=true。同时,进行循环检查,直到标志设置为真,然后继续。这是针对.Net3.5的。publicboolValidateSchema(stringxmlPath,stringxsdPath){XmlDocumentxml=newXmlDocument();xml.Load(xm

c# - 如果返回格式是 xml,如何删除 web api 中的模式节点?

我有一个将格式作为参数的webapi方法,该方法返回xml和json。该方法返回的数据类型是DataTable。在json格式中,一切看起来都很好,但在xml格式中,数据表的模式和一些其他属性在xml节点中也返回。如何返回仅包含数据表数据的简单xml?另外,我在WebApiConfig中使用QueryStringMapping。这是WebApiConfig代码publicstaticvoidRegister(HttpConfigurationconfig){config.MapHttpAttributeRoutes();config.Routes.MapHttpRoute(name:"

xml - 如何从 Perl 中的示例 XML 文档创建模式?

我需要创建一个基于XML文件的XSD架构。是否有任何Perl模块可以执行此操作? 最佳答案 您可以使用任何XSLT处理器通过XSL转换创建XSD。参见XML::XSLTXSD文件包含两种元素类型:简单元素和复杂元素。所有叶节点都必须转换为简单类型元素,其他必须转换为复杂类型。叶节点是没有任何后代的节点。对应的XPath是//*[not(descendant::element())]。下面的XSLT实现了这个方法:下面的例子:PeterPan19041227将产生以下架构: 关于xml-如

xml - VS2010 有 xml 模式验证器吗?

我想知道VS2010是否有一些东西可以用来比较xml文档和我的架构?我尝试了一些在线工具,但我的xml文档似乎很大,而且我的浏览器崩溃了。 最佳答案 VisualStudio为XML提供设计时验证和智能感知。当您打开XML文件时,您必须选择关联多个模式之一(从属性窗口),这可用于验证文件。请参阅XMLEditor上的文档在VisualStudio中。虽然这article适用于VisualStudio2005,它提供了2005年及以后的功能的图形View。 关于xml-VS2010有xml