我进行了搜索,没有发现任何解决此问题的问题。
我正在尝试根据模式验证各种 XML,它似乎正在验证所有格式良好的 XML,而不仅仅是符合模式的 XML。我已经发布了我正在使用的代码、架构、示例有效 XML 和示例无效 XML。
我已经为此苦苦挣扎了一段时间。我对这件事的大部分内容一无所知。我必须学习如何编写 XSD,编写 XSD,然后学习如何在 C# 中解析 XML。这些都是我以前从未做过的。我使用了许多教程和微软网站来得出以下内容。我认为这应该有效,但事实并非如此。
我究竟做错了什么?
private bool ValidateXmlAgainstSchema(string sourceXml, string schemaUri)
{
bool validated = false;
try
{
// REF:
// This should create a SCHEMA-VALIDATING XMLREADER
// http://msdn.microsoft.com/en-us/library/w5aahf2a(v=vs.110).aspx
XmlReaderSettings xmlSettings = new XmlReaderSettings();
xmlSettings.Schemas.Add("MySchema.xsd", schemaUri);
xmlSettings.ValidationType = ValidationType.Schema;
xmlSettings.ValidationFlags = XmlSchemaValidationFlags.None;
XmlReader xmlReader = XmlReader.Create(new StringReader(sourceXml), xmlSettings);
// parse the input (not sure this is needed)
while (xmlReader.Read()) ;
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(xmlReader); …Run Code Online (Sandbox Code Playgroud) 有没有办法声明一个一元运算符,如'!??'
我想象这样的事情(非工作代码)
public bool operator !??<T> (this <T> item) {
return item != null;
}
Run Code Online (Sandbox Code Playgroud)
所以我会像这样使用它
// day is a value and might possibly be null
string greeting = name !?? "hello there " + name;
Run Code Online (Sandbox Code Playgroud)
我发现自己经常要做这种尴尬
// day is a value and might be null
string greeting = day != null ? "hello there " + name : "";
Run Code Online (Sandbox Code Playgroud)
在我提供的示例中相当清楚,但是当您使用getter/setter进行视图模型时,它会让人感到有些困惑,并且会增加错过逻辑错误的可能性.因此:
public DateTime? SearchDate {
get { return _searchDate; }
set { _searchDate = value != null ? value.Value : …Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个简单的.bat文件,该文件将生成一个.html文件,其中包含指向当前目录中所有图像的图像链接.
用法:C:>画廊
输出:gallery.html
文件内容:
<HTML><HEAD></HEAD><BODY>
<IMG SRC="C:/path/path/path/image1.gif">
<IMG SRC="C:/path/path/path/randomepic.gif">
<IMG SRC="C:/path/path/path/asdfsadfasd.gif">
</BODY></HTML>
Run Code Online (Sandbox Code Playgroud)
请注意,图像文件将具有不可预测的名称,但始终为.gif.
我得到了什么:(在gallery.bat)
@echo off
set file_start=<HTML><HEAD></HEAD><BODY>
set image_start=<IMG SRC="
set image_dir=`cd`
set image_end=">
set file_end=</BODY></HTML>
set file_name=gallery.html
echo %file_start% > %file_name%
for %%image in (*.gif) do @echo %image_start%%image_dir%%%image%image_end% >> $file_name%
echo %file_end% >> %file_name%
Run Code Online (Sandbox Code Playgroud)
但它不起作用.我无法获得小于号的符号,因为批处理文件认为它是输入重定向.如果我用<符号引用行,则引号出现在echo语句中.
另外,我无法将cd命令输出保存到变量%image_dir%
最后,for循环中的echo语句没有正确打印出来.这可能是以前问题的症状.
我希望它只是我遇到的一些小问题.有谁知道如何解决这一问题?谢谢你的时间!
帕特里克Q.
我想创建一个动态GUI,将所有Enum的选项列为按钮.所以,我需要一种方法将Enum类型传递给一个方法,然后返回一个包含枚举类型的所有选项的字符串数组.
例如,给定文件Foo.cs中的Enum声明:
public Enum Fruits {
Apple,
Orange,
Peach
};
public class Foo { ... }
Run Code Online (Sandbox Code Playgroud)
我希望这个返回:
{ "Apple", "Orange", "Peach" }
Run Code Online (Sandbox Code Playgroud)
我经历了几种代码排列.现在我有以下但我得到一个错误" 无法找到类型或命名空间名称'enumeratedType' "
public static string[] EnumToStringArray (System.Type enumeratedType) {
int enumSize = sizeof(enumeratedType);
string[] enumStrings = new string[enumSize];
for (int i = 0 ; i < enumSize ; i++) {
enumStrings[i] = enumeratedType.getValues()[i].toString();
}
return enumStrings;
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试做什么?我已根据此问题中的信息尝试了几次完整的重写.使用C#enum中的sentinal值(编译时枚举的大小)?但我无法让它发挥作用.
c# ×3
arrays ×1
batch-file ×1
enums ×1
generics ×1
html ×1
image ×1
namespaces ×1
nullable ×1
schema ×1
string ×1
validation ×1
windows-7 ×1
xml ×1
xsd ×1