如何创建和使用XML命名空间?

时间:2010-07-18 14:56:10

标签: xml namespaces xml-namespaces

我想要一个这样的页面:

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:m="mine.xsd">
    <m:dialog m:title="Hello">Hi there!</m:dialog>
</html>

我怎么写“mine.xsd”?

2 个答案:

答案 0 :(得分:7)

xsd文件是XML架构文件read about itSome more here.

一个简单的例子:

XMLSchema1.xsd

<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="Types"
    targetNamespace="http://tempuri.org/"
    elementFormDefault="qualified"
    xmlns="http://tempuri.org/"
    xmlns:mstns="http://tempuri.org/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
  <xs:simpleType name="Types">
    <xs:annotation>
      <xs:documentation>.NET types</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="String" />
      <xs:enumeration value="Int16" />
      <xs:enumeration value="Int32" />
      <xs:enumeration value="Int64" />
      <xs:enumeration value="DateTime" />
      <xs:enumeration value="Double" />
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="DataSize">
    <xs:annotation>
      <xs:documentation>Number of bytes of the data</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:int" />
  </xs:simpleType>

  <!-- ... -->

</xs:schema>

然后在您的XML文件中,您可以使用:

<?xml version="1.0" encoding="utf-8" ?>

<ValueSet
  xmlns="http://tempuri.org/"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://tempuri.org/ XMLSchema1.xsd">

  <Values>
    <Value Name="Stats" Type="Int32" DataSize="4" />
    <Value Name="Time" Type="DateTime" DataSize="4" />
    <Value Name="Some" Type="Double" DataSize="4" />
    <Value Name="Other" Type="Double" DataSize="4" />
  </Values>

</ValueSet>

答案 1 :(得分:4)

您可以手动编写该XSD文件 - 您只需要研究构成XML模式的内容,并自己了解如何编写该代码。 Google或Bing的“XML Schema Tutorial”应该会给你很多点击量(例如W3Schools XML Schema Tutorial)。

或者您可以使用Visual Studio执行此操作:

Example image

  • 打开要在Visual Studio中处理的XML文件
  • XML菜单中,选择Create Schema菜单项

这将从您的XML文件生成XML架构。

注意:这是一个很好的起点 - 但它绝不是完美的。特别是对于较小的XML文件,生成过程无法知道很多事情,只需要做出某些假设 - 这可能是正确的,也可能是错误的。您需要确定一下XML模式文件 - 这就是第一个选项的技术诀窍非常方便的地方!