我可以在下面这两张图中改进我的设计吗?如果是这样,怎么样?
我在图表中使用关联类感到困惑.我应该使用它们吗?
图1

图2

我开始使用XML文件和解析器作为存储数据的便捷方式
我想使用DTD来检查xml文件到达时的结构.
这是我的DTD文件
< ?xml version="1.0" encoding="UTF-8"?>
< !ELEMENT document (level*)>
< !ELEMENT level (file,filelName?,fileNumber?)>
< !ELEMENT file (#PCDATA)>
< !ELEMENT filelName (#PCDATA)>
< !ELEMENT fileNumber (#PCDATA)>
Run Code Online (Sandbox Code Playgroud)
(请注意,fileName和fileNumber实际上是纯可选的)
和
<document>
<level>
<file>group1file01</file>
</level>
<level>
<file>group1file02</file>
<fileName>file 2</fileName>
<fileNumber>0</fileNumber>
</level>
...
Run Code Online (Sandbox Code Playgroud)
所以这一切都很好.(我现在使用eclipse"validate"选项来测试它)
然而,在测试时我得到了我认为是一个奇怪的错误
如果我做
<level>
<levelName>Level 2</levelName>
<levelNumber>0</levelNumber>
<file>group1level02</file>
</level>
Run Code Online (Sandbox Code Playgroud)
更改行的顺序,Eclipse拒绝验证它...
我想知道这是否是Eclipse的问题,或者订单是否真的很重要.
如果订单很重要,我怎样才能更改DTD以使其无论元素的排序如何都能正常工作?
我无法真正改变XML,因为我已经编写了所有的XML文件和解析器(我知道我的方法是错误的)
我有一个用C++编写的DLL(Player.dll),内部使用Windows GDI.我有一个用Windows Forms编写的应用程序(基本上是一个视频播放器),内部调用API Player.dll来使用p/invoke技术在屏幕上呈现实际图形:
public class ProxyPlayer
{
[DllImport("Player.dll", CharSet=CharSet.Unicode, EntryPoint="PlayVideo")]
public static extern void Play(int playerHandle, out TWResult result);
[DllImport("Player.dll", CharSet=CharSet.Unicode, EntryPoint="PauseVideo")]
public static extern void Pause(int playerHandle);
//other methods
}
Run Code Online (Sandbox Code Playgroud)
它正在发挥作用.
但是现在,我想使用Silverlight 4.0编写相同的应用程序.如您所知,大多数Windows GDI都可以HWND在屏幕上渲染图形,这就是我传递playerHandle给ProxPlayer方法的原因,正如您自己可以看到的那样.Window Forms' UserControl定义了一个名为Handletype 的公共属性,IntPtr它等同于HWND,所以我将它传递给ProxyPlayer方法.它解决了我的问题.但Silverlight UserControl没有任何此类财产.
所以我的问题基本上是,我如何处理我的silverlight控件?因为没有它,我无法调用API Player.dll.但我要从中呼叫APS.我没有任何其他选项,因为DLL是实际的引擎,它确实解释了大量数据然后渲染它们.所以请建议我符合我的要求的解决方案!
注意:假设我的silverlight应用程序将始终在Microsoft Windows上运行.所以我没有问题对Windows GDI进行设置.
我需要将我的SqlCE3.5数据库更新为4.0.
当我尝试使用新的CE4.0连接提供访问我的3.5 sdf /数据库时,我收到以下错误消息: -
System.Data.EntityException:基础提供程序在Open上失败.---> System.Data.SqlServerCe.SqlCeInvalidDatabaseFormatException:数据库文件已由早期版本的SQL Server Compact创建.请使用SqlCeEngine.Upgrade()方法升级.
谁知道我怎么做到这一点?显然我需要以编程方式进行,但我不确定我应该做什么/我需要添加什么参考,等等.
干杯!
visual-studio-2010 sql-server-ce entity-framework-4 sql-server-ce-4
我有一堆JAR文件(来自maven2项目)和maven报告无法找到一些包(确切地说是org.openanzo.client.jena).我想深入研究作为maven依赖解析结果下载的JAR文件,并找到这些JAR文件可用的包.见解?
更新:显然,检查jar文件内部的唯一好方法是"jar"实用程序,或者可以使用其IDE的工具来执行此操作.
我想编辑现有的XML文件,同时保留它的原始布局.这包括新行,注释等.编辑包括在XML中查找元素和修改文本值.
我的第一次尝试是将XMLParser与XmlUtil.serialize一起使用,但这不符合要求.
任何人都知道XMLParser的任何替代方法,其中编辑是原始XML字符串的"到位"?如果没有,也许有一个库使用XPath/GPath执行搜索,只返回查找的位置,所以我可以做StringBuilder.replace.
编辑:
现在我做了这个函数,找到XML节点的字符串索引(我可以使用xpath找到),然后我在索引上进行替换.适用于简单节点<node> value </ node>:
def find_location_by_node(xmlString, root_xml, node)
{
current_index = 0;
for(current_node in root_xml.depthFirst())
{
node_name = current_node.name().getLocalPart()
current_index = xmlString.indexOf('<' + node_name, current_index);
if(current_node == node)
{
end_tag = '</' + node_name + '>';
end_tag_index = xmlString.indexOf(end_tag, current_index) + end_tag.length();
return [current_index, end_tag_index];
}
}
return -1;
}
Run Code Online (Sandbox Code Playgroud) 我有两个按钮都打开filedialog我想要的两个按钮应该总是打开他们相关的目录在filedialog当他们按下.在我的情况下filedialog保持最后打开目录,我不想要.
我nano通过ssh在服务器上使用; 在该系统上,nano默认情况下没有启用语法颜色.所以我在服务器上复制了这些nanosyntax文件(另请参阅@CraigBarnes的答案),并设置~/.nanorc为:
include "~/nanosyntax/syntax-nanorc/php.nanorc"
include "~/nanosyntax/syntax-nanorc/php2.nanorc"
include "~/nanosyntax/syntax-nanorc/sh.nanorc"
include "~/nanosyntax/syntax-nanorc/python.nanorc"
include "~/nanosyntax/syntax-nanorc/html.nanorc"
include "~/nanosyntax/syntax-nanorc/perl.nanorc"
include "~/nanosyntax/syntax-nanorc/ruby.nanorc"
include "~/nanosyntax/syntax-nanorc/js.nanorc"
Run Code Online (Sandbox Code Playgroud)
现在,这就是事情; 如果我只是打电话:
nano somefile.php
Run Code Online (Sandbox Code Playgroud)
...没有php语法着色.如果我试图强迫:
nano --syntax=php somefile.php
Run Code Online (Sandbox Code Playgroud)
...仍然没有语法着色(显示为纯文本).但是,如果我这样做:
nano ~/.nanorc
Run Code Online (Sandbox Code Playgroud)
...然后我做得到语法着色(对应.nanorc类型的文件)?!
很明显,语法着色就像这样工作(即shell和nano能够做到的) - 除了,它似乎被忽略了一些语言,比如在这种情况下php?!
那么,有没有人知道发生了什么 - 我怎样才能获得php文件的语法着色?
谢谢,
干杯!
当前列是VARCHAR(255)NOT NULL,那么如何将其更改为TEXT NOT NULL?
注意:要更改其属性类型的列是另一列的UNIQUE KEY组合.例如
独特的钥匙(名称,描述)
列描述当前在varchar(255)中.由于这个原因,它无法改变:
错误1170(42000):BLOB/TEXT列'描述'在密钥规范中使用,没有密钥长度
我需要它是TEXT,否则我需要重新创建整个事情?我已经收到了一些繁琐而重要的数据.重新创建会很麻烦.
请检查下面的代码示例:
public class Sample
{
public int counter { get; set; }
public string ID;
public void RunCount()
{
for (int i = 0; i < counter; i++)
{
Thread.Sleep(1000);
Console.WriteLine(this.ID + " : " + i.ToString());
}
}
}
class Test
{
static void Main()
{
Sample[] arrSample = new Sample[4];
for (int i = 0; i < arrSample.Length; i++)
{
arrSample[i] = new Sample();
arrSample[i].ID = "Sample-" + i.ToString();
arrSample[i].counter = 10;
}
foreach (Sample s in arrSample) …Run Code Online (Sandbox Code Playgroud)