Как создать и использовать пространство имен XML?

Я хочу страницу как это:

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

9
задан GhostCat says Reinstate Monica 17 August 2017 в 07:34
поделиться

2 ответа

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

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

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

  • откройте XML-файл, который вы хотите обработать, в Visual Studio
  • В меню XML выберите ] Создать схему пункт меню

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

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

4
ответ дан 4 December 2019 в 19:32
поделиться

xsd файлы являются файлами XML-схемы, прочитайте об этом. Еще немного здесь.

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

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>
8
ответ дан 4 December 2019 в 19:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: