Как создать и использовать пространство имен XML? - PullRequest
9 голосов
/ 18 июля 2010

Мне нужна такая страница:

<?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 ]

7 голосов
/ 18 июля 2010

xsd файлы - это файлы XML Schema, читайте об этом . Еще немного здесь.

Простой пример:

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>
4 голосов
/ 18 июля 2010

Вы можете написать этот XSD-файл самостоятельно, вручную - вам просто нужно изучить, что составляет схему XML, и узнать, как написать этот код самостоятельно.Google или Bing для «Учебника по XML-схемам» должны дать вам массу хитов (например, W3Schools Учебник по XML-схемам ).

Или вы можете использовать Visual Studio для этого:

Пример изображения

  • откройте файл XML, который вы хотите обработать в Visual Studio
  • В меню XML выберите меню Create Schemaitem

Это создаст схему XML из вашего файла XML.

Примечание: это хорошая отправная точка - но это ни в коем случае не идеально.Особенно с небольшими XML-файлами, процесс генерации не может знать много вещей, и он просто должен делать определенные предположения - которые могут быть правильными или неправильными.Вам обязательно нужно взглянуть на файл XML-схемы - и вот где ноу-хау из первого варианта вступает в игру очень легко!

...